1. 程式人生 > >SSH隧道遠端埠轉發配置方法

SSH隧道遠端埠轉發配置方法

需求說明

A機器處於在層層NAT之下的內網;B機器擁有公網IP(稱為IpB),可以被任意機器直接訪問;A機器希望將本地埠PortA對映到B機器的埠PortB上,使得任何人訪問B機器PortB埠等效於訪問A機器的PortA埠。

配置方法

B機器配置

要求B機器能夠執行sshd之類的可以進行ssh登入的軟體。ssh的配置要新增:

GatewayPorts yes
AllowTcpForwarding yes

然後清理掉所有ssh的會話程序,重啟ssh服務,在ubuntu14.04下重啟方法是:

service ssh restart

這樣使得B機器可以啟用0.0.0.0的監聽地址,否則B機器只能監聽來自127.0.0.1的地址。

A機器配置

Linux可以直接利用自帶的ssh服務,Windows可以採用xshell、putty、git bash等工具實現。ssh的命令引數如下。也在-R前可以新增-C -f -N -g,使得ssh程式在後臺執行。

ssh -R 0.0.0.0:PortB:127.0.0.1:PortA root@IpB

然後在B機器上執行如下命令,即可檢驗是否生效。

netstat -lnp | grep PortB

這樣就實現了需求的功能,即訪問PortB等效於訪問PortA。