答案1
如果您指定
allow-hotplug eth0
代替
auto eth0
在 中/etc/network/interfaces
,那么连接只会在udev
某些事件触发时启动,而不是在每次启动时启动。
这可能足以处理您的情况,但不一定;联机interfaces
帮助页提到
(标记为“allow-hotplug”的接口在 udev 检测到它们时启动。如果该接口已存在,则可以在引导期间启动,也可以在稍后的时间启动,例如插入 USB 网卡时。请注意,这不会与检测插入的网络电缆没有任何关系。)
您可能需要/etc/network/if-up.d/00check-network-cable
使用包裹ifupdown-extra
如果没有连接电缆,则跳过该接口。
答案2
问题的解决方案总是不止一种。
如果你总是在一个地方使用这台机器,比如家里,那么最简单的方法就是去掉 dhcp-client 包,并设置静态 IP 地址、掩码、网关。假设你不需要它,你会做类似的事情
apt-get remove isc-dhcp-client
这将首先告诉您是否有任何依赖性。卸载该软件包后,您将不再需要在启动过程中等待。
这是您在中设置的示例/etc/network/interfaces
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.254
答案3
看一下ifplugd
:
ifplugd 是一个 Linux 守护进程,它会在插入电缆时自动配置以太网设备,并在拔出电缆时自动取消配置。这对于带有板载网络适配器的笔记本电脑非常有用,因为它只会在真正连接电缆时配置接口。
ifplugd ifplugd 与您的发行版的本机网络配置实用程序交互。
一些特点:
- 使用您的发行版的本机 ifup/ifdown 程序。
- 当电缆拔出、插入、接口配置成功或失败时,可能会发出蜂鸣声。
- 支持 Linux SIOCETHTOOL(较新的,又名 ethtool API)、SIOCGMIIREG(较旧的,又名 mii-diag/mii-tool API)和 SIOCDEVPRIVATE(最旧的,又名 mii-tool API)ioctl() 用于获取链接状态。版本 0.24 引入了对使用 IFF_RUNNING 接口标志的链路检测的支持。
- 系统日志支持
- 小程序 - 二进制文件只有 25 KB(加上 libdaemon 的 16 KB)。
- 多个以太网接口支持
- 可以配置为忽略短的“拔出”时间段(-d 选项)或短的“插入”时间段(-u 选项)
- 支持无线网络。每当检测到与 AP 的关联时,就会配置网络。如果您需要在 AP 关联成功之前配置 WEP 密钥的工具,请查看 waproamd。
- 不支持电缆检测的网络设备的兼容模式(-F选项)
软件包 Debian 软件包搜索页面:如果插件。
ifplugd 官方网站
Anapt-get update && apt-get-install ifplud
应该可以解决问题。顺便说一句,systemd 的创建者维护了这个包。
答案4
我想完成上面建议的答案,因为最初没有什么对我有用,直到我更深入地挖掘。
安装 ifupdown-extra 软件包。
$ sudo apt-get install ifupdown-extra
在 /etc/network/if-pre-up 中为 00check-network-cable 创建符号链接
$ cd /etc/network/if-pre-up
$ sudo ln -s ../if-up.d/00check-network-cable .
编辑文件 /etc/default/network-test,更改ABORT_ON_LINK
为yes
.注意 - 在我的 debian 上,它是ABORT_ON_LINK=${ABORT_ON_LINK:-no}
并且默认为“yes”没有效果,因为它在 check-network-cable 脚本中被设置no
- 所以我注释掉了该设置。我更喜欢把东西放在一个(而且只有一个)地方。
我在没有插入以太网的情况下启动速度很快。