這裡介紹如何使用 Linux 的 arp 指令,管理系統上的 arp 紀錄。

arp 是一個用來管理系統 arp 紀錄的指令,一般使用者可能不常用到,但是對於網路管理者來說,卻是一個相當基本且常用的指令,例如建立 IP 位址與網路卡 MAC 卡號對應表時,就會用到 arp 指令。


以下是 arp 的使用方法教學。

查詢 ARP 紀錄

直接執行 arp 即可列出系統上目前的 arp 紀錄:

arp
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.0.103            ether   54:35:30:ac:ec:be   C                     wlan1
192.168.0.100                    (incomplete)                              wlan1
192.168.0.1              ether   c4:6e:1f:c1:8e:ee   C                     wlan1
192.168.0.101                    (incomplete)                              wlan1

如果是在有多張網路卡的伺服器上,可以使用 -i 參數指定要查詢的網路界面,例如查詢第一張乙太網路卡上的 arp 紀錄:

arp -i eth0

arp 若加上 -a 參數可以改用 BSD 的格式輸出:

? (192.168.0.103) at 54:35:30:ac:ec:be [ether] on wlan1
? (192.168.0.100) at <incomplete> on wlan1
? (192.168.0.1) at c4:6e:1f:c1:8e:ee [ether] on wlan1
? (192.168.0.101) at <incomplete> on wlan1

其實資料都是一樣的,只是排版不同。

刪除 ARP 紀錄

如果要刪除指定主機的 ARP 紀錄,可以使用 -d 參數:

# 刪除主機的 ARP 紀錄
sudo arp -d 192.168.0.103

刪除後的 ARP 紀錄在查詢時,就會顯示為 (incomplete)

arp
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.0.103                    (incomplete)                              wlan1
192.168.0.100                    (incomplete)                              wlan1
192.168.0.1              ether   c4:6e:1f:c1:8e:ee   C                     wlan1
192.168.0.101                    (incomplete)                              wlan1

設定 ARP 紀錄

若要手動設定特定主機的 arp 紀錄,可以使用 -s 參數:

# 設定主機的 ARP 紀錄
sudo arp -s 192.168.0.123 12:34:56:78:90:ab

設定之後,馬上就會生效:

arp
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.0.103            ether   54:35:30:ac:ec:be   C                     wlan1
192.168.0.100                    (incomplete)                              wlan1
192.168.0.1              ether   c4:6e:1f:c1:8e:ee   C                     wlan1
192.168.0.123            ether   12:34:56:78:90:ab   CM                    wlan1
192.168.0.101                    (incomplete)                              wlan1

如果一次要設定多台主機的 arp 紀錄,可以先將所有的主機與網路卡 MAC 卡號的對應表準備好,每一行代表一筆 arp 紀錄,以空白分隔主機與 MAC 卡號,例如:

192.168.0.201 11:22:33:44:55:66
192.168.0.202 12:23:34:45:56:67

將其儲存在檔案中,接著在使用 arp 配合 -f 參數,從檔案中讀取 arp 對應表來更新系統上的 arp 紀錄:

# 設定主機的 ARP 紀錄
sudo arp -f arp_list.txt

參考資料:tutorialspoint