ssh端口转发

跳板机上开启 GatewayPorts

1. 修改 sshd 配置

# 在 vps 上执行
echo "GatewayPorts yes" >> /etc/ssh/sshd_config

# 或编辑文件,找到 GatewayPorts 行改为 yes
sed -i 's/#GatewayPorts no/GatewayPorts yes/' /etc/ssh/sshd_config
# 如果已有该行
sed -i 's/GatewayPorts no/GatewayPorts yes/' /etc/ssh/sshd_config

2. 重启 sshd 生效

systemctl restart sshd
# 或
service ssh restart

3. 验证配置

sshd -T | grep gatewayports
# 输出: gatewayports yes  即为成功

然后在沙箱内发起反向隧道

# 沙箱内执行:将本地 127.0.0.1:33315 映射到跳板机公网 0.0.0.0:8888
ssh -N -R 0.0.0.0:8888:127.0.0.1:33315 root@vps

# 外部访问
curl http://vps:8888

关键参数说明:

参数含义
-N 不执行远程命令,只做隧道
-R 0.0.0.0:8888:127.0.0.1:33315 跳板机 8888 端口 → 沙箱本地 33315
0.0.0.0 必须显式指定,否则只绑定 127.0.0.1(即使开了 GatewayPorts)

后台持久运行:

# 断线自动重连
autossh -M 0 -N -o "ServerAliveInterval 30" \
  -R 0.0.0.0:8888:127.0.0.1:33315 user@vps

沙箱内没有 autossh,可用 while true; do ssh ...; sleep 5; done 替代。

posted @ 2026-05-11 20:37  妇愁者纞萌  阅读(59)  评论(0)    收藏  举报