在这个答案中,我将举一个具体的例子。您只需要用您的计算机替换主机名,用户名和密码。
问题陈述
假设我们具有以下网络拓扑:
our local computer <---> server 1 <---> server 2
为了具体起见,假设我们具有以下计算机的主机名,用户名和密码:
LocalPC            <--->  hostname: mit.edu         <---> hec.edu
                          username: bob                   username: john 
                          password: dylan123              password: doe456
目标:我们要设置一个端口侦听SOCKS代理9991的LocalPC,这样每次在连接LocalPC开始从端口   9991它通过mit.edu然后hec.edu。
用例示例:出于安全原因,hec.edu拥有一个只能在http://127.0.0.1:8001上访问的HTTP服务器   。我们希望能够通过打开Web浏览器访问   http://127.0.0.1:8001LocalPC。
组态
在中LocalPC,添加~/.ssh/config:
Host HEC
    HostName hec.edu
    User john
    ProxyCommand ssh bob@mit.edu -W %h:%p
然后在的终端中LocalPC,运行:
ssh -D9991 HEC
它将询问您bobon 的密码mit.edu(即dylan123),然后询问您johnon 的密码hec.edu(即doe456)。
那时,SOCKS代理现在在的端口9991上运行LocalPC。
例如,如果您想LocalPC使用SOCKS代理访问网页,则可以在Firefox中进行:

一些说明:
- 在~/.ssh/config,HEC是连接名称:您可以将其更改为你想要的任何东西。
- 该-D9991通知ssh以设立端口SOCKS4代理9991。