On a machine on the internal network
$ ssh -A server.internal
On server.internal
$ ssh -A -R 6662:localhost:22 public.server
On external.machine
$ ssh -A -L 7780:localhost:7780 public.server
On public.server
$ ssh -p 6662 -L 7780:localhost:7780 user-on-server-internal@localhost
On server.internal
Install a simple HTTP proxy:
$ mkdir http-proxy
$ cd http-proxy
$ wget https://raw.githubusercontent.com/abhinavsingh/proxy.py/develop/proxy.py
$ python proxy.py --port 7780
On external.machine
To test that the two tunnels and HTTP proxy are working, do:
$ export http_proxy=localhost:7780
$ wget -O - http://internal.web.site
You can now set your browser up to access the internet through an HTTP
proxy located at localhost:7780
and it'll be just like you were on
the internal network.