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

Linux Mint 20.1/Ubuntu 20.04下安装/卸载Docker后网络连接故障排查求助

解决Linux Mint 20.1卸载Docker后网络故障的调试方案

从你提供的systemd-resolve --status和ifconfig输出来看,你的网卡enp4s0虽然已经处于UP状态,但没有获取到IP地址,也没有分配DNS和路由配置,这是导致网络连接失败的核心原因。下面是几个针对性的调试和修复方法,你可以一步步尝试:

1. 重置NetworkManager的缓存配置

Docker安装时可能悄悄修改了NetworkManager的相关设置,即使卸载也可能残留异常配置,先重置它:

  • 停止NetworkManager服务:
    sudo systemctl stop NetworkManager
    
  • 删除NetworkManager的缓存文件:
    sudo rm -rf /var/lib/NetworkManager/*
    
  • 重新启动NetworkManager:
    sudo systemctl start NetworkManager
    

做完这几步后,回到系统的网络设置界面,尝试重新连接你的网络,看看是否能正常获取IP。

2. 手动触发DHCP获取IP

你的网卡没拿到IP,大概率是DHCP客户端工作异常,手动调用dhclient试试:

  • 执行命令手动获取IP:
    sudo dhclient enp4s0
    
  • 执行完后用ip addr show enp4s0查看是否出现inet开头的IP地址。
  • 如果还是不行,检查DHCP客户端服务状态:
    systemctl status isc-dhcp-client
    

如果服务没运行,启动并设置开机自启:

sudo systemctl start isc-dhcp-client
sudo systemctl enable isc-dhcp-client

3. 修复systemd-resolved的DNS配置

从你的resolved状态输出看,全局和网卡的DNS配置都异常,重置一下:

  • 停止systemd-resolved服务:
    sudo systemctl stop systemd-resolved
    
  • 重建resolv.conf的软链接:
    sudo rm /etc/resolv.conf
    sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
    
  • 重启服务:
    sudo systemctl start systemd-resolved
    

之后再运行systemd-resolve --status,检查Link 2 (enp4s0)部分是否有Current Scopes: DNS的字样,以及是否显示了DNS服务器地址。

4. 清理Docker残留的iptables和路由规则

即使卸载了Docker,它创建的iptables链、路由规则可能还留在系统里,影响网络:

  • 查看当前iptables规则,如果你看到大量以DOCKER开头的链,就清空iptables:
    sudo iptables -F
    sudo iptables -X
    sudo iptables -t nat -F
    sudo iptables -t nat -X
    sudo iptables -t mangle -F
    sudo iptables -t mangle -X
    sudo iptables -P INPUT ACCEPT
    sudo iptables -P FORWARD ACCEPT
    sudo iptables -P OUTPUT ACCEPT
    
  • 保存清理后的规则:
    sudo netfilter-persistent save
    
  • 查看路由表,检查是否有异常的Docker相关路由(比如172.17.x.x、192.168.x.x这类非你的局域网段):
    ip route show
    

如果有,用下面的命令删除(替换成你看到的异常路由前缀):

sudo ip route del 172.17.0.0/16

5. 重置网卡硬件状态

如果上面的配置层面都没问题,试试重置网卡:

  • 先禁用再启用网卡:
    sudo ip link set enp4s0 down
    sudo ip link set enp4s0 up
    
  • 查看网卡驱动是否正常加载:
    lspci -k | grep -A 3 Ethernet
    

如果输出里显示Kernel driver in use:后面有驱动名称,说明驱动正常;如果没有,尝试重新加载驱动(替换成你的驱动名,比如r8169):

sudo modprobe -r r8169
sudo modprobe r8169

6. 临时设置静态IP测试

如果DHCP一直无法获取IP,可以手动设置静态IP来测试网络是否能正常工作:

  • 假设你的局域网网关是192.168.1.1,子网掩码是255.255.255.0,你可以给自己设置一个未被占用的IP,比如192.168.1.100:
    sudo ip addr add 192.168.1.100/24 dev enp4s0
    sudo ip route add default via 192.168.1.1 dev enp4s0
    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
    
  • 之后测试连通性:
    ping 192.168.1.1  # ping网关
    ping 8.8.8.8       # ping外网DNS
    

如果这两个都能ping通,说明是DHCP或者NetworkManager的配置问题;如果还是不行,可能需要检查网卡硬件或者系统内核的问题。

你可以按照上面的顺序一步步尝试,每完成一步就测试网络连接,应该能定位并解决问题。

内容的提问来源于stack exchange,提问作者user3340499

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 15:57:44