Ubuntu Server 22.04.2 LTS无法清除旧DHCP配置,请求排查配置重置来源
Ubuntu Server 22.04.2 LTS无法清除旧DHCP配置,请求排查配置重置来源
我完全懂你现在的头疼——换了路由器后旧的IP、路由甚至DNS配置死活清不掉,重启就自动回来,太闹心了。咱们一步步来排查到底是哪个程序在偷偷重置你的配置:
1. 先查NetworkManager(你Netplan指定的渲染器)
因为你Netplan里设置了renderer: NetworkManager,它大概率是保存旧配置的“元凶”:
- 先列出所有NetworkManager保存的网络连接:
看看有没有对应nmcli connection showenp3s0的旧连接(比如名字可能是Wired connection 1,或者能看到旧IP相关的描述)。如果找到,直接删掉这个旧连接:
然后重启NetworkManager生效:sudo nmcli connection delete <旧连接的名称>sudo systemctl restart NetworkManager - 实时查看NetworkManager的日志,抓它的“现行”:
保持这个窗口开着,然后重启服务器或者手动刷新网络(journalctl -u NetworkManager -fsudo nmcli connection reload),看日志里有没有提到旧IP、旧路由的来源,比如是不是它自动加载了某个残留的配置文件。
2. 排查其他DHCP客户端或网络服务
有时候系统里可能同时跑着多个网络管理服务,互相干扰:
- 列出所有和网络、DHCP相关的运行中服务:
如果你看到sudo systemctl list-units --type=service | grep -E '(dhcp|network)'dhclient.service或者systemd-networkd.service在运行(尤其是systemd-networkd,因为Netplan默认可能用它,但你指定了NetworkManager),先停止并禁用它们:# 停止dhclient并禁用开机自启 sudo systemctl stop dhclient && sudo systemctl disable dhclient # 如果是systemd-networkd同理 sudo systemctl stop systemd-networkd && sudo systemctl disable systemd-networkd
3. 检查旧的静态配置文件
虽然Netplan是22.04的主流配置方式,但旧的/etc/network/interfaces体系可能还有残留:
- 打开
/etc/network/interfaces文件,看看里面有没有针对enp3s0的静态IP配置段落,比如:
如果有,直接删掉这些内容,保存后重启网络服务。auto enp3s0 iface enp3s0 inet static address 192.168.0.101/24 - 同时检查
/etc/network/interfaces.d/目录下的所有文件,有没有类似的旧配置。
4. 解决DNS反复回来的问题
旧DNS(8.8.8.8)反复出现,得先搞清楚/etc/resolv.conf的来源:
- 先看它是软链接还是真实文件:
ls -l /etc/resolv.conf- 如果链接指向
/run/NetworkManager/resolv.conf:那回到第一步,检查NetworkManager的连接配置里的DNS设置,确保旧的8.8.8.8没被保存。 - 如果链接指向
/run/systemd/resolve/stub-resolv.conf:用resolvectl status enp3s0查看当前DNS配置,然后手动设置新DNS并保存:sudo resolvectl dns enp3s0 192.168.88.1 1.1.1.1 sudo resolvectl domain enp3s0 ~.
- 如果链接指向
- 另外检查有没有
/etc/resolv.conf.head或/etc/resolv.conf.tail文件,这两个文件的内容会被自动追加到resolv.conf里,如果里面有8.8.8.8,直接删掉就行。
5. 排查自定义脚本或udev规则
还有可能是你之前加的自定义脚本在搞鬼:
- 检查
/etc/rc.local文件(如果存在),看看里面有没有ip addr add之类的命令,手动添加旧IP。 - 查看
/etc/udev/rules.d/目录下的规则文件,有没有针对网卡enp3s0的自动配置规则。
最后一个小概率情况:BIOS/UEFI的PXE设置
如果上面都排查完了还是不行,进服务器的BIOS/UEFI看看,有没有启用PXE自动获取IP的选项——有些服务器会在启动时通过PXE获取IP,即使系统里配置了DHCP,也可能残留旧的分配。
按这个顺序排查,大概率能找到那个偷偷重置配置的程序~
备注:内容来源于stack exchange,提问作者masterchief4240
相关产品推荐
相关产品推荐

