我在 Windows 11 22H2 22624.1470 上使用 WSL2。Ubuntu 22.04.6 LTS 安装在 WSL2 上。当我运行一个名为 aTrust 的程序(由一家名为 Sangfor 的公司开发)时,我的 WSL2 无法连接到互联网或任何 IP 地址,甚至包括网关172.17.160.1
。我试图找出问题的原因。我到处搜索,但没有找到有关 Sangfor aTrust 和 WSL2 的任何有用信息。通过使用 WireShark,我发现所有 ICMP 协议都有No Respond Found
警告,无论我 ping 什么 IP 地址。此外,当我使用时traceroute 172.17.160.1
,我只能得到:
traceroute to 172.17.160.1 (172.17.160.1), 64 hops max
1 * * *
2 * * *
3 * * *
4 * * ^C
以下是文件/etc/resolv.conf
:
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.17.160.1
我知道我可以将名称服务器更改为 1.1.1.1 或 9.9.9.9 等,但我无法连接到 WSL2 中的上述任何地址。
当我退出 aTrust 程序时,一切都会好起来,但我不想频繁退出它,因为我需要使用它来保持与大学网络的连接以完成我的工作。我希望有人能帮我解决这个问题。我不太擅长使用 Linux,因为我才刚刚开始学习如何使用 Linux,这就是为什么我使用 WSL 而不是运行 Ubuntu 的计算机。我不熟悉互联网协议,但只是按照互联网上的说明,试图找出问题所在。
我在WindowsFirewall里加了一条规则,允许从172.17.160.2
到的所有协议和端口172.17.160.254
访问本地所有地址和端口(怕有风险),但是只能访问172.17.160.1
,所有DNS都解析不了,包括1.1.1.1、8.8.8.8在内的所有IP地址都无法访问,我想肯定是哪里出了问题。
令人惊讶的是,当我使用 Wireshark 捕获 WLAN 而不是 vEthernet(WSL)时,我在 WSL 内部 ping 的网站的 DNS 解决方案正常,并且我可以看到返回到我的 Windows 系统的主机的 IP 地址。
编辑防火墙后,我也尝试过跟踪路由 IP 地址:
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max
1 172.17.160.1 0.358ms 0.202ms 0.205ms
2 * * *
3 * * *
4 * * *
5 * ^C
它确实起作用了,但是仍然没用。
是的,我可以结束 aTrust 程序来让一切正常,但我真的厌倦了打开它登录并关闭它以使用 WSL2。我希望有人能帮我找到解决方案。
从https://learn.microsoft.com/en-us/windows/wsl/troubleshooting我发现:
一些用户报告了特定防火墙应用程序阻止 WSL 中的互联网访问的问题。报告的防火墙是:
卡巴斯基
平均
Avast
赛门铁克端点保护
在某些情况下,关闭防火墙可以允许访问。在某些情况下,只需安装防火墙即可阻止访问。
好吧,也许深信服 aTrust 会被添加到列表中。下面我将介绍我发现它对我的电脑做了什么,因为您可能不熟悉这个程序。这是一个糟糕的程序,但我必须使用它。
我检查了 Windows 设置,发现 aTrust 没有创建 VPN 或代理。但是,虚拟网络已创建,并且无法终止,因为当我通过我未找到的服务或后台进程之类的东西阻止它时,它会立即恢复。网络无法访问 Internet,但我的计算机为 2.0.0.1(法国的 IP 地址):
C:\>tracert 2.0.0.1
通过最多 30 个跃点跟踪
到 DESKTOP-94DT041 [2.0.0.1] 的路由:
1 <1 毫秒 <1 毫秒 <1 毫秒 myDESKTOP [2.0.0.1]
跟踪完成。
使用 cmd.exe(简体中文)
并且它创建了一个新的虚拟网络适配器,名为 Sangfor aTrust VNIC,用于保持虚拟网络。它甚至通过编辑注册表阻止了我的 Windows 系统的所有 IPv6 访问。我认为它对我的电脑做了更多我没有发现的事情,这导致了我提到的问题。
感谢您看懂我拙劣的表达,我已尽力将一切都表达清楚。
Wireshark 的屏幕截图: