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

通过SSH实现代理隧道:内网HTTP代理外部访问方案咨询

解决方案:通过SSH远程端口转发实现流量中继

当然可以实现!你需要用到SSH的远程端口转发功能,配合调整头节点的SSH配置,就能让头节点暴露的公网端口流量转发到内网的HTTP代理服务器。下面是具体步骤:

1. 调整头节点的SSH配置(关键)

默认情况下,SSH服务器只允许远程端口转发绑定到本地回环地址(127.0.0.1),无法通过公网IP访问,所以需要先修改头节点的SSH配置:

  • 登录到头节点,编辑配置文件:sudo nano /etc/ssh/sshd_config
  • 找到GatewayPorts选项,将其设置为yes(如果配置文件里没有这个选项,直接添加一行即可)
  • 保存并退出编辑器,然后重启SSH服务使配置生效:sudo systemctl restart sshd

2. 执行SSH远程端口转发命令

在你能SSH连接头节点的本地设备上,运行以下命令:

ssh -N -R 0.0.0.0:外部访问端口:192.168.x.x:代理端口 头节点用户名@头节点公网IP

参数解释:

  • -N:仅建立SSH连接,不执行远程命令,适合纯端口转发的场景
  • -R:指定远程端口转发规则,格式为「远程监听地址:远程端口:目标地址:目标端口」
  • 0.0.0.0:让头节点在所有网络接口上监听指定端口(包括公网IP)
  • 外部访问端口:你希望外部用户访问的头节点公网端口(比如8080)
  • 192.168.x.x:代理端口:内网HTTP代理服务器的具体IP和端口

3. 验证转发是否生效

现在外部用户访问头节点公网IP:外部访问端口时,流量会被头节点通过SSH隧道转发到内网的HTTP代理服务器,处理后的响应也会原路返回。

你可以在本地先测试:用浏览器或curl工具访问http://头节点公网IP:外部访问端口,如果能正常获取代理的响应(比如代理的测试页面或请求被正确转发),就说明配置成功了。

额外提示

  • 如果需要让这个转发持久运行,可以用screen或tmux在头节点后台保持SSH连接,也可以配置systemd服务实现开机自动启动。
  • 记得确保头节点的防火墙允许外部访问你指定的外部访问端口(比如通过ufw allow 8080或调整iptables规则)。

内容的提问来源于stack exchange,提问作者Mohammed Farahmand

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:16:36