參考網址:https://blog.gtwang.org/iot/raspberry-pi-dhcp-server-configuration/
STEP 1
首先裝 isc-dhcp-server
這個套件:
sudo apt-get install isc-dhcp-server
STEP 2
編輯 /etc/network/interfaces
,設定網路組態:
iface eth0 inet static address 192.168.1.1 # 自己的 IP 位址 netmask 255.255.255.0 # 網路遮罩 gateway 102.168.1.254 # 通訊閘道
STEP 3
編輯 /etc/dhcp/dhcpd.conf
,設定 DHCP 伺服器組態:
# 開放的動態 IP subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.250; # 開放配發的 IP 範圍 option routers 192.168.1.254; # 預設通訊閘道 option broadcast-address 192.168.1.255; # 廣播位址 default-lease-time 600; # 預設租約時間,單位為秒 max-lease-time 7200; # 最長租約時間,單位為秒 option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS 伺服器 option domain-name "internal.example.org"; # 網域名稱 }
以上是基本的動態 IP 設定,如果您需要依照 client 端的網路卡 MAC 位址配發固定的 IP 位址的話,可以加入這樣的對應設定:
# 依照網路卡 MAC 位址配發固定的 IP host sensor101 { hardware ethernet 4e:a3:53:01:30:0a; # 網路卡 MAC 位址 fixed-address 192.168.1.101; # 對應的 IP 位址 } host sensor102 { hardware ethernet 4e:a3:24:01:29:09; fixed-address 192.168.1.102; }
這樣當 DHCP 伺服器遇到指定的網路卡 MAC 位址的時候,就會配發事先設定好的 IP 位址。
STEP 4
編輯 /etc/default/isc-dhcp-server
,設定 啟用 DHCP 的網路卡:
# 設定啟用 DHCP 的網路卡 INTERFACES="eth0"
STEP 5
重新啟動 DHCP 伺服器:
sudo service isc-dhcp-server restart
正常的話,會有 ok
的訊息:
[ ok ] Stopping ISC DHCP server: dhcpd.
[ ok ] Starting ISC DHCP server: dhcpd.
這時候只要有 client 跟 DHCP 伺服器要求獲取 IP,在 /var/log/messages
中都會有這樣的紀錄:
Feb 2 16:44:12 raspberrypi dhcpd: DHCPDISCOVER from 4e:43:54:01:00:09 via eth0
Feb 2 16:44:12 raspberrypi dhcpd: DHCPOFFER on 192.168.1.102 to 4e:43:54:01:00:09 via eth0
Feb 2 16:44:12 raspberrypi dhcpd: DHCPREQUEST for 192.168.1.102 (192.168.1.1) from 4e:43:54:01:00:09 via eth0
Feb 2 16:44:12 raspberrypi dhcpd: DHCPACK on 192.168.1.102 to 4e:43:54:01:00:09 via eth0
如果有任何問題,通常也都可以在這裡找到一些錯誤訊息。
記錄檔放在/var/lib/dhcp/dhcpd.leases