文章目录
- 原因排查
- 网络模式
- win11防火墙
- 关闭wsl ubuntu防火墙
如果之前能连接现在连接不上可以参考该方案
原因排查
- 网络模式
- win11防火墙(win11新增了Hyper-V防火墙)
- wsl2 ubuntu防火墙
网络模式
wsl2的默认网络模式是NAT,建议修改为镜像模式。在C:\Users\<UserName>\.wslconfig
中添加下列代码:
[wsl2]
networkingMode=mirrored
如果使用代理可以在后面添加:
autoProxy=true
还可以使用DNS隧道提高与 VPN 和其他复杂网络设置的兼容性:
dnsTunneling=true
其他设置可参考: https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config#configuration-settings-for-wslconfig
win11防火墙
如果以前可以连接,但忽然不能连接了可能是Hyper-V防火墙的问题。具体可以了解https://learn.microsoft.com/zh-cn/windows/security/operating-system-security/network-security/windows-firewall/hyper-v-firewall
获取wsl GUID
通常都为
{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}
, 如果不一样后面的命令都需要替换
Get-NetFirewallHyperVVMCreator
查看Hyper-V防火墙状态:
Get-NetFirewallHyperVVMSetting -PolicyStore ActiveStore -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}'
输出结果包含以下值
关闭Hyper-V防火墙(要使用管理员权限下的Powershell)
虽然有其他方法可以解决,但关闭是最简单的方法
Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -Enabled False
关闭wsl ubuntu防火墙
如果关掉Hyper-V防火墙还是无法访问,检查一下ubuntu的防火墙并进行关闭。
关闭防火墙的命令参考自https://blog.csdn.net/qq_37714755/article/details/113870991
关闭防火墙:
ufw disable
删除iptables(如果有的话)
apt-get remove iptables
关闭ubuntu中的防火墙的其余命令
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F