Devuan...减少启动期间配置互联网接口时的等待时间

Devuan...减少启动期间配置互联网接口时的等待时间

我在用德瓦安Linux对于我的笔记本电脑,在离开 debian 后,由于与 debian 相比,第一个具有更好的安全性和简单性。

我对此非常满意,但我有下一个问题:

当操作系统启动时,如果我的以太网电缆没有插入,或者即使我的连接有问题,它也会等待大约 20 秒,同时等待:

配置互联网接口

...然后它说:

ifup 已经配置。完毕

或类似的东西,即使它确实配置了接口(如果电缆从一开始就没有真正连接,那么这种情况非常罕见 - 我可能有电缆问题,因为它太长或者可能是因为端口有问题-)即使接口没有真正配置,我也将无法访问互联网。

我想要的是: 1)一种保存配置的方法,不需要等待这 20 秒ifup 在每次启动时重新配置,但能够使用

service networking restart

如果我的互联网在启动过程中没有真正配置。

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

答案1

也许udev相当于(eudev或者mdev根据德瓦安) 对于热插拔事件的行为并非 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卡的逻辑(观点)状态为down。

然后您可以在插入电缆后发出ifup eth0或稍后发出。service networking restart

相关内容