我有一个 Debian 系统(具体来说是 BeagleBone),它坚持在 eth0 上分配一个 169.254.*.* 地址。我已编辑 /etc/network/interfaces 以分配静态地址,但自分配的地址也不断出现。
我不知道是什么原因导致分配该地址。/etc/network/interfaces 中没有任何内容看起来可以执行此操作。/etc/network/interfaces.d 是空的。
所以我有三个相关的问题:
有人知道是什么机制导致分配 169.254 地址吗?(是的,我知道它的用途;它是 DHCP 失败时显示的自分配 IP 地址。)
有人知道如何禁用它吗?
如果我无法禁用它,事后是否有简单的方法可以删除它?我想象着类似的东西
ip addr del 169.254.*.*/16 dev eth0
。我看到有人建议该ip addr
命令可能支持某种通配符表示法,但我还没有成功发现语法。如果必须的话,我会运行ip addr show
以找到确切的 169.254 地址并明确删除它,尽管这会有点麻烦。
答案1
根据@Gantendo 的建议,我能够确定我的第一个问题的答案是:connman
。
我不想完全禁用它(至少现在不想),但我无法立即找到任何用于禁用 DHCP 或自分配 IP 地址分配的细粒度选项,所以现在我采取了相当强制的步骤,将 eth0 添加到 /etc/connman/main.conf 中的“黑名单”接口列表中,不受 connman 管理:
NetworkInterfaceBlacklist=eth0,SoftAp0
(是的,我知道,这样做之后 connman 可能就没有什么可管理的了,所以也许我应该禁用整个功能。)