You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何借助固定IP中转主机实现两台NAT后漫游主机的直接SSH连接

如何借助固定IP中转主机实现两台NAT后漫游主机的直接SSH连接

嘿,这个问题我之前折腾过好多次,你其实只差关键的一步就搞定了!

你之前的思路是对的,但为啥直接连intern:2222会被拒绝?原因很简单:默认情况下,SSH反向隧道(-R)绑定的是中转机(intern)的localhost(127.0.0.1),也就是说只有intern自己能访问这个2222端口,外部(比如你的home主机)根本连不上。

解决步骤如下:

1. 先配置中转机(intern)的SSH服务

你需要修改intern上的sshd_config,让它允许反向隧道绑定到公网IP:

  • 编辑配置文件:sudo vi /etc/ssh/sshd_config
  • 找到GatewayPorts这一行,改成:
    GatewayPorts yes
    
    (如果要更安全,可以设为GatewayPorts clientspecified,后面会说好处)
  • 重启SSH服务生效:sudo systemctl restart sshd(不同系统可能命令不同,Ubuntu/Debian、CentOS等主流发行版都适用这个命令)

2. 在office主机上建立正确的反向隧道

现在用这个命令替代你之前的ssh -R:

office$ ssh -R 0.0.0.0:2222:localhost:22 intern
  • 0.0.0.0表示让intern在**所有可用网卡(包括公网IP)**上监听2222端口,这样外部的home主机就能访问了。
  • 如果你设了GatewayPorts clientspecified,可以更精准地指定绑定intern的公网IP,比如:
    office$ ssh -R 你的intern公网IP:2222:localhost:22 intern
    
    这样只有通过公网IP才能访问这个隧道,安全性更高。

3. 从home主机直接连接office

现在你只需要在home上执行这一条命令,就能直接跳过中转机的shell,连到office:

home$ ssh -p 2222 office用户名@intern的公网IP

这里的office用户名是你在office主机上的SSH用户名,输入对应的密码(或者用密钥认证)就能直接进入office的shell了!

额外小技巧:保持隧道稳定

如果担心网络波动导致隧道断开,可以用autossh工具自动重连:

office$ autossh -M 20000 -R 0.0.0.0:2222:localhost:22 intern

-M 20000是指定一个监听端口,用来检测隧道是否存活,一旦断开会自动重新连接。


备注:内容来源于stack exchange,提问作者Michael Jinks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 10:39:13