二字体现在服务端的SSH的转发目标是不固定的,是根据客户端的请求而定的。
那么如何让应用程序知道应该把请求发送给本机的7001端口呢?
SOCKS代理
答案就是SOCKS代理。
理解SOCKS代理其实非常简单。HTTP代理都用过吧,浏览器其实也是支持SOCKS代理的,玩法几乎一样,只是SOCKS代理通常不限制端口,所谓来者不拒 。
实际上SOCKS代理普遍被许多应用程序支持:QQ、浏览器、MSN…
所以在上述的模型中,客户机的SSH实际上就是实现了一个SOCKS代理的角色,这个SOCKS代理侦听了7001端口,并将所有的请求都代理给服务器的SSH,并利用SSH动态绑定,让服务器进一步转发请求。
SSH隧道的搭建
那么我们来看看搭建一个SSH隧道翻墙,究竟有多简单。首先你需要有一台支持SSH的墙外服务器,此服务器啥都不需要,只要能SSH连接即可。
客户端SSH执行如下命令:
ssh -D 7001 username@remote-host
上述命令中 -D 表示动态绑定, 7001 表示本地SOCKS代理的侦听端口,可以改成别的,后面的 username@remote-host
2/3 首页 上一页 1 2 3 下一页 尾页
|