系统丢失静态 IP 地址

系统丢失静态 IP 地址

我的一台无头系统通过有线以太网分配了一个静态 IP 地址/etc/network/interfaces。它连接到一个路由器,该路由器也是 DHCP 服务器。几天后,静态地址被删除并被 DHCP 地址替换。为什么会这样?

  • 如果我执行sudo ifdown eth0 && sudo ifup eth0sudo service networking restart重新启动,系统将再次采用其静态地址,但几天后,IP 地址会变为动态地址。
  • 网络上没有其他系统具有(意外)相同的静态地址。
  • 系统上未运行 NetworkManager。
  • 我已经设置了系统,一旦地址发生变化就会给我发送电子邮件,但发生这种情况的时间似乎完全是随机的。DHCP 租用时间为 24 小时,但这似乎没有关联,而且无论如何,这对于静态地址来说应该无关紧要。
  • 我的 /etc/network/interfaces 是这样的:
    自动档
    iface lo inet 环回
    自动 eth0
    iface eth0 inet 静态
    地址 192.168.124.104
    网关 192.168.124.253
    网络掩码 255.255.255.0

这有点令人困惑。

什么原因会导致系统放弃其静态地址并请求 DHCP 地址?在哪个日志文件中查找什么?

答案1

最近我偶然发现了这个问题,经过一番调查后发现,/etc/dhcp/dhcp.conf 需要添加一个块(或取消注释),类似于:

别名 { 接口“eth0”;   
固定地址10.1.1.1;   
选项子网掩码 255.0.0.0; }

希望这可以帮助!

问候,Glendon Gross

答案2

嗯,很奇怪……我不确定这是否重要,但为了简洁起见,我会将参数netmask直接放在“地址”之后,而不是“网关”之后。您还应该从主机卸载/停用( isc-)包,并注意 ipv6 和包。在此之前:找出发生了什么的一种方法是设置防火墙规则,接受并记录往返于 DHCP 端口(服务器 67 UDP 和客户端 68 UDP)的所有流量,或者为设备状态创建日志记录,或者嗅探您的流量。 dhcp-clientresolveconfdhcp-client

不过,一种解决方法(或替代解决方案)是为某些主机配置 DHCP 预留或为其 DHCP 地址配置无限租期。对我来说,这种方法非常有效,而且优点是集中管理。如果您的 DHCP 服务器是调制解调器/路由器,您可能可以在 Web 界面中配置它(租期或预留),在某些路由器上,您甚至可以选中“固定地址”复选框。如果您配置了自己的服务器(Ubuntu?),则需要编辑文件,dhcpd.conf添加一些行,如下所示:

host Accountant {
  hardware ethernet 00:1F:6A:XX:XX:XX;
  fixed-address 192.168.124.104;
}

答案3

我知道这已经过时了,但我遇到了类似的问题,并且一直苦苦挣扎。我还向 Canonical 提交了一个案例来寻求帮助。

我已经解决了这个问题,并回到这篇文章,希望这对其他偶然发现这个问题的人有用。我的问题最终被证明是“wicd-daemon”。我不确定这个包是如何或为什么安装的,但它是导致我的静态地址丢失并导致其他网络问题的主要原因。

我的问题的一个症状是,如果我拔下网线并重新插入,dhclient 就会启动。与此处报告的问题类似,我会得到一个不同的 IP 地址。如果我手动设置我的 NIC,那就没问题了,但一段时间后,它会得到一个不同的 IP(似乎是由于 dhclient 在后台运行)。检查 dhclient 是否正在运行。至于 dhclient 为什么要运行,那是另一个问题。下面我描述了解决 dhclient 问题的方法,我最终追踪了几个路径(avahi、ntpd、ifup 等)。对我来说,它是 wicd-daemon。

这个问题最初是在测试中发现的,当时我正在切换网络,需要我移动网线。这给我带来了不应该发生的网络问题。我也花了一些时间才发现问题,因为我没想到我的静态 IP 会丢失或改变。

最后,清除 wicd-daemon 和 python-wicd 解决了这个问题。即使拔掉了网线,我的系统现在也会保留静态 IP 地址。我也没有看到 dhclient 启动,所以我认为这个问题也已经解决了。我也尝试了其他方法,查看了 avahi,它似乎在我遇到的问题中发挥了作用,我也查看了 ntpd(我知道这很奇怪,但它和其他问题同时出现在系统日志中;NTPD 可能与此无关,但它产生了可疑的日志)。我钻了好几个洞,直到我偶然发现在进行其他测试时正在运行的 wicd 进程。

长话短说,检查 dhclient 是否正在运行,以及您的系统上是否正在运行像 wicd 这样的网络管理器。这可能是导致您的静态地址出现问题的原因。

答案4

只是想补充一点,如果您有多个接口,请确保在文件中定义正确的接口/etc/network/interfaces

对我来说,问题在于auto lo在文件开头定义了 。但实际上,应该用 来代替auto eth0

一旦正确定义,我的静态 IP 将在重启时保留。

希望这对某人有帮助。

相关内容