wsl中配置clash代理

概述

最近在本地部署 Claude Code,因为要下载需要代理,所以本教程详细介绍如何在 WSL (Windows Subsystem for Linux) 中配置 Clash for Windows 代理,实现 WSL 环境下的网络代理访问。

前提条件

  • 已安装 WSL
  • 已安装并运行 Clash for Windows
  • Clash for Windows 使用默认端口 7890

配置步骤

第一步:确认 Clash for Windows 设置

  1. 打开 Clash for Windows
  2. 在 General 标签页中
    • 确保 Allow LAN 选项已开启(这是关键步骤!)
    • 确认 HTTP Port 为 7890
    • 确认 Socks Port 为 7891

第二步:获取 Windows 主机 IP 地址

在 WSL 终端中执行以下命令获取 Windows 主机 IP:

1
2
3
4
5
# 方法一:通过 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 为例):

1
2
3
4
5
6
7
8
9
# 清除之前的代理设置
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

第四步:测试代理连接

1
2
# 测试代理是否工作
curl -I https://www.google.com

成功的响应示例

1
2
3
4
HTTP/1.1 200 Connection established
HTTP/2 200
content-type: text/html; charset=ISO-8859-1
...

第五步:配置永久代理设置

1. 创建代理设置脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 创建代理配置脚本
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 配置文件

1
2
3
4
# 添加到 .bashrc 文件末尾
echo "" >> ~/.bashrc
echo "# WSL Clash 代理设置" >> ~/.bashrc
echo "source ~/.proxy_setup.sh" >> ~/.bashrc

3. 创建快捷命令

1
2
3
4
# 创建启用/禁用代理的快捷命令
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. 重新加载配置

1
source ~/.bashrc

安装 npm

代理配置成功后,可以正常安装 npm:

1
2
3
4
5
6
7
8
9
# 更新包列表
sudo apt update

# 安装 Node.js 和 npm
sudo apt install -y nodejs npm

# 验证安装
node --version
npm --version

实用命令

配置完成后,您可以使用以下命令管理代理:

  • proxy-on - 启用代理
  • proxy-off - 关闭代理
  • proxy-status - 查看当前代理状态

故障排除

常见问题及解决方案

  1. 连接被拒绝 (Connection refused)

    • 检查 Clash for Windows 是否正在运行
    • 确认 Allow LAN 选项已开启
    • 验证端口号是否正确
  2. IP 地址问题

    • 尝试使用不同的方法获取 Windows 主机 IP
    • 有时 /etc/resolv.conf 中的 IP 可能不准确
  3. 权限问题

    • 确保有足够权限执行 sudo 命令
    • 检查脚本文件的执行权限
  4. 防火墙问题

    • Windows 防火墙可能阻止 WSL 访问 Windows 上的端口
    • 考虑在 Windows 防火墙中添加例外规则

配置验证

成功配置后,应该能够:

  1. ✅ 访问 Google 等被墙网站
  2. ✅ 正常使用 npm install
  3. ✅ 使用 git clone 从 GitHub 克隆仓库
  4. ✅ 使用 wget/curl 下载文件

注意事项

  1. 每次重启 WSL 后代理会重新自动配置(如果按照永久配置步骤设置)
  2. Clash for Windows 必须保持运行状态
  3. Allow LAN 选项是关键设置,必须开启

适用环境: Windows 11 + WSL + Clash for Windows
测试状态: ✅ 已验证可用


wsl中配置clash代理
https://lshgame.com/2025/06/17/Configuring_Clash_Proxy_in_WSL/
作者
SuHang
发布于
2025年6月17日
许可协议