杆树 发表于 2025-11-23 22:50:02

通过SSH反向隧道让远程服务器走本地代理

1. 场景描述

先说一下笔者遇到的情况:

[*]本地 Windows 电脑 已经配置好代理或者加速工具,能正常访问外网的Git仓库;
[*]通过复杂的代理链路,成功 SSH 登录了一台 远程 Linux 服务器(IP 如 10.250.4.84:2347);
[*]但当在服务器上执行 git pull 时,却卡住或超时——因为服务器本身无法直连外网;
[*]希望:让服务器“借用”本地的代理网络。
这正是本文要解决的问题。
2. 核心思路

因为是通过代理来连接的服务器,所以想当然的认为服务器也可以访问本地机器。实际上本地机器处于 NAT 或防火墙之后,服务器无法主动连接本地机器(比如它 ping 不通本机地址 192.168.2.225)。因此解决方案就是:本地机器主动发起的 SSH 连接,建立一个“反向通道”。具体示意图如下:
服务器 (10.250.4.84)
    ←──→
本地电脑 (192.168.2.225:7890)
    → 代理 → 外网 (Git仓库)具体做法就是建立一个 SSH 反向隧道(Reverse Tunnel),在服务器上监听一个端口(如 1080),所有流量经由 SSH 隧道转发到你本地的代理端口。
3. 实操步骤

第一步:确认本地代理(例如http://192.168.2.225:7890)支持局域网访问。不同的代理客户端有不同的设置方法,另外最好临时关闭 Windows 防火墙,排除拦截问题。
第二步:用 PowerShell 建立反向隧道。在 PowerShell 中执行:
ssh -p 2347 -R 1080:192.168.2.225:7890 charlee@10.250.4.84参数说明:

[*]-p 2347:指定服务器的 SSH 端口(标准端口是22)。
[*]-R 1080:192.168.2.225:7890:在服务器的 127.0.0.1:1080 建立监听,转发到你本地的代理;
[*]登录后,你会进入交互式 shell,可以像 MobaXterm 一样操作服务器。
<blockquote>

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

匡菲 发表于 2025-12-9 00:19:00

懂技术并乐意极积无私分享的人越来越少。珍惜

缍米 发表于 2025-12-27 14:40:45

不错,里面软件多更新就更好了

蝙俚 发表于 2025-12-30 01:41:44

这个好,看起来很实用

每捎京 发表于 2026-1-16 05:35:11

新版吗?好像是停更了吧。

赏勿 发表于 2026-1-20 16:15:49

东西不错很实用谢谢分享

士沌 发表于 2026-1-21 14:26:54

用心讨论,共获提升!

赐度虻 发表于 2026-1-22 09:20:53

过来提前占个楼

粉押淫 发表于 2026-1-22 21:03:44

谢谢分享,辛苦了

益竹月 发表于 2026-1-24 08:59:22

懂技术并乐意极积无私分享的人越来越少。珍惜

苗嘉惠 发表于 2026-1-27 06:16:29

前排留名,哈哈哈

采序 发表于 2026-2-3 07:20:12

喜欢鼓捣这些软件,现在用得少,谢谢分享!

边书仪 发表于 2026-2-3 22:09:08

感谢分享

锷稠 发表于 2026-2-6 06:15:13

yyds。多谢分享

鄂缮输 发表于 2026-2-6 07:27:42

热心回复!

幌斛者 发表于 2026-2-8 05:47:21

收藏一下   不知道什么时候能用到

缢闸 发表于 2026-2-12 19:37:25

感谢发布原创作品,程序园因你更精彩

骆熙华 发表于 2026-2-12 23:10:17

这个有用。

锄淫鲷 发表于 2026-2-13 15:13:46

过来提前占个楼

端木茵茵 发表于 2026-2-20 23:57:30

很好很强大我过来先占个楼 待编辑
页: [1] 2
查看完整版本: 通过SSH反向隧道让远程服务器走本地代理