今天我的 WSL2 突然没有网络连接。我该如何解决这个问题?以下是有关我的系统的信息。
主人的网络很好。
希望有人可以帮忙...
我的 Windows 主机说:
C:\WINDOWS\system32>ipconfig
Windows IP Configuration
Ethernet adapter Ethernet:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Ethernet adapter VirtualBox Host-Only Network:
Connection-specific DNS Suffix . :
Autoconfiguration IPv4 Address. . : 169.254.50.150
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . :
Ethernet adapter VirtualBox Host-Only Network #2:
Connection-specific DNS Suffix . :
Autoconfiguration IPv4 Address. . : 169.254.183.238
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . :
Unknown adapter Local Area Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Wireless LAN adapter Local Area Connection* 9:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Wireless LAN adapter Local Area Connection* 10:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Ethernet adapter Ethernet 3:
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 172.27.241.136
Subnet Mask . . . . . . . . . . . : 255.255.255.128
Default Gateway . . . . . . . . . :
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::5993:95f2:e6a9:3ae%13
IPv4 Address. . . . . . . . . . . : 192.168.1.102
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
Ethernet adapter Bluetooth Network Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Ethernet adapter vEthernet (WSL):
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::a13b:1465:781c:2eae%60
IPv4 Address. . . . . . . . . . . : 172.21.128.1
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . :
我的 WSL2 Ubuntu16 Linux 说:
$ ifconfig
$
所有网络接口均已关闭:
$ ip link
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 6e:3d:bc:fa:46:33 brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether b2:71:a8:3b:74:c6 brd ff:ff:ff:ff:ff:ff
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
5: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:15:5d:0a:3f:de brd ff:ff:ff:ff:ff:ff
没有 WiFi 网络适配器,但如果 WSL2 通过链接到 vEthernet 的 eth0 连接,这可能是正常的。
$ ifconfig -a
bond0 Link encap:Ethernet HWaddr 6e:3d:bc:fa:46:33
BROADCAST MASTER MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
dummy0 Link encap:Ethernet HWaddr b2:71:a8:3b:74:c6
BROADCAST NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0 Link encap:Ethernet HWaddr 00:15:5d:0a:3f:de
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
LOOPBACK MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
sit0 Link encap:IPv6-in-IPv4
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/etc/resolv.conf
$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
/etc/wsl.conf
$ cat /etc/wsl.conf
[automount]
root = /
options = "metadata,umask=22,fmask=11"
[network]
generateResolvConf = false
generateHosts = false
主人的网络很好。
我不知道还能做什么。
我该如何修复?
请帮忙。
答案1
TL;DR 转到解决方案(就我而言)
经过几天的生产力损失后,我开始注意到桌面和许多其他文件夹上的图标中有两个箭头。原来是 NTFS 压缩。
修复起来很容易,但发现的过程却漫长而痛苦。
解决方案(就我而言)
递归解压缩所有文件和文件夹,如下所示:
- 打开 cmd shell
- 执行
compact /U /S /I
如果您想知道选项是什么,它们分别表示:解压缩、递归和忽略所有错误/警告。但您可以使用来查看命令的帮助compact /h
。
我仍然想看看如何才能完全避免这种情况再次发生。
答案2
使用 uncompress 的解决方案对我的情况有帮助。以下是有关如何应用它的更多详细信息:
- 终止 WSL 内部所有重要进程。
- 启动 Windows shell:
cmd.exe
cd %TEMP%
wsl --shutdown
- 终止 WSL2 实用程序虚拟机。compact /U /S
- 解压缩当前目录 (%TEMP%
) 中的文件并递归解压缩其子目录中的文件。
这两个命令可能就足够了,但我还没有测试它们:
wsl --shutdown
compact /U %TEMP%
如果他们也解决了这个问题,请告诉我们。
注意:关于目录的想法%TEMP%
来自于这个错误报告:https://github.com/microsoft/WSL/issues/5775该案件未经任何调查就被结案。
答案3
要完全禁用压缩,请参考此处的解决方案:https://answers.microsoft.com/en-us/windows/forum/all/really-annoying-auto-compression-in-windows-10/8b976fd3-e822-4dc5-a0be-e254239cc640
右键单击“开始”>选择 PowerShell(管理员)将以下命令复制/粘贴到窗口中,然后按 Enter。
fsutil 行为设置 disablecompression 1
关闭 PowerShell 并重新启动