Ubuntu 16.04 - 系统启动等待显示“提升网络接口”

Ubuntu 16.04 - 系统启动等待显示“提升网络接口”

我有一个 Ubuntu 16.04 系统,它有两个接口 - 配置了 DHCP 的 eth0 和配置了静态 IP 地址的 eth1。

/etc/network/interfaces 文件具有以下配置

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The Secondary network interface
auto eth1
iface eth1 inet static
address 10.10.1.10
netmask 255.255.255.0
dns-nameservers 74.82.42.42 4.2.2.2

## Virtual Interfaces for virtual hosts
auto eth1:11
iface eth1:11 inet static
address 10.10.1.11
netmask 255.255.255.0

auto eth1:12
iface eth1:12 inet static
address 10.10.1.12
netmask 255.255.255.0

auto eth1:13
iface eth1:13 inet static
address 10.10.1.13
netmask 255.255.255.0

问题是,当 DHCP 服务器在 eth0 链路上不可用或 eth0 链路关闭时,系统会挂起 5 分钟,从而显著减慢启动过程。

violet@ubuntu-xenial:~$ systemd-analyze blame
      5min 241ms networking.service
          1.529s nmbd.service
          1.524s winbind.service

我尝试减少 /etc/systemd/system/network-online.target.wants/networking.service 文件中的时间,这使得系统启动更快而无需等待网络服务,但是,无法在 eth1 上加载虚拟接口。

有没有更干净的方法让系统在没有在 eth0 接口上进行完整网络配置的情况下启动,并仍然在 eth1 上加载所有静态网络配置?

答案1

似乎有人担心客户端无法及时获取 DHCP。

编辑此文件/etc/dhcp/dhclient.conf并设置timeout为合理的值,例如

timeout 15

默认值 300 秒太高了。建议的替换值 15 已经过测试,效果很好。

答案2

因此,在您的 中/etc/network/interfaces,更改此内容:

# The primary network interface
auto eth0
iface eth0 inet dhcp

更改为:

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

eth0当内核从接口检测到热插拔事件(即当您插入电缆时)时,这将启动接口,而不是在启动时启动它。

答案3

参考文献您可以更改为提升网络接口的超时值(如果正在运行systemd):

打开终端窗口,然后输入命令:

sudo nano /etc/systemd/system/network-online.target.wants/networking.service

然后将行更改为您选择的值。按+然后按+TimeoutStartSec=5min保存文件。CtrloCtrlx

最后,重新启动守护进程:

sudo systemctl daemon-reload

相关内容