温馨提示×

ubuntu dhcp为何无法分配地址

小樊
56
2026-09-01 03:40:13
栏目: 智能运维

在 Ubuntu 上 DHCP 无法分配地址(无论是 Ubuntu 作为 DHCP 客户端获取不到 IP,还是 Ubuntu 作为 DHCP 服务器分配不出 IP),常见原因可以分两类来看。下面按“症状 → 原因 → 排查方法”说明。


一、Ubuntu 作为 DHCP 客户端(获取不到 IP)

1. 网络接口未启用或未连接

ip link
  • 接口状态是 DOWN
  • 网线没插 / 虚拟网卡未连接

解决:

sudo ip link set eth0 up

2. Netplan 配置错误(18.04+ 常见)

Ubuntu 18.04 以后默认使用 netplan。

检查:

cat /etc/netplan/*.yaml

正确示例(DHCP):

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true

应用配置:

sudo netplan apply

3. DHCP 客户端服务未运行

Ubuntu 通常使用:

  • systemd-networkd
  • 或 NetworkManager

查看状态:

systemctl status systemd-networkd
systemctl status NetworkManager

4. 防火墙或网络隔离

  • 交换机 VLAN 不通
  • 防火墙阻断 UDP 67/68

测试:

sudo tcpdump -i eth0 udp port 67 or udp port 68

如果没有 DHCP Discover/Offer,说明请求没出去或被拦截。


5. 手动指定过 IP,导致冲突

ip addr

若已有静态 IP,却仍想用 DHCP,需先释放:

sudo dhclient -r eth0
sudo dhclient eth0

二、Ubuntu 作为 DHCP 服务器(分配不出地址)

1. DHCP 服务未运行

常见服务:

  • isc-dhcp-server
  • dnsmasq
systemctl status isc-dhcp-server
systemctl status dnsmasq

2. 监听接口配置错误

/etc/default/isc-dhcp-server:

INTERFACESv4="eth0"

否则服务可能直接退出。


3. 地址池冲突或耗尽

cat /etc/dhcp/dhcpd.conf

常见问题:

  • 子网写错
  • range 与网关不在同一网段
  • 地址池太小

示例:

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.200;
  option routers 192.168.1.1;
}

4. 多 DHCP 服务器冲突

网络中已有路由器 DHCP,Ubuntu DHCP 被“抢答”。

解决:

  • 关闭路由器 DHCP
  • 或隔离网段

5. 权限或日志报错

查看日志:

journalctl -u isc-dhcp-server

或

cat /var/log/syslog | grep dhcp

三、快速排查清单(总结)

✅ 网线 / 虚拟网卡已连接
✅ 接口 UP
✅ netplan 或 NetworkManager 配置正确
✅ DHCP 服务运行
✅ 地址池与接口同网段
✅ 无防火墙/VLAN 阻断
✅ 网络中无 DHCP 冲突


如果你愿意,可以告诉我:

  • Ubuntu 是 客户端还是服务器
  • 版本(ubuntu 20.04 / 22.04)
  • 使用的 DHCP 软件(dhclient / netplan / dnsmasq / isc-dhcp)

我可以直接帮你看配置文件。

0 踩