WSL2 的安装与配置

注意 1:第 2 节(NAT 模式)与第 3 节(镜像网络模式)二选一即可

注意 2:文中涉及的局域网本机 IP 地址请以实际为准,192.168.1.71 仅为配置示例

1. 安装

2. WSL2 在 NAT 网络下配置 Clash Verge Rev 代理服务

2.1. Clash Verge Rev 设置

2.2. Windows PowerShell (管理员) 设置

New-NetFirewallRule -Name "WSL_Clash_NAT" -DisplayName "WSL Clash NAT" -Direction Inbound -LocalPort 7897 -Protocol TCP -Action Allow

验证方式:命令回显中显示 Action: AllowEnabled: True

2.3. Ubuntu 终端设置

编辑用户配置:nano ~/.bashrc,在文件最底部粘贴下列命令函数并保存

# Clash Verge Rev NAT 代理脚本
function setproxy() {
    export host_ip=$(ip route | grep default | awk '{print $3}')
    export http_proxy="http://${host_ip}:7897"
    export https_proxy="http://${host_ip}:7897"
    export all_proxy="http://${host_ip}:7897"
    echo "Proxy set to ${host_ip}:7897"
}

function unsetproxy() {
    unset http_proxy https_proxy all_proxy host_ip
    echo "Proxy cleared"
}

执行 source ~/.bashrc 重新加载配置

执行 setproxy,终端输出 Proxy set to 172.31.192.1:7897(具体 IP 对应当前网关)

2.4. 测试网络连通性

保持 Clash Verge Rev 系统代理正常开启,在 Ubuntu 中执行

setproxy
curl -Iv https://www.google.com

3. WSL2 在镜像网络下配置 Clash Verge Rev 代理服务 推荐

注意:networkingMode=mirrored 属于 Windows 11(22H2 及以上)与 WSL 2.0+ 的专属特性

3.1. Clash Verge Rev 设置

3.2. Windows 宿主机设置

在 Windows 中按下快捷键 Win + R,输入 %USERPROFILE% 并回车,检查目录下是否存在 .wslconfig 文件;若不存在,新建一个同名文件(注意去除 .txt 后缀),使用记事本打开,添加或更新以下内容

[wsl2]
networkingMode=mirrored
firewall=true
autoProxy=true

3.3. 彻底重启 WSL2 实例

在 Windows 终端中执行

wsl --shutdown

3.4. 配置 Ubuntu 终端

打开 Ubuntu 终端执行

cat << 'EOF' >> ~/.bashrc

# Clash Verge Rev 镜像模式代理别名(使用 http 协议避免 DSH 报 SOCKS 不支持警告)
alias setproxy="export http_proxy=http://127.0.0.1:7897; export https_proxy=http://127.0.0.1:7897; export all_proxy=http://127.0.0.1:7897; export ALL_PROXY=http://127.0.0.1:7897"
alias unsetproxy="unset http_proxy https_proxy all_proxy ALL_PROXY"
EOF

source ~/.bashrc

验证方式:终端执行 setproxy,然后运行 env | grep -i proxy,终端正确输出指向 127.0.0.1:7897 的各环境变量

3.5. Ubuntu 终端测试代理连通性

setproxy
curl -I https://www.google.com

4. WSL2 在镜像网络下配置局域网访问 DSH

4.1. 管理员: Windows PowerShell

4.1.1. 设置端口映射(外部访问宿主机 3080 -> 转发至本地回环 3081)

netsh interface portproxy add v4tov4 listenport=3080 listenaddress=0.0.0.0 connectport=3081 connectaddress=127.0.0.1

4.1.2. 放行 3080 端口入站连接

New-NetFirewallRule -Name "WSL_Mirrored_DSH_3080" -DisplayName "WSL Mirrored DSH 3080" -Direction Inbound -LocalPort 3080 -Protocol TCP -Action Allow -ErrorAction SilentlyContinue

4.2. Ubuntu 终端指定 3081 端口启动 DSH

npx @deepseek-ai/dsh web --port 3081 --trusted-host 192.168.1.71:3080 --no-open

4.3. 局域网其他设备访问

http://192.168.1.71:3080/?token=启动日志打印出的Token