概述
最近在本地部署 Claude Code,因为要下载需要代理,所以本教程详细介绍如何在 WSL (Windows Subsystem for Linux) 中配置 Clash for Windows 代理,实现 WSL 环境下的网络代理访问。
前提条件
- 已安装 WSL
- 已安装并运行 Clash for Windows
- Clash for Windows 使用默认端口 7890
配置步骤
第一步:确认 Clash for Windows 设置")第一步:确认 Clash for Windows 设置
- 打开 Clash for Windows
- 在 General 标签页中:
- 确保 Allow LAN 选项已开启(这是关键步骤!)
- 确认 HTTP Port 为 7890
- 确认 Socks Port 为 7891
第二步:获取 Windows 主机 IP 地址
在 WSL 终端中执行以下命令获取 Windows 主机 IP:
# 方法一:通过 resolv.conf 获取
cat /etc/resolv.conf | grep nameserver | awk '{print $2}'
# 方法二:通过路由表获取(推荐)
ip route show | grep default | awk '{print $3}'
注意:通常方法二得到的 IP 地址更准确,如本例中得到的 172.28.176.1。
第三步:设置临时代理环境变量
使用获得的 IP 地址设置代理(以 172.28.176.1 为例):
# 清除之前的代理设置
unset http_proxy
unset https_proxy
unset all_proxy
# 设置新的代理
export http_proxy=http://172.28.176.1:7890
export https_proxy=http://172.28.176.1:7890
export all_proxy=socks5://172.28.176.1:7891
第四步:测试代理连接
重新加载配置
source ~/.bashrc
测试代理是否生效
curl -I https://www.google.com
成功的响应示例:
HTTP/1.1 200 Connection established
HTTP/2 200
content-type: text/html; charset=ISO-8859-1
...
第五步:配置永久代理设置
1. 创建代理设置脚本
# 创建代理配置脚本
cat > ~/.proxy_setup.sh << 'EOF'
#!/bin/bash
# WSL Clash 代理配置脚本
# 获取 Windows 主机 IP
WINDOWS_IP=$(ip route show | grep default | awk '{print $3}')
# 设置代理环境变量
export http_proxy=http://$WINDOWS_IP:7890
export https_proxy=http://$WINDOWS_IP:7890
export all_proxy=socks5://$WINDOWS_IP:7891
echo "代理已设置: $WINDOWS_IP"
echo "HTTP/HTTPS 代理端口: 7890"
echo "SOCKS5 代理端口: 7891"
EOF
# 赋予执行权限
chmod +x ~/.proxy_setup.sh
2. 将代理设置添加到 shell 配置文件")2. 将代理设置添加到 shell 配置文件
# 添加到 .bashrc 文件末尾
echo "" >> ~/.bashrc
echo "# WSL Clash 代理设置" >> ~/.bashrc
echo "source ~/.proxy_setup.sh" >> ~/.bashrc
3. 创建快捷命令
# 创建启用/禁用代理的快捷命令
echo 'alias proxy-on="source ~/.proxy_setup.sh"' >> ~/.bashrc
echo 'alias proxy-off="unset http_proxy https_proxy all_proxy && echo \"代理已关闭\""' >> ~/.bashrc
echo 'alias proxy-status="echo \"HTTP代理: \$http_proxy\" && echo \"HTTPS代理: \$https_proxy\" && echo \"SOCKS代理: \$all_proxy\""' >> ~/.bashrc
4. 重新加载配置
source ~/.bashrc
实用命令
配置完成后,您可以使用以下命令管理代理:
proxy-on- 启用代理proxy-off- 关闭代理proxy-status- 查看当前代理状态
故障排除
常见问题及解决方案
-
连接被拒绝 (Connection refused)
- 检查 Clash for Windows 是否正在运行
- 确认 Allow LAN 选项已开启
- 验证端口号是否正确
-
IP 地址问题
- 尝试使用不同的方法获取 Windows 主机 IP
- 有时
/etc/resolv.conf中的 IP 可能不准确
-
权限问题
- 确保有足够权限执行 sudo 命令
- 检查脚本文件的执行权限
-
防火墙问题
- Windows 防火墙可能阻止 WSL 访问 Windows 上的端口
- 考虑在 Windows 防火墙中添加例外规则
配置验证
成功配置后,应该能够:
- ✅ 访问 Google 等被墙网站
- ✅ 正常使用 npm install
- ✅ 使用 git clone 从 GitHub 克隆仓库
- ✅ 使用 wget/curl 下载文件
注意事项
- 每次重启 WSL 后代理会重新自动配置(如果按照永久配置步骤设置)
- Clash for Windows 必须保持运行状态
- Allow LAN 选项是关键设置,必须开启
适用环境: Windows 11 + WSL + Clash for Windows
测试状态: ✅ 已验证可用
评论区