Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Can the following be achieved with SSH.

There are three machines involved:

A. My local machine at home
B. The SSH gateway server at school
C. A workstation in a lab, only reachable through B

I want to setup a SOCKS proxy. I want to be able to surf on my local computer at home, like I am in the lab. This is due some sites that are only reachable from the school's public ip.

So I want to run a SOCKS proxy on host C. But I do not manage to make it work from host A.

I connect to the gateway and from the gateway I connect to the workstation. But I can't make the gateway transfer the traffic properly from and to the proxy.

How can I do this?

share|improve this question

1 Answer 1

up vote 11 down vote accepted

Three slightly different methods. (Replace $PORTX and $PORTY with port numbers of your choice.)

First method: ProxyCommand

machine-a$ ssh -f -N -D $PORT -oProxyCommand="ssh -W %h:%p machine-b" machine-c

Second method:

  1. Connect from A to B, with "local forwarding" of $PORT to localhost:$PORT.

    machine-a$ ssh -L $PORT:localhost:$PORT machine-b
    
  2. Connect from B to C, with "dynamic forwarding" enabled.

    machine-b$ ssh -f -N -D $PORT machine-c
    
  3. Configure your browser to use proxy at localhost:$PORT.

Steps #1 and #2 can be summarized to:

ssh -f -L $PORT:localhost:$PORT machine-b "ssh -f -N -D $PORT machine-c"

Third method:

  1. Connect from A to B, with "local forwarding" of $PORTX to machine-c:22.

    machine-a$ ssh -f -N -L $PORTX:machine-c:22 machine-b
    
  2. Connect from A to C over the tunnel, with "dynamic forwarding".

    machine-a$ ssh -f -N -D $PORTY localhost -p $PORTX
    

    (You can omit -f -N if you want to use the same tunnel for interactive connections too.)

  3. Configure your browser to use proxy at localhost:$PORTY.

share|improve this answer
    
Thank you, it works like a charm! –  Sébastien Sep 7 '11 at 15:57
    
Amazing, thanks! I wish I could give an extra +1 for making it a one liner! –  jwbensley Dec 13 '12 at 22:57

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.