如何在网络上共享反向 SSH 隧道?

如何在网络上共享反向 SSH 隧道?

我有一台通过 3G PPP 连接的远程计算机。我无法通过互联网连接到这台计算机,因为我相信 PPP IP 池使用 NAT 连接到互联网(连接时我得到的是 10.xxx 地址)

因此,我让远程计算机与 Internet 上的服务器建立 SSH 连接。然后,我可以从服务器建立此连接,并在远程计算机上获取 shell。太棒了。

我希望能够访问远程网络上的摄像头的 Web 界面。因此,我创建了第二个 SSH 隧道,将流量重定向到摄像头的地址,即:ssh -R 9000::

从我的互联网主机上,这个方法可行,我得到了网页:wget 127.0.0.1:9000 太棒了

现在我需要在我的客户端电脑上运行此功能,因此:

客户端电脑-->互联网服务器--隧道-->远程计算机-->IP摄像机

所以本质上我需要让我的反向 SSH 隧道在网络上可用。

我以为只要使用 iptables 将我的 Internet 服务器上某个端口的传入流量转发到 127.0.0.1:9000 就可以了,但是在使用 iptables、NAT 等几个小时之后,我还是无法让它工作。

这应该可行吗?

答案1

我认为您需要-o GatewayPorts=yes允许本地以外的其他主机使用您的隧道。摘自手册页:

指定是否允许远程主机连接到本地转发端口。默认情况下,ssh(1) 将本地端口转发绑定到环回地址。这可防止其他远程主机连接到转发端口。GatewayPorts 可用于指定 ssh 应将本地端口转发绑定到通配符地址,从而允许远程主机连接到转发端口。参数必须是“yes”或“no”。默认值为“no”。

相关内容