本文最后的解决方案就是删除已经连接/配置的 Wi-Fi,然后重新连接一下。
为什么还写了这么多呢?主要是记录了一下发现的过程和一些症状,以及一些网上给出的方案可能会使得情况更加糟糕。
之前不知道干啥了,突然 APT 用不了:只有默认的几个库能用,其他的都是ign
,也就是连接不到了,换了几个镜像还是不行。这时候 Wi-Fi 是连接好的,我就猜测是不是 GPG不对,但是修着修着发现,网络用不了了:
(base) zhonguncle@zhonguncle-Precision-Tower-5810:~$ ping baidu.com
ping: baidu.com: Temporary failure in name resolution
首先检查 Wi-Fi 模块是不是好的:
$ lspci | grep Wi-Fi
07:00.0 Network controller: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz (rev 1a)
Wi-Fi 是好的,那么猜测是不是 DNS 问题,虽然在各个文件里检查发现是设置了 DNS 服务器 IP,并且也试着直接修改配置文件/etc/resolv.conf
(按理说这是个自动生成的),在 GUI 设置里看,也是有配置 DNS 服务器的。
但是我在使用resolvectl status
查看的时候发现,这货没 DNS:
我猜测是不是开了防火墙的原因,使用sudo ufw status
检查发现,大部分互联网使用的 IP 并不在防火墙允许范围内(我当时以为就要解决了),但是按照网上一些教程手动添加了之后,还是没好,还是ping
不通。
你可能会说这太麻烦了,要不重装吧。
我只能说,重装配置系统所需的时间已经远超出我能接受的范围了,并且硬盘里有很多文件,就算进行备份我都无法接受。
那么继续,networkctl
检查发现接口都是没有操作:
使用sudo systemctl start systemd-networkd
重新开一下:
但此时还是无法ping
通。
然后又尝试了很多方法,什么重新关闭启动服务,修改一系列配置文件。因为网上很多方案有点过时了,所以这些方法都不行。
那么老样子,进入 GRUB 的恢复模式看看。
检查网络的时候发现提示下面的错误(这玩意后面几次闪太快,我用录像截的图):
这明显是一些文件出现了问题。由于之前尝试了一堆网上的方案,一些方案非常不负责,直接删除某些文件,并且没有进行解释(我也有点病急乱投医了),我就想躺了。
睡醒之后我突然想,既然重启 Wi-Fi、重启服务或者重启机器等方法都没有修复这一问题,那么说明自动设置一些文件的过程出现了问题(因为很多配置文件其实是系统自动生成的,例如前面提到的 /etc/resolv.conf
)。
我突然注意到,防火墙虽然没有自动设置互联网等 IP 通过,但是之前设置的也都还在,我依旧认为是防火墙问题,因为按照原理来说,它应该通过路由器的 DHCP 设置 IP 和 DNS 等网络配置,但是有东西阻止了它。而我之前没有修改过,并设置好了网关,说明问题就在防火墙上。
可惜的是,我无法知道我系统原先正确的防火墙配置了。这时候我想,能不能让他自动生成呢?
再次关闭、打开 Wi-Fi,不行。重启网络服务,不行…
看着 nmtui
的界面,我沉默了:
我突然想到:它应该按照 SSID 存储了 Wi-Fi 的信息,那么我删掉它重新连接,或许可以让它删除原先的配置文件(我也不知道是没了还是坏了),并且自动生成新的,说干就干,这个也不会造成什么不可挽回的损失。
这里需要注意如果你是通过 Wi-Fi 远程连接 Ubuntu,那么可能需要你接上网线或者显示器。
重新添加之后,使用networkctl
自动就是开的:
使用resolvectl status
查看发现DNS 也正确了:
是不是好了?ping
一下:
完美。其实这里看了一下ufw
的规则,发现是要比之前设置的要多,但是个人不推荐尝试这个,毕竟重连 Wi-Fi 可快多了,也不容易开不该开的端口。
希望能帮到有需要的人~