kol*_*ygr 5 internet network-interface devuan
由于第一个比 debian 更好的序列性和简单性,我在离开 debian 后为我的笔记本电脑使用了devuan linux。
我真的很满意,但我有下一个问题:
当操作系统启动时,如果我的以太网电缆没有插入或者即使我的连接有问题,它会等待大约 20 秒,同时:
配置互联网接口
......然后它说:
ifup 已经配置好了。完毕
或类似的东西,即使它真的配置了接口(如果从一开始就没有真正连接电缆,那真的很少见 - 我可能有电缆问题,因为它太长,或者可能是因为端口有问题-) 即使接口没有真正配置,我也无法访问互联网。
我想要的是:1)一种保存配置的方法,不需要等待这 20 秒ifup 在每次启动时重新配置,而是能够使用
service networking restart
Run Code Online (Sandbox Code Playgroud)
如果我的互联网在启动过程中没有真正配置。
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
Run Code Online (Sandbox Code Playgroud)
也许udev等效的(eudev或mdev根据Devuan)对于热插拔事件的表现并不是 100% 相同。如果您使用交换机,则交换机在实际让流量双向工作之前也可能有很长的转发延迟(在这种情况下,下面的第二个解决方案将不起作用)。
无论如何,如果您只想取消配置界面,这应该相当容易。以下是从最简单到更复杂的两到三个建议:
从配置中排除该接口
1.1. 只需更改默认网络设置/etc/default/networking:
任何一个
CONFIGURE_INTERFACES=no
Run Code Online (Sandbox Code Playgroud)
这有点极端,因为甚至lo不会被提出,甚至可能阻止某些非网络应用程序正常工作(gdm ...)。
1.2. 或者
EXCLUDE_INTERFACES=eth0
Run Code Online (Sandbox Code Playgroud)
仅排除有问题的接口。
您稍后可以使用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 ]
Run Code Online (Sandbox Code Playgroud)
(ipv6 设置可能不需要,这可能会节省 1 秒。如果不感兴趣,您甚至可以删除整个 inet6 部分)
测试的返回结果将认为ifup配置失败并保留ifupdown卡的逻辑(观点)状态为down。
然后您可以在插入电缆后发出ifup eth0或稍后发出。service networking restart