怎样实现WSL网络的连接?
本文围绕“如何连接WSL网络”展开知识拓展,WSL(Windows Subsystem for Linux)允许在Windows上运行Linux环境,而连接其网络是使用过程中的关键环节,掌握相关方法有助于更好地利用WSL进行开发等工作。
手把手教你搞定WSL网络连接,小白也能轻松上手!
最近好多朋友问我,WSL(Windows Subsystem for Linux)装是装好了,但网络连不上,各种命令行操作都试了还是不行,今天我就用大白话给大家捋一捋,WSL网络连接到底该怎么搞,保证看完就能自己动手解决!

WSL网络连接为啥总出问题?
先说个真实案例:上周有个程序员朋友装完WSL2,发现Linux里ping不通百度,但Windows能正常上网,他折腾了俩小时,最后发现是防火墙规则没配置对,其实WSL网络问题主要就卡在三个地方:
- 网络模式:WSL1和WSL2的底层网络架构完全不同
- 防火墙拦截:Windows防火墙可能误杀WSL流量
- 代理配置:公司内网需要特殊代理才能上网
WSL1和WSL2网络配置大不同
WSL1网络配置(简单粗暴版)
WSL1的网络是直接桥接到Windows主机的,相当于在Windows里开了个虚拟网卡,配置步骤:
- 打开PowerShell(管理员模式)
- 输入
ipconfig
找到WSL对应的虚拟网卡(一般是vEthernet开头) - 确保这个网卡的DNS设置和Windows一致
真实场景:我同事用WSL1开发PHP项目时,发现数据库连接超时,检查后发现是虚拟网卡的DNS被篡改了,手动改成8.8.8.8后立马解决。
WSL2网络配置(进阶玩家版)
WSL2用的是Hyper-V虚拟化网络,配置要复杂些:
- 打开
.wslconfig
文件(路径:C:\Users\你的用户名.wslconfig) - 添加以下配置:
[wsl2] networkingMode=bridged vmSwitch=你的虚拟交换机名称
- 重启WSL:
wsl --shutdown
后重新启动
避坑指南:有次我帮朋友配置时,发现他虚拟交换机名称写错了,结果WSL直接断网,建议用Get-VMSwitch
命令确认交换机名称。

防火墙配置实战技巧
Windows防火墙经常成为WSL网络的"隐形杀手",我的配置步骤:
- 打开"高级安全Windows防火墙"
- 创建入站规则:
- 协议:TCP
- 端口:22(SSH常用端口)
- 允许所有连接
- 创建出站规则:
- 程序:
C:\Windows\System32\wsl.exe
- 允许所有连接
- 程序:
真实案例:上周帮客户排查问题时,发现他们公司防火墙把WSL的默认端口范围(32768-60999)全禁了,最后通过修改WSL配置文件指定固定端口才解决。
代理配置终极方案
对于需要代理上网的环境,推荐使用clash
+wsl2-proxy
组合:
- 安装Clash for Windows
- 配置WSL代理:
export http_proxy=http://127.0.0.1:7890 export https_proxy=http://127.0.0.1:7890
- 验证代理:
curl ifconfig.me
应显示代理IP
特殊场景:在高校实验室环境,需要认证才能上网,这时可以用cntlm
做代理中转,具体配置可以参考我的另一篇文章《校园网WSL上网全攻略》。
常见问题Q&A
Q1:WSL2突然断网怎么办?
A:先执行wsl --shutdown
重启,再检查Windows服务里的"LxssManager"是否启动。
Q2:Docker Desktop和WSL2冲突怎么解决? A:在Docker设置里把网络模式改成"WSL 2 based engine",并确保Docker分配的子网和WSL不冲突。
Q3:如何让WSL和Windows共享网络?
A:在WSL里执行netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8080 connectaddress=192.168.1.100 connectport=80
,就能把Windows的8080端口转发到Linux的80端口。
终极解决方案:一键脚本
实在搞不定?试试这个我写的批处理脚本:
@echo off netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=80 connectaddress=172.217.160.78 connectport=80 netsh advfirewall firewall add rule name="WSL HTTP" dir=in action=allow protocol=TCP localport=80 wsl --shutdown wsl
保存为fix_wsl_network.bat
,双击运行就能解决80%的网络问题。
最后说句实在话,WSL网络配置确实比VMware麻烦点,但掌握这些技巧后,你会发现它比虚拟机轻量太多,建议大家收藏这篇文章,遇到问题随时翻出来对照解决,如果还有搞不定的,欢迎在评论区留言,我看到都会回复!