8 我想通过公共访问服务器(公共)连接到NAT后面的计算机(本地)。 在本地: ssh -g -R 8000:localhost:22 user@public 然后在公开场合: ssh -p 8000 user@public 但是我越来越 error: Connection refused. 登录公共服务器时,可以通过以下方式验证隧道是否正常运行: ssh -p 8000 localhost 这将在本地计算机上打开ssh。 我是否怀疑公共服务器应该充当透明代理?或如何使其工作。 ssh port-forwarding — 米托 source
11 出于安全目的,SSH远程端口转发将默认绑定到localhost / loopback。通常不希望允许其他主机访问您转发的端口。 要覆盖此行为,您需要做两件事: GatewayPorts在服务器上启用该选项。 *在客户端上指定一个绑定地址,或绑定到所有地址。 ssh -R \*:8000:localhost:22 user@public 转义星号以确保您的外壳不会展开。 — 丹·卡利 source
0 这看起来更像是远程计算机公用上的设置问题。默认情况下,openssh sshd(我猜是使用的那个)将GatewayPorts设置为no,这将强制远程端口转发仅侦听localhost。 解决方案是编辑/ etc / ssh / sshd_config(或等效文件),将GatewayPorts设置为yes或clientspecified。如果您选择稍后的版本,则必须将隧道请求更改为-R *:8000:localhost:22之类的内容。 — 安多尔 source