如果更改我的网络内的 DSL 路由器(例如,因为它损坏或发生故障转移到 UMTS 调制解调器),它也会随之更改 DHCP 服务器。
因此,所有连接的客户端都需要获取一个新的 IP 地址 - 通常这可以正常工作,但一台 Linux 机器总是会卡住,甚至会卡几个小时。因为它是一个没有显示器的无头服务器,所以获取新 IP 地址的最快方法是重新启动机器 - 这是我所希望避免的(并且我希望避免手动输入命令)。
- 客户端正在运行 Debian Squeeze
- 我可以访问 /etc/dhcp/dhclient.conf 中的 DHCP 客户端配置
- 只要机器处于连接状态,我就可以以 root 身份在机器上提交命令,但是更改路由器后就不行了。
- 但我无法访问路由器内的 DHCP 服务器配置。
dhclient.conf 当前如下所示:
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
send host-name "Achim-3c";
send dhcp-client-identifier "00:0c:c6:77:60:01";
retry 10;
如何配置 DHCP 客户端,以便在网络中的 DHCP 服务器发生变化时自动获取新的 IP 地址?
更新:
仅当故障转移从 DSL 调制解调器转移到 UMTS 调制解调器(华为 E970)时才会出现此问题。如果网络使用 UMTS 调制解调器运行良好,并且我手动切换回 DSL 调制解调器,Linux 服务器会顺利从新的 DHCP 服务器获取其新 IP,因此很难修复 :-(
因此,这看起来就像是华为 UMTS 调制解调器的 DHCP 服务器配置存在问题。
答案1
您是否依赖 DSL 调制解调器和/或备用 UMTS 调制解调器中的 DHCP 服务器向本地 LAN 分配地址?在这种情况下,您确实应该为 LAN 运行自己的本地 DHCP 服务器,并禁用 DSL 调制解调器上的 DHCP 服务器。
如果你想继续走这条路,你需要检查的 Linux 实用程序是插件ifplugd
当检测到接口已连接时,您想要运行的命令是:
dhclient -v {interface-name}
答案2
您可以尝试连接到无头机器,然后(以 root 身份)启动一个脚本,该脚本获取新的 DCHP 租约(dhclient
以及诸如此类的东西),然后注销并使其继续运行nohup(1)
(或仅在 下运行screen(1)
)。应该有效,但不保证。请先在另一台机器上尝试此特技……