我有一台具有以下 /etc/networking/interfaces 的服务器:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address <My IP>
netmask 255.255.255.248
gateway <Gateway Assigned by host>
dns-nameservers 8.8.8.8 8.8.4.4
在我看来,这一切都没问题。但是,偶尔,服务器会停止响应。当我登录时,eth0 已启动,但只针对我不认识的 IPv6 地址。运行ifdown -a; ifup -a
会将其恢复到正确的 IP。
我如何确保这会自动发生?
编辑:
在它发生故障时,/var/log/syslog 中有几个可能相关的条目:
May 29 15:28:13 main-www dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 1
May 29 15:28:14 main-www dhclient: No DHCPOFFERS received.
May 29 15:28:14 main-www dhclient: No working leases in persistent database - sleeping.
答案1
解决方案是运行sudo killall dhclient
。
事实证明,该服务器曾经使用 DHCP 运行。
该/etc/networking/interfaces
文件是在接口仍处于运行状态时编辑的,因此ifdown -a
没有终止 dhclient。当 DHCP 租约到期时,dhclient 将运行,尝试获取配置,失败,并将 IP 重置为默认配置,使服务器脱机。