You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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 show
    
    看看有没有对应enp3s0的旧连接(比如名字可能是Wired connection 1,或者能看到旧IP相关的描述)。如果找到,直接删掉这个旧连接:
    sudo nmcli connection delete <旧连接的名称>
    
    然后重启NetworkManager生效:
    sudo systemctl restart NetworkManager
    
  • 实时查看NetworkManager的日志,抓它的“现行”:
    journalctl -u NetworkManager -f
    
    保持这个窗口开着,然后重启服务器或者手动刷新网络(sudo 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 10:59:29