温馨提示×

如何在Linux配置DHCP

小樊
57
2026-07-23 07:10:36
栏目: 智能运维

在 Linux 上配置 DHCP,通常有两种常见场景:

  1. 让 Linux 作为 DHCP 客户端(自动获取 IP)
  2. 让 Linux 作为 DHCP 服务器(为其他设备分配 IP)

下面分别说明。


一、Linux 作为 DHCP 客户端(最常见)

1️⃣ 使用 NetworkManager(桌面/服务器常用)

查看网卡

ip addr

设置为 DHCP 自动获取

nmcli device set eth0 managed yes
nmcli connection modify eth0 ipv4.method auto
nmcli connection up eth0

或新建连接:

nmcli connection add type ethernet ifname eth0 con-name dhcp-eth0 ipv4.method auto
nmcli connection up dhcp-eth0

2️⃣ 使用 systemd-networkd(服务器/容器常用)

编辑配置文件:

sudo vim /etc/systemd/network/20-wired.network

内容示例:

[Match]
Name=eth0

[Network]
DHCP=yes

启动服务:

sudo systemctl enable systemd-networkd
sudo systemctl restart systemd-networkd

3️⃣ 使用 dhclient(临时方式)

sudo dhclient eth0

⚠️ 重启后可能失效。


二、Linux 作为 DHCP 服务器(为其他设备分配 IP)

常用软件:ISC DHCP Server

1️⃣ 安装 DHCP 服务

Ubuntu / Debian

sudo apt update
sudo apt install isc-dhcp-server

CentOS / Rocky / Alma

sudo yum install dhcp -y

2️⃣ 配置 DHCP 服务

编辑配置文件:

sudo vim /etc/dhcp/dhcpd.conf

示例配置:

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, 114.114.114.114;
  default-lease-time 600;
  max-lease-time 7200;
}

3️⃣ 指定监听网卡(Ubuntu)

编辑:

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

设置:

INTERFACESv4="eth0"

4️⃣ 启动 DHCP 服务

sudo systemctl enable isc-dhcp-server
sudo systemctl start isc-dhcp-server

查看状态:

systemctl status isc-dhcp-server

5️⃣ 防火墙放行(如有)

sudo ufw allow 67/udp

三、常见问题排查

查看 DHCP 分配记录

cat /var/lib/dhcp/dhcpd.leases

查看日志

journalctl -u isc-dhcp-server

客户端无法获取 IP

  • 确认 DHCP 服务已启动
  • 确认网段配置正确
  • 确认防火墙未拦截 UDP 67/68

四、总结

场景 推荐方式
自动获取 IP NetworkManager / systemd-networkd
临时测试 dhclient
提供 DHCP 服务 isc-dhcp-server

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

  • ✅ Linux 发行版(Ubuntu / CentOS / Rocky 等)
  • ✅ 是服务器还是客户端
  • ✅ 是否用于虚拟机 / 真实局域网

我可以给你更精准的配置方案

0