Ubuntu DHCP 客户端网络连接排查与修复
一 快速自检与恢复
ip addr show <接口名>(如 eth0、ens33、enp3s0)。若未启用:sudo ip link set <接口名> up。sudo dhclient -r <接口名> 后 sudo dhclient <接口名>;再用 ip addr show <接口名> 验证。sudo systemctl restart networking。dhcp4: true 并应用。示例:sudo netplan apply。sudo systemctl status NetworkManager;nmcli device status 查看是否 unmanaged,必要时 sudo nmcli device set <接口名> managed yes 并重启 NetworkManager。sudo ufw disable 或 sudo systemctl stop firewalld。二 常见根因与对应修复
ip addr 确认实际接口名,必要时 sudo ip link set <接口名> up。lo。sudo systemctl status isc-dhcp-server;核对 /etc/dhcp/dhcpd.conf 的 subnet、range、routers、domain-name-servers;在 /etc/default/isc-dhcp-server 中正确设置 INTERFACES="eth0";修复后 sudo systemctl restart isc-dhcp-server。sudo ufw allow 67/udp 或 sudo firewall-cmd --add-service=dhcp --permanent && sudo firewall-cmd --reload;SELinux 可临时 sudo setenforce 0 验证。dhclient -r 释放,再 dhclient 申请;必要时更换网线/端口或重启路由器。nameserver 8.8.8.8 验证。三 定位命令清单(按从易到难)
ip addr show <接口名>;必要时 sudo ip link set <接口名> up。sudo tcpdump -i <接口名> -nn -vv port 67 or port 68(能看到 DHCPDISCOVER/OFFER/REQUEST/ACK 有助于判断是客户端、服务器还是网络问题)。journalctl -u dhclient 或 journalctl -u NetworkManagertail -f /var/log/syslog | grep -i dhcpps aux | grep dhclientsudo netstat -tuln | grep -E '67|68'ip route(确认默认路由),ping <网关IP>,ping 8.8.8.8,nslookup example.com(验证 DNS)。四 不同网络管理方式的最小配置示例
ifupdown(/etc/network/interfaces)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
应用:sudo systemctl restart networking。
Netplan(/etc/netplan/*.yaml,示例 01-netcfg.yaml)
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
应用:sudo netplan apply。
NetworkManager(nmcli)
nmcli con add type ethernet con-name eth0-dhcp ifname eth0 autoconnect yes ipv4.method auto
nmcli con up eth0-dhcp
自建 DHCP 服务器关键检查(isc-dhcp-server)
sudo systemctl status isc-dhcp-serversubnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 1.1.1.1;
}
INTERFACES="eth0"sudo systemctl restart isc-dhcp-server