Ubuntu系统dhclient启动失败,如何迅速恢复网络连接避免中断?
- 内容介绍
- 文章标签
- 相关推荐
当你正忙于在Ubuntu 20.04虚拟机上调试ROS节点或训练机器学习模型时突然发现网络连接图标消失、apt update 返回 “暂时不能解析域名”,这类突如其来的断网问题足以让人抓狂。下面的内容将帮你快速定位原因并恢复网络,避免业务中断。
一、快速诊断:先别慌。先检查网络状态
痛点:项目因网络中断停摆,开发进度被迫拖延。先确认到底是硬件、虚拟机还是设置导致。
1.1 查看网卡状态
使用 ifconfig 或 ip addr show 检查接口是否 up 并拥有 IP。
# ip addr show
从ens33来看,state UP & inet 192.168.1.10/24
# 或者没有 IP
再看ens33。state DOWN
1.2 检查 DHCP 请求是否通过
若接口已 up,但没有 IP,说明 DHCP 没能成功。从可以手动触发来看,
# sudo dhclient -v ens33
DHCPDISCOVER on ens33 to 255.255.255.255 port 67 interval 7
DHCPOFFER from 192.168.1.1 mask 255.255.255.0
DHCPACK from 192.168.1.1
Bound to address 192.168.1.
如果仍无 IP。请继续排查防火墙或 DHCP 服务。老实说,
二、常见原因与对应方法
2-1 防火墙拦截了 DHCP 包
痛点:防火墙误判导致 DHCP 报文被丢弃。IP 永远不分配,说起来,
# ufw status verbose
从Status来看,active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
53/udp ALLOW Anywhere
67/udp DENY Anywhere
# 开放 DHCP 通信端口
sudo ufw allow in from any to any port {67。68} proto udp
sudo ufw reload
2-2 Netplan 配置错误
痛点:Netplan 配置文件写错,程序无法生成正确的 /etc/network/interfaces,从而导致 dhclient 无法启动。
# /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd # 或 NetworkManager,根据环境决定
再看ernets,ens33:
dhcp4的观点是,true # 必须开启
# 验证语法正确性:
sudo netplan try # 如果提示错误。根据提示修改
# 应用配置:
sudo netplan apply
2-3 systemd-networkd 或 NetworkManager 未启动
痛点:服务未启动会直接导致 dhclient 无法运行。 说起来,
# 检查状态:
sudo systemctl status systemd-networkd # 或 NetworkManager
# 开启服务:
sudo systemctl enable --now systemd-networkd # 或 NetworkManager
# 重启网络服务:
sudo systemctl restart networking || sudo service networking restart
2-4 硬件或虚拟机配置异常
痛点:NAT 模式下宿主机停止 VMware NAT Service 时会连不上网;桥接模式下网卡驱动未加载也会出现一样现象。
- 至于NAT,检查 VMware 设置 → 虚拟机 → 网络适配器 → “使用 NAT”。确保宿主机防火墙未阻止 NAT 服务。
-
再看桥接。在宿主机上执行
dmesg | grep -i eno|eth|ens|enp | grep -i error,若有驱动报错则重新安装驱动。 -
强制关机后网卡失效:运行
sudо dhclient -r && sudo dhclient ens33,即可手动重启 DHCP 客户端获取地址。
三、实战演练:一步步恢复网络连接
-
确认虚拟机网卡状态:
# ip link show ens33 | grep state ens33的观点是,state UP # 如果 DOWN。则启用: sudo ip link set ens33 up -
检查并重启 network-manager / systemd-networkd:
# 对于 Netplan 管理的程序: sudo netplan apply # 对于 legacy networking: sudo systemctl restart networking 或者 sudo service networking restart -
验证 DNS 能解析域名:
# ping -c4 google.com PING google.com :56 data bytes 64 bytes from ... 若失败,则检查 /etc/resolv.conf 是否指向有效 DNS。echo "nameserver 8.8.8." | sudo tee /etc/resolv.conf> /dev/null -
最终测试 apt 更新是否正常:
# sudo apt update && sudo apt upgrade -y 若成功,则表示网络恢复完毕;若仍报 “暂时不能解析域名”,请 检查 DNS 配置或 hosts 文件。
四、预防措施:避免未来 出现一样问题
- 定期查看 Netplan/YAML 文件格式,避免语法错误。
- 保持 VM 网络设置为 NAT 或桥接,并定期重启宿主机相关服务。
- 在强制关机后立即执行 sudо dhclient -r && sudо dhclient ENSXX ,防止接口进入“缺失 IP”状态。
-
使用
journalctl -u NetworkManager定期审计日志,捕捉隐藏的错误信息。
当你正忙于在Ubuntu 20.04虚拟机上调试ROS节点或训练机器学习模型时突然发现网络连接图标消失、apt update 返回 “暂时不能解析域名”,这类突如其来的断网问题足以让人抓狂。下面的内容将帮你快速定位原因并恢复网络,避免业务中断。
一、快速诊断:先别慌。先检查网络状态
痛点:项目因网络中断停摆,开发进度被迫拖延。先确认到底是硬件、虚拟机还是设置导致。
1.1 查看网卡状态
使用 ifconfig 或 ip addr show 检查接口是否 up 并拥有 IP。
# ip addr show
从ens33来看,state UP & inet 192.168.1.10/24
# 或者没有 IP
再看ens33。state DOWN
1.2 检查 DHCP 请求是否通过
若接口已 up,但没有 IP,说明 DHCP 没能成功。从可以手动触发来看,
# sudo dhclient -v ens33
DHCPDISCOVER on ens33 to 255.255.255.255 port 67 interval 7
DHCPOFFER from 192.168.1.1 mask 255.255.255.0
DHCPACK from 192.168.1.1
Bound to address 192.168.1.
如果仍无 IP。请继续排查防火墙或 DHCP 服务。老实说,
二、常见原因与对应方法
2-1 防火墙拦截了 DHCP 包
痛点:防火墙误判导致 DHCP 报文被丢弃。IP 永远不分配,说起来,
# ufw status verbose
从Status来看,active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
53/udp ALLOW Anywhere
67/udp DENY Anywhere
# 开放 DHCP 通信端口
sudo ufw allow in from any to any port {67。68} proto udp
sudo ufw reload
2-2 Netplan 配置错误
痛点:Netplan 配置文件写错,程序无法生成正确的 /etc/network/interfaces,从而导致 dhclient 无法启动。
# /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd # 或 NetworkManager,根据环境决定
再看ernets,ens33:
dhcp4的观点是,true # 必须开启
# 验证语法正确性:
sudo netplan try # 如果提示错误。根据提示修改
# 应用配置:
sudo netplan apply
2-3 systemd-networkd 或 NetworkManager 未启动
痛点:服务未启动会直接导致 dhclient 无法运行。 说起来,
# 检查状态:
sudo systemctl status systemd-networkd # 或 NetworkManager
# 开启服务:
sudo systemctl enable --now systemd-networkd # 或 NetworkManager
# 重启网络服务:
sudo systemctl restart networking || sudo service networking restart
2-4 硬件或虚拟机配置异常
痛点:NAT 模式下宿主机停止 VMware NAT Service 时会连不上网;桥接模式下网卡驱动未加载也会出现一样现象。
- 至于NAT,检查 VMware 设置 → 虚拟机 → 网络适配器 → “使用 NAT”。确保宿主机防火墙未阻止 NAT 服务。
-
再看桥接。在宿主机上执行
dmesg | grep -i eno|eth|ens|enp | grep -i error,若有驱动报错则重新安装驱动。 -
强制关机后网卡失效:运行
sudо dhclient -r && sudo dhclient ens33,即可手动重启 DHCP 客户端获取地址。
三、实战演练:一步步恢复网络连接
-
确认虚拟机网卡状态:
# ip link show ens33 | grep state ens33的观点是,state UP # 如果 DOWN。则启用: sudo ip link set ens33 up -
检查并重启 network-manager / systemd-networkd:
# 对于 Netplan 管理的程序: sudo netplan apply # 对于 legacy networking: sudo systemctl restart networking 或者 sudo service networking restart -
验证 DNS 能解析域名:
# ping -c4 google.com PING google.com :56 data bytes 64 bytes from ... 若失败,则检查 /etc/resolv.conf 是否指向有效 DNS。echo "nameserver 8.8.8." | sudo tee /etc/resolv.conf> /dev/null -
最终测试 apt 更新是否正常:
# sudo apt update && sudo apt upgrade -y 若成功,则表示网络恢复完毕;若仍报 “暂时不能解析域名”,请 检查 DNS 配置或 hosts 文件。
四、预防措施:避免未来 出现一样问题
- 定期查看 Netplan/YAML 文件格式,避免语法错误。
- 保持 VM 网络设置为 NAT 或桥接,并定期重启宿主机相关服务。
- 在强制关机后立即执行 sudо dhclient -r && sudо dhclient ENSXX ,防止接口进入“缺失 IP”状态。
-
使用
journalctl -u NetworkManager定期审计日志,捕捉隐藏的错误信息。

