在Linux上搭建DHCP服務器通常使用ISC DHCP Server(Internet Systems Consortium DHCP Server)。以下是詳細的步驟:
首先,你需要安裝ISC DHCP Server軟件包。根據你使用的Linux發行版,安裝命令可能會有所不同。
sudo apt update
sudo apt install isc-dhcp-server
sudo yum install dhcp
sudo dnf install dhcp
安裝完成后,你需要配置DHCP服務器。配置文件通常位于/etc/dhcp/dhcpd.conf。
sudo nano /etc/dhcp/dhcpd.conf
option domain-name "example.com";
option domain-name-servers ns1.example.com, ns2.example.com;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
option domain-name:設置域名。option domain-name-servers:設置DNS服務器。default-lease-time:設置默認租約時間(秒)。max-lease-time:設置最大租約時間(秒)。subnet:定義子網。range:定義IP地址范圍。option routers:設置默認網關。option subnet-mask:設置子網掩碼。option broadcast-address:設置廣播地址。option domain-name-servers:設置DNS服務器。編輯/etc/default/isc-dhcp-server文件,指定DHCP服務器監聽的網絡接口。
sudo nano /etc/default/isc-dhcp-server
找到INTERFACESv4行,并設置為你的網絡接口名稱(例如eth0):
INTERFACESv4="eth0"
如果你有多個接口,可以用空格分隔它們:
INTERFACESv4="eth0 eth1"
sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server
sudo systemctl start dhcpd
sudo systemctl enable dhcpd
sudo systemctl start dhcp
sudo systemctl enable dhcp
你可以使用tcpdump或wireshark來捕獲網絡流量,驗證DHCP服務器是否正常工作。
sudo tcpdump -i eth0 port 67 or port 68
你應該能看到DHCP請求和響應包。
確保你的防火墻允許DHCP流量。例如,在Ubuntu上使用ufw:
sudo ufw allow 67/udp
sudo ufw allow 68/udp
在CentOS上使用firewalld:
sudo firewall-cmd --permanent --add-service=dhcp
sudo firewall-cmd --reload
完成以上步驟后,你的DHCP服務器應該已經成功搭建并運行。