The note is generated by “chatGPT”.
当希望 A 服务器借用 B 服务器的代理网络(例如 Clash/Mihomo 的 7890 端口)时,可以使用 SSH 的端口转发(ssh -L)来实现。
最终效果是:
A 访问 127.0.0.1:本地端口 → 通过 SSH 转发到 B:7890 → B 的 Clash 提供代理功能
1️⃣ 前提条件
A 可以 SSH 登录 B
B 上运行着 Clash/Mihomo,并且 HTTP 代理端口(如 7890)可用
A 需要访问 Google 等外网
2️⃣ SSH 端口转发核心命令
下面是 A 服务器运行的命令:
| |
含义:
| 参数 | 含义 |
|---|---|
-4 | 强制 SSH 使用 IPv4(否则可能监听到 ::1 导致代理失败) |
-f | 后台运行 |
-N | 不执行远程命令,只做端口转发 |
-L | 创建本地端口转发 |
7890:127.0.0.1:7890 | A 本地 7890 → B 本地 7890 |
user@B_IP | SSH 登录 B 的实际地址 |
执行后保持窗口 不要关闭,转发才能持续有效。
3️⃣ 验证端口是否成功监听
在 A 服务器检查监听端口:
| |
正确结果应包含:
127.0.0.1:7890 LISTEN
如果显示的是:
[::1]:7890
就表示 SSH 监听在 IPv6,需要加上 -4。
4️⃣ 测试代理是否正常工作
在 A 另开一个窗口执行:
| |
出现 空输出(HTTP 204 No Content) 就表示成功通过 B 访问了 Google。
如果失败:
可能 B 的 Clash 没启动
可能端口没转发成功(检查 ss -tulnp)
可能 A 的 curl 仍在直连(测试 curl -x)
5️⃣ 后台运行(不用占用窗口)
| |
说明:
-f后台运行-N不执行远程命令,只做端口转发
再验证:
| |
6️⃣ 让 A 的所有程序都自动走代理(可选)
| |
测试:
| |
🎉 最终效果
A 服务器的流量:
A(127.0.0.1:7890) → SSH → B(127.0.0.1:7890 → Clash → 外网)
A 就可以完全使用 B 的代理能力,包括访问 Google、pip、git、Python 请求等。