远程 ssh 动态端口转发 (-g) 不起作用

远程 ssh 动态端口转发 (-g) 不起作用

我希望允许家庭网络中的一些客户端设备连接到互联网,但连接应该通过我的 iMac,它具有通往远程服务器的 SSH 隧道。我想最终使用远程服务器的互联网连接来代表客户端设备发出请求。

我从 iMac 开始使用隧道

ssh -D 8127 -f -g -N -C -vvv myuser@remote_server

我使用代理 localhost:8127 在 iMac 上配置浏览器,一切正常。我连接的 Web 服务器看到来自 Remote_server 的传入连接。到目前为止,一切都很好。

但是,当我在客户端中配置相同的代理设置时,我什么也没得到。我的 Windows 笔记本电脑上的浏览器返回“连接已重置”。我尝试使用 Android 设备和 iPad。它们都不起作用。

隧道中的详细日志并不能透露太多信息。

debug1: Connection to port 8127 forwarding to socks port 0 requested.
debug2: fd 12 setting TCP_NODELAY
debug3: fd 12 is O_NONBLOCK
debug3: fd 12 is O_NONBLOCK
debug1: channel 5: new [dynamic-tcpip]
debug2: channel 5: pre_dynamic: have 0
debug2: channel 5: pre_dynamic: have 411
debug2: channel 5: zombie
debug2: channel 5: garbage collecting
debug1: channel 5: free: dynamic-tcpip, nchannels 7
debug3: channel 5: status: The following connections are open:
  #2 direct-tcpip: listening port 8127 for 188.65.124.58 port 443, connect from 127.0.0.1 port 61067 to 127.0.0.1 port 8127 (t4 r0 i0/0 o0/0 fd 9/9 cc -1)
  #3 direct-tcpip: listening port 8127 for 172.217.22.206 port 443, connect from 127.0.0.1 port 61091 to 127.0.0.1 port 8127 (t4 r1 i0/0 o0/0 fd 10/10 cc -1)
  #4 direct-tcpip: listening port 8127 for 66.102.1.189 port 443, connect from 127.0.0.1 port 60990 to 127.0.0.1 port 8127 (t4 r2 i0/0 o0/0 fd 11/11 cc -1)
  #6 direct-tcpip: listening port 8127 for 172.217.22.206 port 443, connect from 127.0.0.1 port 61092 to 127.0.0.1 port 8127 (t4 r4 i0/0 o0/0 fd 13/13 cc -1)

有谁知道为什么这不起作用?

答案1

您仅绑定到本地主机端口。man ssh这部分的文档(请参阅 参考资料)中并没有特别明确:

默认情况下,按照设置绑定本地端口GatewayPorts。然而,可以使用显式的bind_address 将连接绑定到特定地址。的bind_addresslocalhost表示侦听端口仅限本地使用,而空地址或*表示该端口应可从所有接口使用。

并来自ssh_config

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

这意味着,当您使用时,ssh -D 8127您使用的是根据 绑定的端口GatewayPorts,默认为localhost,即远程主机无法连接。

如果您指定,ssh -D :8127那么您将包括对地址的引用,并且由于该地址为空,因此默认为*,即远程主机可以连接。

将您的命令更改为此,它将按照您的意愿工作:

ssh -D :8127 -f -g -N -C -vvv myuser@remote_server

相关内容