在这个答案中,我将举一个具体的例子。您只需要用您的计算机替换主机名,用户名和密码。
问题陈述
假设我们具有以下网络拓扑:
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
它将询问您bob
on 的密码mit.edu
(即dylan123
),然后询问您john
on 的密码hec.edu
(即doe456
)。
那时,SOCKS代理现在在的端口9991
上运行LocalPC
。
例如,如果您想LocalPC
使用SOCKS代理访问网页,则可以在Firefox中进行:
一些说明:
- 在
~/.ssh/config
,HEC
是连接名称:您可以将其更改为你想要的任何东西。
- 该
-D9991
通知ssh
以设立端口SOCKS4代理9991
。