温馨提示×

Linux DHCP如何配置子网

小樊
63
2026-08-21 13:46:01
栏目: 智能运维

在 Linux 中配置 DHCP 服务(通常指 ISC DHCP Server)来为某个子网分配 IP,核心就是修改 dhcpd.conf 文件。下面按常见场景一步步说明。


一、安装 DHCP 服务

Debian / Ubuntu

sudo apt update
sudo apt install isc-dhcp-server

RHEL / CentOS / Rocky / Alma

sudo yum install dhcp
# 或
sudo dnf install dhcp-server

二、基本 DHCP 子网配置示例

编辑配置文件(最常见路径):

sudo vim /etc/dhcp/dhcpd.conf

示例:为子网 192.168.10.0/24 配置 DHCP

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;
    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 最大租期

三、指定 DHCP 监听的网卡(非常重要)

Ubuntu / Debian

编辑:

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

设置:

INTERFACESv4="eth0"

RHEL / CentOS

编辑:

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

五、多子网配置示例(一个 DHCP 服务多个网段)

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

七、常见问题排查

1️⃣ 服务起不来

journalctl -u isc-dhcp-server -xe

2️⃣ DHCP 不分配 IP

  • 检查网卡是否处于 UP 状态
  • 确认 subnet 与服务器 IP 在同一网段(或已配置 relay)
  • 防火墙放行 UDP 67/68
sudo ufw allow 67/udp

八、扩展:固定 IP(保留地址)

host server1 {
    hardware ethernet 00:11:22:33:44:55;
    fixed-address 192.168.10.50;
}

如果你愿意,我可以:

  • ✅ 根据你的 具体 Linux 发行版 给你精确配置
  • ✅ 帮你配置 多 VLAN / DHCP 中继
  • ✅ 画一张 DHCP 工作原理图

只要告诉我你的环境即可。

0 踩