這裡介紹如何在樹莓派(Raspberry Pi)安裝 DHCP 伺服器,讓它負責配發與管理區域網路上的 IP 位址。
樹莓派是一個迷你型的電腦,可運行各種 Linux 系統,因此非常適合拿來作為輕量化的伺服器使用,一般 DHCP 伺服器的負載都很輕,以樹莓派這樣的硬體來說是綽綽有餘,以下是在 Raspbian 系統中安裝與設定 DHCP 伺服器的流程。
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
如果有任何問題,通常也都可以在這裡找到一些錯誤訊息。
如果您對於樹莓派的應用有興趣,建議您可以繼續閱讀物聯網的相關文章。
TSAI
要怎讓Client連上Pi,Pi不是只有一個有線網路接口
G. T. Wang
網路的配置有很多種,要看需求而定,一個實體的網路介面卡也可以同時綁多個 IP 位址或網路區段。另外再接一張 USB 無線網路卡也是很常見的。
TSAI
如果我不想透過無線網卡來配發IP,想透過有線網路去配發的話,是不是需要接一個Switch。
G. T. Wang
通常是這樣。
Mark.Hsieh
STEP 2:
以現在20170410的樹莓版本,
改在dhcpcd會比較好。
/etc/network/interfaces
保持
iface eth0 inet manual
在 /etc/dhcpcd.conf
改成
interface eth0
static ip_address=192.168.9.1/24
static routers=192.168.9.1
static domain_name_servers=8.8.8.8
(可以同步參考葉大的紀錄
http://yehnan.blogspot.tw/2016/05/raspberry-piipdhcpcd.html)
真的不想用,論壇中有建議使用(本人沒試過)
~ $ sudo systemctl disable dhcpcd
(https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=144979)