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


12

我的Bananian Linux浪费了登录时间,试图为未连接的eth0接口获取DHCP租约。好了,扩展电缆已连接到它,但另一端没有任何东西。

我有

auto eth0
iface eth0 inet dhcp 

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

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

在此处输入图片说明

如果了解租约即将到来,则继续进行引导。

如果没有连接的电缆,有没有办法我可以不告诉DHCP?

Answers:


16

如果指定

allow-hotplug eth0

代替

auto eth0

在中/etc/network/interfaces,则仅udev当某事触发连接时才会启动连接,而不是每次引导时才启动。

这可能足以处理您的案件,但不一定。interfaces手册页提到,

(标记为“ allow-hotplug”的接口在udev检测到它们时会弹出。这可以在启动时(如果接口已经存在),也可以在以后的时间(例如,插入USB网卡时)。请注意,这样做确实会与检测是否插入网络电缆没有任何关系。)

您可能需要使用/etc/network/if-up.d/00check-network-cableifupdown-extra跳过接口,如果没有连接电缆。


如果在引导前已经连接了电缆怎么办?udev在这种情况下,事件会在启动时触发连接吗?换句话说,是否udev检查哪些设备已经连接到机器的端口?
Joseph R.

0

解决问题的方法总是不止一种。

如果您始终将本机与家一样放在一个地方,那么最简单的方法就是摆脱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


正如问题中提到的,如果连接了以太网电缆,我确实要使用DHCP。因此,删除DHCP客户端将无济于事。
Maxim V. Pavlov 2015年

0

看看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接口标志引入了对链接检测的支持。
  • Syslog支持
  • 小程序-二进制文件仅为25 KB(libdaemon加上16 KB)。
  • 多种以太网接口支持
  • 可以配置为忽略短的“拔出”时间段(-d选项)或短的“拔出”时间段(-u选项)
  • 支持无线网络。只要检测到与AP的关联,便会配置网络。如果需要在AP关联成功之前配置WEP密钥的工具,请查看waproamd。
  • 不支持电缆检测的网络设备的兼容模式(-F选项)

软件包Debian软件包搜索页面:ifplugd
官方ifplugd网站

一个apt-get update && apt-get-install ifplud应该做的把戏。另外,systemd的创建者维护此程序包。


2
我将其定义为“ ...用于维护此程序包”,因为上一版本是10年前;-)。如今Lennart可能会建议systemd-networkd...使用ifplugd安装后,您还需要配置设备(allow-ifplugd在中指定/etc/network/interfaces)。
史蒂芬·基特

@StephenKitt您是否使用allow-ifplugd或查看过代码?在搜索时,我仅发现bugs.debian.org/cgi-bin/bugreport.cgi?bug=468896,它说该allow-ifplugd功能未被接受。
sourcejedi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.