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

問題是,當 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 上的所有靜態網路配置?

答案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為您選擇的值。按Ctrl+儲存文件o,然後按Ctrl+ x

最後,重新啟動守護程式:

sudo systemctl daemon-reload

相關內容