防火墙阻止WSL 2

11

我的防火墙(Norton)正在阻止WSL 2使用互联网。我甚至无法ping通谷歌。

当我关闭防火墙时,一切都正常,当我再次打开它时,它就不再工作了。

我需要在防火墙上设置哪些规则才能允许WSL通过?这对所有防火墙都有效还是只对Norton有效?

4个回答

10

请在您使用的每个杀毒软件或防火墙中将 C:\Windows\System32\bash.exeC:\Windows\System32\wsl.exe 加入白名单。

如果这不起作用,请尝试添加已安装发行版的 distro_name.exe 文件。您可以在 C:\Program Files\WindowsApps\ 中找到带有发行版名称的子文件夹内的 distro_name.exe 文件。


2
我允许了bash.exe和wsl.exe通过防火墙,现在终于可以正常工作了。谢谢。 - Monday Fatigue
@MondayFatigue 我已更新答案,包括使用wsl.exe的方法。将其标记为正确的答案将帮助其他人更快地找到解决方案。在答案附近应该有一个勾号来标记它为解决方案。 - zwxi
很抱歉,我不是提问者,所以无法回答。 - Monday Fatigue
1
@MondayFatigue 哈哈,我没注意到,抱歉。 - zwxi
对我来说,设置 MTU 没有帮助,但我发现这是 VPN 设置的问题。打开你的 Norton 360 应用程序,进入 VPN 设置并关闭“自动 VPN”。也许你需要将 WSL 添加到白名单中。 - Lukáš Secký

1
我的SSH被Norton 360以神秘的方式阻止了。但在下面的链接中,我找到了两个临时解决方案,可以解决我的问题。 https://askubuntu.com/questions/1229456/ssh-fails-with-connection-timed-out-in-vpn-and-hangs-here-expecting-ssh2-msg 将MTU设置为1200对我有用(Ubuntu 20.04): sudo ip li set mtu 1200 dev {dev}
或者
手动设置KEX算法可以解决问题。
在相应的SSH配置中添加KexAlgorithms ecdh-sha2-nistp521,或者在命令行参数中添加-oKexAlgorithms=ecdh-sha2-nistp521以进行一次性使用。
参考(2019年):https://superuser.com/a/1462220/555702

0
我完成了上述所有步骤。最后,我通过将我的网络设置从公共网络改为私人网络,终于使它正常工作了。
原来是因为诺顿添加了额外的安全措施。你可以启用Internet连接共享,这样就可以正常工作,而不需要将网络切换为私人网络。 诺顿设置

0
我成功解决了Norton 360阻止WSL到远程主机的出站SSH流量的问题。这个问题在Windows 11和Norton360 V22.23.5.106上得到了解决。在Windows 10上也应该按照指定的方式工作。安装Norton后,打开"Norton Anti-Virus",再打开"设备安全性"。会弹出一个新窗口。在顶部菜单栏中选择"设置",然后选择"防火墙"。在"程序控制"下,按照zwxi提供的解决方案,添加bash.exe和wsl.exe。然后,选择"流量规则"。添加以下流量规则:操作:允许,连接:连接到任何计算机,计算机:任何计算机,通信:TCP,添加远程端口22(界面有点奇怪,选择逐个指定端口,然后输入22),高级:关闭NAT遍历流量的应用规则。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接