受限服务器如何借助另一台机器使用 Clash 代理
在一些服务器环境中,业务机器只能通过 22 端口(SSH)与外界通信,无法直接访问公网。
这时可以借助另一台可联网的服务器,给受限服务器“转出”一条代理通道。
场景
有两台 Linux 服务器:
- A 服务器(受限机)
- 只能走 SSH(22 端口)
- 不能直接访问外网(例如 Google)
- B 服务器(代理机)
- 已运行 Clash
- HTTP 代理端口为
7890
目标:让 A 服务器通过 B 服务器访问外网。
整体思路
核心是两步:
- 先让 B 服务器上的 Clash 对外可用。
- A 服务器按网络条件选择:
- 能直连 B:7890:直接用 HTTP 代理。
- 不能直连 B:7890:通过 SSH 隧道把本地端口转发到 B:7890。
步骤一:配置 B 服务器 Clash
编辑 Clash 配置文件(通常为 config.yaml):
1 | port: 7890 |
重启 Clash 后,检查端口监听状态:
1 | ss -lntp | grep 7890 |
如果输出中出现 *:7890(或 0.0.0.0:7890),说明该端口已对外监听。
开启防火墙:
1 | sudo ufw allow 7890 |
步骤二:在 A 服务器测试是否可直连
1 | nc -vz 218.194.48.117 7890 |
如果返回 Connection succeeded,说明 A 可以直接访问 B 的代理端口,此时直接设置环境变量即可:
1 | export http_proxy="http://218.194.48.117:7890" |
步骤三:验证
1 | wget -O- https://www.google.com --timeout=5 |