服务器监听clash端口加速外网访问
Windows 本机 Clash + 服务器代理完整流程
一、整体原理
现在的结构是:
服务器 → Windows 本机 Clash 代理 → GitHub / Hugging Face / 外网目的:让服务器走 Windows 本机 Clash,从而加速 GitHub、HuggingFace、大模型下载等操作。
- 学校服务器:可以直接访问 Windows 的内网 IP(如 10.21.200.105)
- 云服务器 / AutoDL / 公网 VPS:通常访问不到 Windows 内网 IP,需要 SSH 反向端口转发。
二、Windows 本机配置
1. Clash 设置

-
打开 Clash / Clash Verge / Mihomo Party
-
开启设置里的Clash设置的 Allow LAN / 允许局域网访问
-
HTTP 端口:
7897此时你的服务器可以访问:
http://<Windows_IP>:78972. 查 Windows IP
ipconfig选择WLAN:

IPv4 地址: 10.21.200.1053. 放行防火墙端口
在本机powershell的管理员模式运行,但是一般应该不需要
New-NetFirewallRule -DisplayName "Clash LAN 7897" -Direction Inbound -Protocol TCP -LocalPort 7897 -Action Allow取消防火墙规则:
Remove-NetFirewallRule -DisplayName "Clash LAN 7897"4. 测试服务器
curl -x http://10.21.200.105:7897 https://www.google.com -I如果好了的话会显示200,不好的话会显示超时三、服务器端配置
1. 创建 proxy_on.sh
nano ~/proxy_on.sh内容:
#!/usr/bin/env bash
PROXY_HOST="10.21.200.105" # 学校服务器可直接访问,ip可能会一直变,但是在本次开机的时候不会,以后每次开机都重新检查一遍,如果变了就直接替换即可PROXY_PORT="7897"PROXY_URL="http://${PROXY_HOST}:${PROXY_PORT}"
# 环境变量export http_proxy="$PROXY_URL"export https_proxy="$PROXY_URL"export HTTP_PROXY="$PROXY_URL"export HTTPS_PROXY="$PROXY_URL"export no_proxy="localhost,127.0.0.1,::1"export NO_PROXY="localhost,127.0.0.1,::1"
# Git 全局代理git config --global http.proxy "$PROXY_URL"git config --global https.proxy "$PROXY_URL"
echo "Proxy enabled: $PROXY_URL"echo "Testing GitHub..."curl -I https://github.com --connect-timeout 10授权:
chmod +x ~/proxy_on.sh开启代理:
source ~/proxy_on.sh2. 创建 proxy_off.sh
nano ~/proxy_off.sh内容:
#!/usr/bin/env bash
# 取消环境变量unset http_proxyunset https_proxyunset HTTP_PROXYunset HTTPS_PROXYunset no_proxyunset NO_PROXY
# 取消 Git 代理git config --global --unset http.proxy 2>/dev/nullgit config --global --unset https.proxy 2>/dev/null
echo "Proxy disabled."授权:
chmod +x ~/proxy_off.sh关闭代理:
source ~/proxy_off.sh四、如何测试
- 环境变量生效 :
env | grep -i proxy- 测试 GitHub / Hugging Face :
curl https://github.com -Icurl https://huggingface.co -I- 测试 Git :
git config --global --get http.proxygit config --global --get https.proxygit clone https://github.com/xxx/xxx.git- 测试 Hugging Face 下载 :
hf download Qwen/Qwen2.5-7B-Instruct --local-dir ./Qwen2.5-7B-Instruct五、proxy_on 的作用范围
-
当前 shell 以及子进程生效 :
只要你在当前终端
source ~/proxy_on.sh,大部分命令(curl、wget、git、pip、huggingface_hub 等)都会自动走代理。 -
Git 配置是全局的 :
执行一次
git config --global http.proxy ...,其他终端也能生效,直到你执行proxy_off.sh。 -
新开终端需要重新
source ~/proxy_on.sh:因为环境变量只对当前终端生效。
-
不需要单独为 GitHub / HuggingFace 再额外设置 ,只要代理环境变量和 Git 配置都设置好即可。
六、学校服务器 vs 云服务器区别
| 场景 | 可访问 Windows IP | PROXY_HOST | 说明 |
|---|---|---|---|
| 学校服务器 | ✅ 可以 | 10.21.200.105 | 直接用 LAN IP 访问 Windows Clash |
| 云服务器 / AutoDL / 公网 VPS | ❌ 不可 | 127.0.0.1 | 需要建立 SSH 反向端口转发,云服务器本地 127.0.0.1:7897 → Windows Clash |
云服务器示例
在 Windows PowerShell:
ssh -R 7897:127.0.0.1:7897 username@云服务器IP然后云服务器上 继续proxy_on和proxy_off的操作:
#!/usr/bin/env bash
PROXY_HOST="127.0.0.1" #PROXY_PORT="7897"PROXY_URL="http://${PROXY_HOST}:${PROXY_PORT}"
# 环境变量export http_proxy="$PROXY_URL"export https_proxy="$PROXY_URL"export HTTP_PROXY="$PROXY_URL"export HTTPS_PROXY="$PROXY_URL"export no_proxy="localhost,127.0.0.1,::1"export NO_PROXY="localhost,127.0.0.1,::1"
# Git 全局代理git config --global http.proxy "$PROXY_URL"git config --global https.proxy "$PROXY_URL"
echo "Proxy enabled: $PROXY_URL"echo "Testing GitHub..."curl -I https://github.com --connect-timeout 101. 为什么云服务器必须要 SSH -R?
云服务器上的:
127.0.0.1指的是 云服务器自己 ,不是你的 Windows 电脑。
你的 Clash 跑在 Windows 上:
Windows 127.0.0.1:7897云服务器默认访问不到这个地址。
所以要用:
ssh -R 7897:127.0.0.1:7897 username@云服务器IP这条命令的作用是:在云服务器上开一个本地端口:
云服务器 127.0.0.1:7897然后把它转发到:
Windows 127.0.0.1:7897所以云服务器才能用:
PROXY_URL="http://127.0.0.1:7897"2. 如果已经连好了,难道要重连吗?
如果你之前连接云服务器时 没有加 -R ,那就需要重新建立隧道,或者额外开一个 SSH 隧道连接。
有两种做法。
做法 A:重新登录,带上 -R
在 Windows PowerShell 重新连:
ssh -R 7897:127.0.0.1:7897 username@云服务器IP然后在云服务器里:
source ~/proxy_on.shcurl https://github.com -I这是最简单的。
做法 B:不打断当前服务器终端,额外开一个 PowerShell 窗口建隧道
你可以保留原来的 SSH 连接不动。
另开一个 Windows PowerShell,执行:
ssh -N -R 7897:127.0.0.1:7897 username@云服务器IP解释一下:
-N 表示只建立隧道,不进入交互 shell-R 表示反向转发这个 PowerShell 窗口不要关。它开着,云服务器上的 127.0.0.1:7897 就有效。
然后回到你原来的服务器终端,执行:
source ~/proxy_on.shcurl https://github.com -I七、使用流程总结
学校服务器
- 确认 Windows Clash 开启 LAN,端口 7897,Windows IP 10.21.200.105
- Windows 防火墙允许 7897 入站
- 服务器终端:
source ~/proxy_on.sh # 开启代理curl https://github.com -I # 测试hf download ... # HuggingFace 下载source ~/proxy_off.sh # 不用时关闭云服务器
- Windows Clash 开启 LAN,端口 7897
- SSH 建立反向端口转发:
ssh -R 7897:127.0.0.1:7897 username@云服务器IP- 云服务器终端:
PROXY_HOST="127.0.0.1"PROXY_PORT="7897"source ~/proxy_on.shcurl https://github.com -Ihf download ...source ~/proxy_off.sh✅ 这样,无论是学校服务器还是云服务器,服务器端都可以通过 Windows 本机的 Clash 代理加速下载,proxy_on.sh / proxy_off.sh 统一管理,并且 Git、HuggingFace 等工具自动走代理,无需单独配置。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!