如果 Debian 中没有电缆连接到以太网,如何跳过 DHCP

如果 Debian 中没有电缆连接到以太网,如何跳过 DHCP

我的 Bananian Linux 在登录时浪费时间尝试为未连接的 eth0 接口获取 DHCP 租约。好吧,延长线已连接到它,但另一端没有任何东西。

我有

auto eth0
iface eth0 inet dhcp 

在我的设置中/etc/network/interfaces,因为我确实希望它在连接时拾取以太网,但如果电缆未连接到以太网,我肯定不想减慢系统的启动速度。我假设系统会自动知道这一点,并且不会尝试为该接口获取 DHCP 租约。

这是我在加载时看到的内容(请参阅最后三行):

在此输入图像描述

在得知租约不会到来后,它会继续启动。

如果没有连接电缆,有没有办法告诉它不要使用 DHCP?

答案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

来源:https://wiki.debian.org/DHCP_Client

答案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_LINKyes.注意 - 在我的 debian 上,它是ABORT_ON_LINK=${ABORT_ON_LINK:-no}并且默认为“yes”没有效果,因为它在 check-network-cable 脚本中被设置no- 所以我注释掉了该设置。我更喜欢把东西放在一个(而且只有一个)地方。

我在没有插入以太网的情况下启动速度很快。

相关内容