使用SSH隧道访问特定端口上的服务

时间:2013-11-09 09:07:50

标签: networking ssh

我有以下情况:

我需要使用ssh隧道从网络外部访问计算机(端口9999)上的服务。机器的IP地址是10.0.0.7。我可以访问VM(IP:10.0.0.3),我可以使用端口22上的ssh从网络外部访问。

如何从家庭网络访问服务(在10.0.0.7上的端口9999上运行)?

我试过反向转发端口但没有运气。

此外,我们在网络上有一些这些轮询机器都在端口9999上运行(IP范围从10.0.0.6到10.0.0.15)。是否有可能访问所有这些?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

使用SSH的标准隧道应该可以工作:

ssh -L9999:10.0.0.7:9999 10.0.0.3

然后,您应该能够连接到localhost:9999,这相当于连接到10.0.0.7:9999。如果你想为很多主机做这个,你可以做很多-L语句,但第一个端口必须是唯一的:

ssh -L9999:10.0.0.7:9999 -L9998:10.0.0.8:9999 10.0.0.3

然后你有localhost:9999localhost:9998。要加快这一步,您可以将以下内容添加到.ssh/config文件中:

Host 10.0.0.3
    LocalForward 9999 10.0.0.7:9999
    LocalForward 9998 10.0.0.8:9999
    LocalForward 9997 10.0.0.9:9999
    LocalForward 9996 10.0.0.10:9999
    LocalForward 9995 10.0.0.11:9999
    LocalForward 9994 10.0.0.12:9999
    LocalForward 9993 10.0.0.13:9999

然后ssh 10.0.0.3会自动为您设置这些隧道。