Jer*_*ner 7 dhcp linux interface
这可能是一个不寻常的请求:我试图让 Debian Linux 机器在启动时始终给自己分配一个自分配的 IP 地址(即 169.254.xy)。特别是,即使 LAN 上存在 DHCP 服务器,我也希望它这样做。也就是说,它应该不是从DHCP服务器请求IP地址。
从我在“man interfaces”文本中看到的,有一个“manual”选项和一个“dhcp”选项。手动分配是行不通的,因为我需要多个盒子在同一个 LAN 上工作而不需要任何手动配置......而“dhcp”可以做我想要的,但前提是 LAN 上没有 DHCP 服务器。(一个要求是这些盒子的功能不应受到 DHCP 服务器存在与否的影响)。
有什么技巧可以用来获得这种行为吗?
编辑:通过“无手动配置”,我的意思是我应该能够将这个盒子(无头)带到任何地方的任何局域网,插入以太网电缆,让它做它的事情。每次移动到不同的 LAN 时,我都不必通过 ssh 连接到该框并编辑文件以使其正常工作。
如果您安装该avahi-autoipd软件包,并--force-bind使用自定义 init 或 if-up.d 脚本中的选项运行它,您将始终获得链接本地地址。
然后您可以iface eth0 inet manual在您的 interfaces(5) 文件中使用,尽管您需要编辑/etc/network/if-up.d/avahi-autoipd以添加manual到方法行中。
Avahi wiki 上有关于avahi-autoipd 的更多信息。
就个人而言,我会编辑/etc/network/if-up.d/avahi-autoipd为:
--- avahi-autoipd 2010-08-04 04:26:49.000000000 +0800
+++ avahi-autoipd.1 2010-11-11 09:57:54.000000000 +0800
@@ -13,10 +13,13 @@
esac
case "$METHOD" in
- static|dhcp|NetworkManager) ;;
+ static|dhcp|NetworkManager|linklocal) ;;
*) exit 0
esac
+if [ "$METHOD" == "linklocal" ]; then
+ /usr/sbin/avahi-autoipd --force-bind --daemonize --wait $IFACE 2> /dev/null
+fi
if [ -x /bin/ip ]; then
# route already present?
Run Code Online (Sandbox Code Playgroud)
然后,您可以将接口列为iface eth0 inet linklocal. 对if-down.d脚本进行的编辑留给读者作为练习。