Ubuntu 解决开机网络等待问题

在 Ubuntu 重启后,可能会在开机画面中看到「A start job is running for wait for Network to be configured」这样的消息,一直到两分钟后才可继续进行之后的开机流程。这个问题的原因是出在哪呢?要如何解决?

原因分析

在登录Ubuntu操作系统后,可以使用以下指令来查看这个Systemd Unit的状态

1
systemd-networkd-wait-online.service
image-20231227164123904

我们可以根据状态消息来确认,问题点确实是发生在开机配置网络的时候,因为配置一直无法完成,所以超时了。

那个究竟是哪个网络接口无法正常被配置呢?可以使用以下指令来查看:

1
networkctl
image-20231227164222065

从上面这张图的结果可以看出,笔者电脑的「enp2s0」这个网络接口似乎有问题,配置了好几分钟都还没结束。

解决方式

方式一:配置静态 IP

通常这个问题是 DHCP 无法正常取得网络信息的缘故所致,因此我们要手动指定 IP

该方式从根源解决问题

Ubuntu所使用的网络管理工具为「netplan」,设置文件都放置于「/etc/netplan」这个目录下。因此我们可以利用「grep」指令来查找「enp0s8」这个网络接口的设置是在哪个文件内进行设置的。指令如下:

1
cd /etc/netplan; grep -r enp2s0
image-20231227164851809

从结果里,可以看到,配置位于 00-installer-config-wifi.yaml 文件中

使用 sudo vim 00-installer-config.yaml 对 enp2s0 网口配置静态 IP。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
network:
ethernets:
enp2s0:
dhcp4: true
enp3s0:
dhcp4: false
addresses:
- 192.168.128.237/24 # 设置静态 IP 地址和掩码
routes:
- to: default
via: 192.168.128.249 # 设置网关地址
nameservers:
addresses:
- 192.168.23.11 # 设置主、备 DNS
- 119.29.29.29
version: 2

保存设置并生效:

1
sudo netplan generate && sudo netplan apply

方式二:配置网络等待超时

配置方法:

1
2
cd /etc/systemd/system/network-online.target.wants/
sudo vi systemd-networkd-wait-online.service

[Service] 下添加 TimeoutStartSec=2sec

1
2
3
4
5
[Service]
Type=oneshot
ExecStart=/lib/systemd/systemd-networkd-wait-online
RemainAfterExit=yes
TimeoutStartSec=2sec

参考

本文参考以下文章,在此致以诚挚谢意!

解决Ubuntu开机过程中,配置网络的步骤需要等待两分钟的问题 | MagicLen

Ubuntu18.04 开机卡“A start job is running for wait for network to be Configured”的解决方法_a start job is running for network-CSDN博客