Introduction & Overview
对本地服务或者远程服务经常因为防火墙或其他网络问题导致服务端口受限的情况下,往往需要对所提供的服务端口做转发,本文采用SSH
实现本地或远程端口的转发,同时在网络畅通,而连接断开的情况下自动重新连接。
Prerequisite
SSH本地端口转发命令:
ssh -f -N -L 9907:127.0.0.1:3380 remoteUser@Host
其中,9907
是本地新开启的端口服务,3380
为远程Host实际提供服务的端口,在本地终端执行以上命令后,实现请求本地的9907
端口即可访问到远程的3380
服务,重点在-L
参数;Even:远程的3380
不是可直接访问。
SSH远程端口转发命令:
ssh -f -C -N -g -R *:8888:0.0.0.0:9999 remoteUser@Host
其中,8888
是远程新开启的端口服务,9999
为本地实际提供服务的端口,在本地终端执行以上命令后,实现请求远程的8888
端口即可访问到本地的9999
服务,重点在-R
参数,远程SSH服务需要做相关配置。
Screen命令:Details
查看创建的虚拟会话:screen -ls
重新进入虚拟会话:screen -DR
Operate Flow
安装
autossh 、screen
-
命令行实现在本地开启虚拟终端会话,做
SSH
本地端口转发服务screen -DmS tunnel9906 autossh -M 20020 -f -C -N -g -L 9907:127.0.0.1:3380 remoteU@Host
remote:
screen -DmS tunnelR8888 autossh -M 20000 -f -C -N -g -R *:8888:0.0.0.0:9999 remoteUser@Host
-
or reverse
autossh -M 20000 -t remoteUser@Host "screen -DR"
Test & Taste
Telnet it
telnet localhost 9907
telnet remotehost 8888