xshell提供的基于ssh的3种隧道技术探究
xshell提供的ssh3种隧道(准确的说是ssh命令本身提供的,只不过xshell使用起来更方便而已),是个神奇高效的黑科技。
1)本地模式
可以用来实现“把服务器不对公网IP开放端口服务,映射到本地局域网内”;
这样可以保护外网资源不被非法访问,但本地可以通过隧道正常使用。
比如远程服务器有个MySQL服务,监听127.0.0.1即可(安全嘛),办公室如果想操作数据库,就可以把远程的127.0.0.1:3306,映射到本地电脑IP的3306。
这样在同一个局域网内的人看起来,就跟你自己的电脑装了一个MySQL似的,且使用起来操作的是远程的数据库。
2)远程模式
实现内网穿透,什么是内网穿透?简单来讲就是把自己本地电脑的端口服务,通过ssh映射到外网去,从而让全世界的公网都可以通过映射后的外网访问。
有人说,路由器也可以NAT映射实现,那确实,但是一般你根本不想在自己的路由器上开放,而希望在某个公网服务器上开放。
另外,用路由器NAT的方式,还有个前提是你必须拥有路由器管理员权限才能操作,一般人还是算了吧。
使用方式,之前写的一篇,说得已经算是比较详细。
3)Dynamic模式
可以实现“github加速”,(此处省略365个字)
扩展——3种隧道的命令行版(程序员的最爱):
动态:
ssh -D -N 1080 user@example.com
curl –socks5 127.0.0.1:1080 http://www.qq.com
本地:
ssh -L -N 9000:localhost:5432 user@example.com
psql -h localhost -p 9000
远程:
ssh -R -N 9000:localhost:3000 user@example.com
curl
这个-N,如果指定,那么如果有基于SSH的SFTP账号,可能就很危险了。