当前位置: 首页>>技术教程>>正文


Ubuntu 16.04-系统启动等待说“Raise network interfaces”

, , ,

问题描述

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

/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

问题是,当eth0链接上没有DHCP服务器可用时,或者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上加载所有静态网络配置?

最佳思路

似乎有人对客户端未及时获取DHCP感到疑惑。

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

timeout 15

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

次佳思路

因此,在您的/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,而不是在启动时启动它。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7674.html,未经允许,请勿转载。