為樹莓派分配靜態 IP
本文將介紹幾種為 Raspberry Pi OS 分配靜態 IP 地址的方法。
Raspberry Pi OS 上的網路配置基礎知識
通常,在為網路介面配置靜態 IP 地址之前,你需要找出系統中可用的介面及其名稱。在這種情況下,我們將首先關注乙太網介面和 IPv4 地址。
你可以使用 CLI 中的 ip a
命令列出所有可用介面。它將顯示如下所示的輸出,其中每個介面都有編號和名稱,例如 lo
、eth0
等。eth0
表示第一個乙太網介面,當前具有 IP 地址 (192.168.0.24
) 分配給它。
請注意,它還具有標準網路掩碼 255.255.255.0
。請記住,在以下步驟中,我們基本上需要此命令輸出中的 eth0
部分來配置靜態 IP 地址。
ip a
樣本輸出:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
---
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:e2:52:1c brd ff:ff:ff:ff:ff:ff
inet 192.168.0.12/24 brd 192.168.0.255 scope global
---
或者,你可以執行 ifconfig
命令來顯示系統中當前活動的介面。輸出包含與上一個命令類似的資訊。請注意,我們在本文中壓縮了輸出文字,並且只關注與手頭任務相關的部分。
ifconfig
樣本輸出:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.12 netmask 255.255.255.0 broadcast 172.16.0.255
inet6 fe80::7df4:d6b9:171:f302 prefixlen 64 scopeid
---
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
---
使用 dhcpcd
命令為 Raspberry Pi 乙太網介面分配靜態 IP 地址
Raspberry Pi OS 利用 dhcpcd
客戶端為其所有介面配置 TCP/IP。dhcpcd
是一個始終在後臺執行的守護程序。儘管如此,它也表示可以與守護程序互動的命令列工具。
首先,我們需要取消配置 eth0
介面,因為它已經使用動態分配進行了配置,正如我們在前面的輸出中看到的那樣。但是,如果你沒有將 Raspberry Pi 連線到路由執行 DHCP 伺服器的網路,則情況可能並非如此。
在後一種情況下,你可以跳過此步驟,但請先使用前面的命令驗證你的乙太網介面是否未配置。
可以使用 dhcpcd -k [interface]
命令或使用 dhcpcd --release [interface]
取消配置給定的介面(例如 eth0
)。
請注意,你必須為這些命令中的任何一個指定介面引數,否則 dhcpcd
將退出,因為沒有介面在執行。
此外,如果你以預設的 pi
使用者身份登入,你可能需要包含 sudo
字首來提升所有 dhcpcd
命令的許可權。
sudo dhcpcd -k eth0
接下來,你可以通過執行 ip a
或 ifconfig
命令確認 eth0
已被取消配置。如果前面的操作成功,我們可以在 /etc
目錄下的 dhcpcd.conf
檔案中指定靜態 IP 配置。
此檔案通常包含示例靜態 IP 配置行,因此你可能需要取消註釋這些並僅修改地址。否則,請在配置檔案末尾插入以下行,並根據你的本地網路設定指定本地地址。
interface eth0
static ip_address=192.168.0.111/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 8.8.8.8
請注意,命令 DHCP 配置除了靜態 IP 地址/網路掩碼外,還包括預設閘道器地址和 DNS 伺服器。在前面的程式碼片段中,我們將 192.168.0.111
靜態 IP 地址分配給 eth0
介面。現在,我們需要這些更改立即生效,因此我們執行以下命令。
sudo dhcpcd -n eth0
此命令將強制 dhcpcd
程序重新載入其配置檔案並重新繫結 eth0
介面。如果你沒有為上一個命令指定介面名稱,它將重新繫結所有介面。
為 Raspberry PI 設定靜態 IP 地址的另一種方案涉及修改 dhcpcd.conf
檔案,然後重新啟動系統,這將起作用。儘管如此,你還是會浪費一些時間等待重新啟動。另外,請注意,如果你使用 SSH 或其他遠端連線連線到 Raspberry Pi,dhcpcd -k
命令將使你的會話不可用。
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn相關文章 - Raspberry Pi
- Raspberry Pi OS 上的 Cron 作業和任務排程
- Raspberry Pi OS 上的自動啟動程式和排程命令
- 在 Raspberry Pi OS 上更改主機名
- 在 Raspberry Pi OS 上更改預設使用者名稱和密碼
- 在 Raspberry Pi OS 上使用藍芽
- 在 Raspberry Pi OS 上建立新使用者