Ubuntu 14.04 我无法让 SSH 隧道与 -g 开关配合使用?

Ubuntu 14.04 我无法让 SSH 隧道与 -g 开关配合使用?

我在 myServer 上运行此命令:

ssh -g -p 9922 -f myuser@serverOnOpenInternet -L 1212:serverBehindFirewall:80 -N

serverOnOpenInternet 在端口 9922 上运行 sshd。(不是我的电话)

一旦我在 myServer 上运行相关命令,我就可以执行以下操作:

wget http://localhost:1212/

并成功到达serverBehindFirewall的索引页面。

但是:如果我尝试从另一台机器上点击:

http://myServer:1212/

连接超时,我无法通过隧道连接到 serverBehindFirewall。

我已经在我的 mac 上测试了 -g 开关,并验证了它的工作原理与我期望的一样。我知道这些是 ssh 的不同版本/实现。但据我所知,Ubuntu 14.04 上的 ssh 也应该支持 -g 开关。 (它在手册页中提到)

请帮忙 :)

答案1

您可能需要在 -L 选项上指定绑定地址。喜欢:

-L 192.168.1.100:1212:serverBehindFirewall:80

根据要求,从下面粘贴:

/etc/ssh/ssh_config 中的选项“GatewayPorts”设置为“yes”解决了该问题。

这显然与指定“GatewayPorts yes”的效果(几乎)相同。它绑定到指定的地址。选项“GatewayPorts yes”自动绑定到通配符地址 (0.0.0.0),使远程客户端能够连接。如果未指定,并且没有使用 IP-Address 进行绑定 (-L : : : ) ,则仅绑定环回地址 127.0.0.1,因此远程主机无法连接

相关内容