-
Notifications
You must be signed in to change notification settings - Fork 7
SSH端口转发
用法:ssh -L local_port:remote_host:remote_port user@server
把本地机器的local_port的流量经过server转发给remote_host的remote_port
也就是说流量的流动方向是 local_port--> server--> remote_port
例如本机是192.168.56.5,另一台机器是192.168.56.7
在192.168.56.5上用本地转发
ssh -L 2222:127.0.0.1:23456 user@192.168.56.7
意思就是:把192.168.56.5的2222端口的流量转发到192.168.56.7的23456端口
127.0.0.1是相对192.168.56.7而言的,因为remote_addr是在server解析的
用法:ssh -R serv_port:remote_host:remote_port user@server
把server的serv_port端口的流量经过本地转发到remote_host的remote_port端口
例如远程主机是123.123.123.123,本机是192.168.56.5
在本机用远程转发
ssh -R 2345:127.0.0.1:22 123.123.123.123
意思是:把远程主机2345的端口流量转发到本地的22端口
127.0.0.1是相对本地来说的,因为remote_host是在本地解析的
那么你可以ssh -p 2345 123.123.123.123来登陆到192.168.56.5
他俩的区别容易让人迷糊
本地转发就是把本地的端口经过server转发到远程主机
远程转发就是把server的端口经过本地转发给远程主机
其中远程主机和本地,server和远程主机都可以合二为一,灵活的运用可以达到很多意想不到的效果
使本地主机监听端口port,一旦与该端口建立连接,经过该端口的数据会被转发到安全通道发送到远程主机。远程主机的sshd会根据数据包的应用层协议(如HTTP)自动建立对应的连接。
用法:ssh -D local_port server
这是你的local_port端口就相当于是一个SOCKS代理,在浏览器里设置代理就可以转发流量上网。
如果server是境外服务器那么就可以翻墙了
-f ssh后台运行
-N 不执行命令,只转发端口
-C 压缩传送的数据
-g 允许远程主机去连接本地指派的 ports。
由于ssh不稳定,端口转发随时可能会失去连接,这时需要autossh来重新请求连接来维持端口转发