Network-Interface

Devuan… 減少在引導期間配置 Internet 介面時的等待時間

  • March 9, 2019

離開 debian 後,我在筆記型電腦上使用了 devuan linux ,因為與 debian 相比,第一個具有更好的順序性和簡單性。

我對此非常滿意,但我遇到了下一個問題:

當作業系統啟動時,如果我的乙太網電纜沒有插入,或者即使我的連接出現問題,它也會等待大約 20 秒,同時等待:

配置網際網路介面

…然後它說:

ifup 已經配置好了。完畢

或類似的東西,即使它真的配置了介面(如果從一開始就沒有真正連接電纜,那真的很少見 - 我可能有電纜問題,因為它太長或者可能是因為埠有問題-) 即使沒有真正配置介面並且我將無法訪問網際網路。

我想要的是:1)一種保存配置的方法,不需要在每次啟動時等待這 20 秒ifup 重新配置,而是能夠使用

service networking restart

如果我的 Internet 在啟動過程中沒有真正配置。

PS:每次開機要等 20 秒真的很多,很多時候我只想離線工作而沒有插入電纜。

/etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto

也許udev等價物(eudevmdev根據Devuan的說法)在熱插拔事件方面的表現並非 100% 相同。如果您使用的交換機在實際讓流量雙向工作之前有很長的轉發延遲也是可能的(在這種情況下,下面的第二個解決方案將不起作用)。

無論如何,如果您只想取消配置界面,這應該相當容易。以下是從最簡單到更複雜的兩三個建議:

  1. 從配置中排除介面

1.1。只需更改預設網路設置/etc/default/networking

任何一個

CONFIGURE_INTERFACES=no

這有點極端,因為甚至lo不會被提出,甚至可能會阻止一些非網路應用程序正常工作(gdm …)。

1.2. 或者

EXCLUDE_INTERFACES=eth0

僅排除有問題的介面。

然後,您可以稍後使用ifup eth0它來啟動它。 2. 或者,您可以在配置中添加一個條件來檢查連結是否可用,如果不可用,則“失敗”介面。由於我不確定dhcp鉤子是在使用者提供的命令之前還是之後執行的up,所以我作弊並將其放入其中,pre-up這需要首先手動啟動界面。您可以檢查使用該up命令是否足夠好,而無需先啟動它。

將相關/etc/network/interfaces部分編輯為如下所示:

allow-hotplug eth0
iface eth0 inet dhcp
   pre-up ip link set eth0 up && sleep 1
   pre-up [ $(cat /sys/class/net/eth0/carrier) -eq 1 ]
iface eth0 inet6 auto
   pre-up ip link set eth0 up && sleep 1
   pre-up [ $(cat /sys/class/net/eth0/carrier) -eq 1 ]

(ipv6 設置可能不需要,這可能會節省 1 秒。如果不感興趣,您甚至可以刪除整個 inet6 部分)

測試的返回結果將ifup認為配置失敗並離開ifupdown卡的邏輯(’s point of view)狀態。

然後,您可以在插入電纜後發出ifup eth0或稍後發出。service networking restart

引用自:https://unix.stackexchange.com/questions/503285