我在用德瓦安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.只需更改默认网络设置
/etc/default/networking
:任何一个
CONFIGURE_INTERFACES=no
这有点极端,因为甚至
lo
不会被提出,甚至可能阻止某些非网络应用程序正常工作(gdm ...)。1.2.或者
EXCLUDE_INTERFACES=eth0
仅排除有问题的接口。
您稍后可以使用
ifup eth0
它来调出它。或者,您可以在配置中添加一个条件来检查链路是否可用,如果不可用,则使接口“失败”。由于我不确定钩子
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