本文基於 RedHat Linux 9.0 環境,詳細記錄 DHCP 服務端 (dhcpd) 從 RPM 安裝、配置文件構建、租約管理到服務啟停的完整流程,適合從 Windows 轉型 Linux 的網管參考。
# 查詢已安裝套件
rpm -qa | grep dhc
# 輸出:dhcp-3.0pl1-23, dhclient-3.0pl1-23, dhcp-devel-3.0pl1-23
# 若無 server 端,掛載光碟或下載 RPM 安裝
rpm -ivh dhcp-*.rpm
# 或原始碼編譯安裝
tar zxvf dhcp-3.X.tar.gz
cd dhcp-3.X
./configure && make && make install
cp server/dhcpd.conf /etc
touch /var/state/dhcp/dhcpd.leases
預設無配置文件,需複製範本:
cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.1; # 閘道
option subnet-mask 255.255.255.0; # 子網掩碼
option domain-name "domain.org"; # 域名後綴
option domain-name-servers 192.168.2.1; # DNS
option time-offset -18000; # 時區偏移(秒)
range dynamic-bootp 192.168.2.100 192.168.2.254; # 動態地址池
default-lease-time 21600; # 預設租期 6小時
max-lease-time 43200; # 最大租期 12小時
filename "/pxelinux.0"; # PXE 啟動文件
next-server 192.168.2.11; # TFTP 服務器
# 固定 IP 綁定 MAC (靜態映射)
host ns {
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
| 指令 | 作用 |
|---|---|
| ddns-update-style interim | 動態 DNS 更新模式 (interim/none 均為關閉) |
| range dynamic-bootp | 定義動態分配地址範圍,支援 BOOTP 客戶端 |
| default-lease-time / max-lease-time | 租期控制,單位秒 |
| filename + next-server | 無盤啟動/PXE 部署必備 |
| host 區塊 | MAC 綁定固定 IP,優先於動態池 |
# 啟動
/etc/rc.d/init.d/dhcpd start
# 或 service dhcpd start
# 停止
/etc/rc.d/init.d/dhcpd stop
# 多網卡指定介面啟動 (如 eth1)
/usr/sbin/dhcpd eth1
# 查看監聽端口 (UDP 67)
netstat -nulp | grep :67
# 查看租約記錄
cat /var/lib/dhcp/dhcpd.leases
編輯 /etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
並確保 /etc/sysconfig/network 含 NETWORKING=yes。
跨網段服務時,編輯 /etc/sysconfig/dhcrelay 指定上游 DHCP 服務器 IP,啟動 service dhcrelay start。