在 Linux 中,DHCP 分配 IP 的过程主要遵循 DHCP 协议标准,通常由 DHCP 服务器(如 isc-dhcp-server、dnsmasq 等) 完成。下面我从 原理 → 流程 → 实际配置示例 三个层面说明。
DHCP(Dynamic Host Configuration Protocol)用于 自动为客户端分配 IP 地址、子网掩码、网关、DNS 等信息。
核心思想:
DHCP 分配 IP 通常称为 DORA 过程:
DHCP Discover
DHCP Offer
DHCP Request
DHCP ACK
✅ 此时客户端完成 IP 配置
# Debian / Ubuntu
sudo apt install isc-dhcp-server
# CentOS / RHEL
sudo yum install dhcp
配置文件:
/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 subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8, 114.114.114.114;
default-lease-time 600;
max-lease-time 7200;
}
含义说明:
| 配置项 | 作用 |
|---|---|
range |
可分配的 IP 范围 |
routers |
默认网关 |
subnet-mask |
子网掩码 |
domain-name-servers |
DNS |
default-lease-time |
默认租期(秒) |
max-lease-time |
最大租期 |
# Ubuntu
sudo nano /etc/default/isc-dhcp-server
INTERFACESv4="eth0"
sudo systemctl restart isc-dhcp-server
sudo systemctl enable isc-dhcp-server
DHCP 服务器通常按以下顺序决定:
host server1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.10;
}
dhclient eth0
nmcli device reapply eth0
cat /var/lib/dhcp/dhcpd.leases
示例:
lease 192.168.1.101 {
starts 3 2026/01/21 10:00:00;
ends 3 2026/01/21 10:10:00;
hardware ethernet 00:11:22:33:44:55;
}
| 问题 | 原因 |
|---|---|
| 客户端拿不到 IP | 防火墙、VLAN、DHCP 未监听正确网卡 |
| IP 冲突 | 地址池与静态 IP 重叠 |
| DHCP 服务未启动 | 配置语法错误 |
查看日志:
journalctl -u isc-dhcp-server
Linux DHCP 通过广播交互(DORA 过程),从地址池中动态分配 IP,并记录租约信息,确保网络中的设备自动获得可用 IP。
如果你需要:
可以直接告诉我你的使用场景。