必须手动放行ICMPv4入站请求,否则WSL2无法ping通宿主机真实局域网IP;需在高级安全防火墙中新建规则或用PowerShell命令New-NetFirewallRule -DisplayName "Allow WSL2 Ping Host Real IP" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow -Profile Any添加。

在Win11中运行WSL2时,执行ping 192.168.x.x(宿主机真实局域网IP)失败,但ping 172.x.x.x(WSL虚拟网卡IP)能通——这说明WSL2与宿主机的物理网络层通信被Windows防火墙拦截,必须手动放行ICMPv4入站请求,否则所有来自WSL2对宿主真实IP的ping操作都会超时。
确认宿主机真实IP并验证当前阻断状态
在PowerShell中执行ipconfig,找到“无线局域网适配器 WLAN”或“以太网适配器 以太网”下的IPv4地址(如192.168.3.105),这就是你要放行的目标IP;不要误用“vEthernet (WSL…)”开头的那行——那是WSL专用虚拟网卡,和局域网通信无关。
打开命令提示符或WSL终端,尝试ping 192.168.3.105,确认返回“请求超时”,证明当前规则确实未生效。
通过高级安全防火墙界面新建ICMPv4入站规则
按Win+R→输入wf.msc→回车,打开“高级安全 Windows 防火墙”。
左侧点击“入站规则”,右侧点击“新建规则…”→选择“自定义”→下一步。
协议和端口 → 协议类型选“ICMPv4”→勾选“特定 ICMP 类型”→只勾选“回显请求(8)”→下一步。
作用域 → “本地IP地址”保持默认“任何IP地址”;“远程IP地址”也选“任何IP地址”→下一步。
操作 → 选“允许连接”→下一步。
配置文件 → 勾选“域”“专用”“公用”全部三项→下一步。
名称 → 输入Allow WSL2 Ping Host Real IP(便于后续识别)→完成。
用PowerShell一条命令快速添加(推荐)
以管理员身份运行PowerShell,直接执行:
New-NetFirewallRule -DisplayName "Allow WSL2 Ping Host Real IP" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow -Profile Any
这条命令会立即创建一条全局生效的入站规则,覆盖所有网络配置文件,无需图形界面点选。执行后不会有任何输出,但可在wf.msc的入站规则列表中看到新规则已启用。
【注意:必须以管理员身份运行PowerShell,否则命令静默失败且不报错】
验证规则是否生效
回到WSL2终端,再次执行ping 192.168.3.105(替换为你自己的宿主真实IP)。
如果看到64 bytes from 192.168.3.105: icmp_seq=1 ttl=128 time=0.87 ms这类响应,说明规则已起效。

















