Forward local internet through ssh tunnel

Install http proxy on local machine, and bind it to port 8080

ssh -R 8080:<local IP>:8080 user@<remote IP>
export http_proxy=http://<local IP>:8080
export https_proxy=http://<local IP>:8080
sudo visudo
#append text
Defaults env_keep = "http_proxy https_proxy ftp_proxy"

Now wget will work and so will sudo apt-get so you can install packages.

Just adding some more and clear steps

Do the setup as follows:

Setup on Host A:

  1. Install proxy server Squid on Host A . By default Squid listens on port 3128.
    1. yum install squid
  2. Comment the http_access deny all then add http_access allow all in /etc/squid/squid.conf
  3. If Host A itself uses some proxy say 10.140.78.130:8080 to connect to internet then also add that proxy to /etc/squid/squid.conf as follows:
  refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
  cache_peer 10.140.78.130 parent 8080 0 no-query default
  never_direct allow all

Setup on Host B:

  1. Add the following entries to /etc/environment
  export http_proxy=http://127.0.0.1:3129
  export https_proxy=http://127.0.0.1:3129
  1. source /etc/environment

Now our setup is complete.

Creating SSH tunnel with Remote port forwarding

Checking the internet:

  1. Run the following command from Host B: wget https://google.com

Traffic flow diagram :