WSL2+VSCode+Clash使用桥接模式进行开发环境搭建
使用WSL2搭配VSCode的WSL插件可以实现在VSCode中直接操作Linux环境下的文件和工具,既可以享受VSCode的现代化开发环境,又可以利用Linux的完整工具链。但是在国内网络环境下,使用WSL2进行开发可能会遇到下载速度慢、连接不稳定等问题。在Windows上我们可以使用Clash作为代理解决大部分网络问题,但是WSL默认情况下走的是NAT转发,无法直接由Windows上的Clash代理解析WSL流量。虽然可以通过配置镜像模式来解决WSL的网络代理问题,但是这种方式会导致VSCode的WSL插件无法正常连接WSL,产生类似于“无法获取远程环境”、“无法连接到远程扩展主机服务器(错误:WebSocket close with status code 1006)”等报错。

这可能是因为镜像模式下的WSL和Windows主机之间共用同一套网络接口,导致VSCode的WSL插件无法正确解析本地回环地址,或者是连接请求被Clash代理拦截,从而无法建立稳定的连接。NAT模式下配置代理相对复杂,因为WSL和Windows虚拟网关的IP地址会动态变化,且需要额外配置端口转发并设置防火墙规则,虽然可以编写一个自动化脚本进行连接,但桥接模式下WSL和Windows主机通过共用Hyper-V虚拟交换机直接连接到同一局域网,使得两者拥有独立固定的IP地址,配置代理更加简单且稳定。
然而,微软官方文档指出,WSL2.4.5之后的版本中,Bridged模式已被弃用,因此在WSL Settings中将不再提供桥接模式的选项;然而,在github上WSL项目的release页中,版本2.5.6的更新日志中写道“Bring back bridged networking mode”,这使得桥接模式的使用变得有些混乱。经过测试,发现WSL2.6.3版本确实支持桥接模式,但需要通过手动配置。每当连接到新网络时,电脑的IP地址会发生变化,因此需要重新配置。
WSL配置步骤
1.在C:\Users<username>.wslconfig文件中添加以下内容:
1 | [wsl2] |
2.创建一个新的虚拟交换机.打开PowerShell(以管理员身份运行),执行以下命令创建一个新的外部虚拟交换机:
1 | New-VMSwitch -Name "YourVirtualSwitchName" -NetAdapterName "以太网" -AllowManagementOS $true |
这里的“以太网”是你当前使用的网络适配器名称,可以通过Get-NetAdapter命令查看。例如:
1 | Get-NetAdapter |
或者,你可以通过“控制面板->Windows 管理工具->Hyper-V 管理器”来创建虚拟交换机。

看到右边的“操作”栏,点击“虚拟交换机管理器”,选择“外部”,然后点击“创建虚拟交换机”,如下设置,其中名称要与你在.wslconfig中配置的vmSwitch一致。

3.重启WSL实例,可以通过PowerShell执行以下命令:
1 | wsl --shutdown |
Clash配置步骤
1.先查看一下当前虚拟交换机的IP地址,可以通过PowerShell执行命令:
1 | ipconfig |
找到对应虚拟交换机的IPv4地址,例如:

这里的IP地址是192.168.5.9。
2.打开clash设置面板,在“系统代理”中,将“代理IP”设置为虚拟交换机的IP地址,例如192.168.5.9,端口保持默认或根据需要调整。并确保“允许局域网连接”选项已启用。

.bashrc配置步骤
在WSL的Linux环境中,编辑~/.bashrc文件,添加以下内容以设置HTTP和HTTPS代理:
1 | export WIN_HOST_IP="<虚拟交换机IP>" # 在我的环境下即为192.168.5.9 |
保存并关闭文件后,执行以下命令使配置生效:
1 | source ~/.bashrc |
执行curl ipinfo.io,如果返回的IP地址是代理服务器的IP地址,说明代理配置成功。
VSCode相关配置
配置完成后,可能产生copilot扩展无法连接到服务器的问题,尤其是在连接到WSL的工作区中。可以打开VSCode设置,搜索“Proxy”,找到“HTTP: Proxy”配置,将其设置为:
1 | http://<虚拟交换机IP>:<Clash端口> // 在我的环境中即为 http://192.168.5.9:7897 |
保存并重启VSCode,问题应该能得到解决。需要注意的是“用户”、“远程”这两个设置项不一定都需要配置,具体情况可以根据实际测试结果进行调整。
2026年2月7日。
2026年2月8日:最近在github上找到一个在WSL中使用VPN的项目,声称可以通过脚本自动为WSL进行配置,使它能够访问Windows主机上的VPN连接。但是项目有些老了,有空再试试看效果如何。
2026年2月18日:VSCode有一项设置Use Local Proxy Configuration可以启用,启用后VSCode会使用系统的代理设置,这样就不需要在VSCode中单独配置HTTP Proxy了,直接使用Clash的系统代理设置即可。启用后需要重启VSCode使设置生效。
