Ubuntu – How to set a proxy for terminal

bashcommand linePROXYtor

I am looking to set a proxy for terminal. What I need is I want to send all terminal communications to the internet through a proxy, say tor.

I tried to set a system wide proxy set up. But Terminal doesn't obey the system wide proxy configuration.

Is there any other way to do this?

Best Answer

  • Terminal is not net application. Maybe is better to say, in your case, terminal is container for net application like ssh, telnet, lftp, wget, lynx ...

    Edit your:

    sudo -H gedit /etc/profile.d/proxy.sh
    

    Enter the details in this format.

    export http_proxy=http://username:password@proxyhost:port/ 
    export ftp_proxy=http://username:password@proxyhost:port/
    export telnet_proxy=http://username:password@proxyhost:port/
    

    This is for when using wget, ftp, lftp, telnet in terminal

    ssh has no native SOCKS client support, you need to use a ProxyCommand for that, for instance with socat:

    ssh -o ProxyCommand='socat - SOCKS4A:myproxy:%h:%p,socksuser=nobody' user@host
    

    Or use things like tsocks to transparently use SOCKS for TCP traffic.

    For SOCKS5 with socat 2:

    ssh -o ProxyCommand='socat - "SOCKS5:%h:%p|tcp:myproxy:1080"' user@host
    

    For HTTP Proxy CONNECT method with socat 2:

    ssh -o ProxyCommand='socat - "PROXY:%h:%p|tcp:myproxy:80"' user@host
    
  • Related Question