在 Linux 中配置 DHCP 服务(通常指 ISC DHCP Server)来为某个子网分配 IP,核心就是修改 dhcpd.conf 文件。下面按常见场景一步步说明。
sudo apt update
sudo apt install isc-dhcp-server
sudo yum install dhcp
# 或
sudo dnf install dhcp-server
编辑配置文件(最常见路径):
sudo vim /etc/dhcp/dhcpd.conf
192.168.10.0/24 配置 DHCPsubnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
option routers 192.168.10.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8, 114.114.114.114;
option domain-name "example.local";
default-lease-time 600;
max-lease-time 7200;
}
| 配置项 | 说明 |
|---|---|
subnet |
子网网段 |
netmask |
子网掩码 |
range |
可分配的 IP 范围 |
option routers |
默认网关 |
option domain-name-servers |
DNS |
default-lease-time |
默认租期(秒) |
max-lease-time |
最大租期 |
编辑:
sudo vim /etc/default/isc-dhcp-server
设置:
INTERFACESv4="eth0"
编辑:
sudo vim /etc/sysconfig/dhcpd
设置:
DHCPDARGS="eth0"
sudo systemctl restart isc-dhcp-server
sudo systemctl enable isc-dhcp-server
检查状态:
sudo systemctl status isc-dhcp-server
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
option routers 192.168.10.1;
}
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.100 192.168.20.200;
option routers 192.168.20.1;
}
⚠️ 注意:
如果 DHCP 服务器不在某个子网内,需要 DHCP 中继(relay)。
cat /var/lib/dhcp/dhcpd.leases
journalctl -u isc-dhcp-server -xe
subnet 与服务器 IP 在同一网段(或已配置 relay)sudo ufw allow 67/udp
host server1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.10.50;
}
如果你愿意,我可以:
只要告诉我你的环境即可。