温馨提示×

ubuntu dhcp为何无法启动

小樊
47
2026-09-03 23:58:21
栏目: 智能运维

在 Ubuntu 上 DHCP 无法启动(通常指 isc-dhcp-server 或系统 DHCP 客户端 dhclient / NetworkManager 相关服务起不来)原因很多,下面按常见原因 → 排查方法 → 解决办法给你一个系统清单。


一、先确认你说的是哪一种 DHCP

  1. DHCP 服务器(提供 IP)

    • 服务:isc-dhcp-server
    • 命令:
      sudo systemctl status isc-dhcp-server
      
  2. DHCP 客户端(获取 IP)

    • 服务:systemd-networkd / NetworkManager / dhclient
    • 现象:网卡无法获取 IP

二、DHCP 服务器无法启动(最常见)

1️⃣ 配置文件错误(90% 的原因)

查看错误:

sudo journalctl -u isc-dhcp-server -xe

常见问题:

  • /etc/dhcp/dhcpd.conf 语法错误
  • 没有 subnet 声明
  • 配置中引用的网卡不存在

✅ 最小可用示例:

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;
  option domain-name-servers 8.8.8.8;
}

2️⃣ 监听网卡未指定或写错

编辑:

sudo nano /etc/default/isc-dhcp-server

确认:

INTERFACESv4="eth0"

⚠️ 网卡名必须真实存在:

ip a

3️⃣ 网卡没有 IP 地址(DHCP 起不来)

DHCP 服务器要求:

监听网卡必须已有静态 IP,且属于 subnet 网段

设置静态 IP:

sudo nano /etc/netplan/01-netcfg.yaml

示例:

network:
  version: 2
  ethernets:
    eth0:
      addresses: [192.168.1.1/24]
      dhcp4: no

应用:

sudo netplan apply

4️⃣ 端口被占用(dnsmasq / NetworkManager)

sudo ss -lunp | grep :67

如果存在冲突:

  • 关闭 dnsmasq
  • 或禁用 NetworkManager 的 DHCP

三、DHCP 客户端无法获取 IP

1️⃣ NetworkManager 被禁用

systemctl status NetworkManager

若未运行:

sudo systemctl enable --now NetworkManager

2️⃣ 网卡被设为手动(no dhcp)

检查 Netplan:

dhcp4: true

3️⃣ 防火墙阻止 DHCP

sudo ufw status

DHCP 需要:

  • UDP 67(服务器)
  • UDP 68(客户端)

四、快速排错命令合集

# 看服务状态
systemctl status isc-dhcp-server

# 看日志
journalctl -u isc-dhcp-server -xe

# 测试配置文件
dhcpd -t

# 看网卡
ip a

# 手动获取 IP
sudo dhclient eth0

五、如果你愿意,我可以更精确地帮你

请告诉我:

  1. Ubuntu 版本(20.04 / 22.04 / 24.04?)
  2. DHCP 服务器还是客户端
  3. 报错日志(journalctlsystemctl status 输出)

我可以直接帮你定位到具体哪一行配置错了。

0