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

Mat*_*per 6 ssh reverse-tunnel

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

所以我让远程计算机创建到 Internet 上服务器的 SSH 连接。然后我可以从服务器建立这个连接并在远程计算机上获得一个 shell。伟大的。

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

从我的互联网主机这有效,我得到了网页: wget 127.0.0.1:9000

现在我需要它在我的客户端 PC 上工作,所以:

客户端 PC --> Internet 服务器 --tunnel--> 远程计算机 --> IP 摄像机

所以基本上我需要让我的反向 SSH 隧道通过网络可用。

我假设我是否只是使用 iptables 将 Internet 服务器上某个端口上的传入流量转发到 127.0.0.1:9000 会起作用,但是在玩了 iptables、NAT 等几个小时后,我无法让它工作。

这应该工作吗?

Jim*_*man 2

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

\n\n
\n

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

\n
\n