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.

What's the difference between using SOCKS (SSH -D) and local port forwarding (SSH -L)

share|improve this question
    
Also helpful: superuser.com/a/408032/102047 –  b.long Jan 16 at 19:10
add comment

1 Answer

up vote 8 down vote accepted

With -L, SSH forwards all connections to a fixed destination. When you connect to the local port, all data you send goes straight to the remote host which you specified in -L. This, obviously, requires you to know which host you want to forward connections to.

With -D, the destination is "dynamic" – after connecting to the local port, you have to use the SOCKS proxy protocol to further connect to whatever remote host you want. This basically makes SSH a real proxy server, suitable for such activities as web browsing, where you cannot know in advance the destination.

Run ssh -D 1080, for example, and configure Firefox to use a SOCKS 5 proxy at localhost:1080.

share|improve this answer
2  
I often use ssh -D 8080 myhomecomputer when I use my laptop on public wifi. –  Evan Krall Jul 24 '11 at 8:35
1  
@EvanKrall Is the benefit of that approach the fact that all traffic (assuming applications are indeed using the SOCKS proxy) will be encrypted through your SSH connection (i.e. there will not be any plain text network requests) ? Also, how would one make sure all traffic is sent through the proxy? Is there a recommended way to do this for all applications? –  b.long Jan 16 at 19:09
add comment

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.