版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
ssh的确很强大,可以很方便的实现从本地端口到远程端口的映射,通常情况下使用 -L 或者 -R参数,例如:
ssh xxx@xxx.xxx -L 8023:RemoteIP:23
-L 将本地的某个端口映射到远程主机的某个端口上,上例中就是将本地的8023端口映射到远程主机的23号端口上,这样就可以直接telnet本机的8023端口来访问远程主机了。
但是需要说明的是RemoteIP可以是127.0.0.1,此时127.0.0.1指的是远程计算机,而非本机地址。
-R 则正好与-L相反,它将远程主机的某个端口映射到本地的某个端口上,例如:
ssh xxx@xxx.xxx -R 8023:LocalIP:23
上例将远程主机的8023端口映射到本机的23号端口,这样远程主机就可以telnet 自己的8023端口来访问本地主机了。
最后-D参数将在本地开启一个socks5代理端口,该端口接收到的数据将通过加密隧道传输到远程主机,并有远程主机代理发出,例如:
ssh xxx@xxx.xxx -D 7070
上例在本地开启一个7070号socks5代理,浏览器等应用程序可以使用该端口通过远程主机访问网络。
需要说明的是,-D参数开启的socks代理,在我的机器上好像只有Chrome能使用,IE不能使用,原因未明,估计是DNS解析的问题。