我想通过可公开访问的服务器(公共)连接到 NAT 后面的计算机(本地)。
在本地:ssh -g -R 8000:localhost:22 user@public
然后在公共场合:ssh -p 8000 user@public 但是我收到错误:连接被拒绝。
当我登录到公共服务器时,我可以通过以下方式验证隧道是否正常工作:ssh -p 8000 localhost 在本地计算机上打开 ssh。
我怀疑公共服务器应该充当透明代理是错误的?或者如何让它像那样工作。
谢谢
答案1
根据手册,您可以在公共主机上设置选项(在sshd_config
):
GatewayPorts yes
然后在本地尝试
ssh -R *:8000:localhost:22 user@public
(请注意额外的*:
)。
如果你无权访问公共的sshd_config
,你可以像这样创建一个额外的端口转发:
在本地(lancomp):ssh -R 8001:localhost:22 user@public
在公共:ssh -g -L 8000:localhost:8001 user@lancomp
当然,在两种情况下都可以从外部进行连接:ssh -p 8000 user@public
答案2
端口 8000 上的列表将仅在公共计算机的本地主机地址上进行。如果您希望它绑定到“真实”网络接口,您可以尝试-R public:8000:localhost:22
。