區域網路中出現「IP 衝突」會導致間歇性斷線、通訊異常。常見原因:DHCP 伺服器重複、靜態 IP 與動態池重疊、裝置手動設定衝突。arp-scan 透過發送 ARP 請求,能快速揭露同一 IP 對應多個 MAC 的衝突情況。
# Debian/Ubuntu
sudo apt-get update && sudo apt-get install arp-scan
# CentOS/RHEL/Fedora
sudo yum install epel-release && sudo yum install arp-scan
# 或
sudo dnf install arp-scan
# 掃描 eth0 介面所在網段
sudo arp-scan --interface=eth0 --localnet
# 或指定 CIDR
sudo arp-scan -I eth0 192.168.1.0/24
192.168.1.10 00:1b:a9:63:a2:4c BROTHER INDUSTRIES, LTD.
192.168.1.30 00:1e:8f:58:ec:49 CANON INC.
192.168.1.39 d4:85:64:4d:35:be Hewlett Packard
192.168.1.39 00:0b:46:e4:8e:6d Cisco (DUP: 2)
192.168.1.40 90:2b:34:18:59:c0 (Unknown)
關鍵標記:(DUP: N) 表示該 IP 在掃描過程中收到 N 個不同 MAC 回應,**確定存在 IP 衝突**。上例中 192.168.1.39 同時被 HP 印表機與 Cisco 設備佔用。
| 場景 | 排查動作 |
|---|---|
| DHCP 伺服器重複(如路由器+伺服器雙開) | 關閉其中一台 DHCP,或調整地址池不重疊 |
| 靜態 IP 落入 DHCP 池 | 縮小 DHCP 池範圍,或將靜態 IP 設在池外 |
| 裝置手動設定錯誤 | 根據 MAC 廠商代碼(OUI)識別裝置廠商,登入裝置修正 |
| 虛擬機/容器 MAC 衝突 | 確保虛擬化平台 MAC 地址池唯一,開啟 MAC 防欺騙 |
# 只顯示衝突行
sudo arp-scan -I eth0 --localnet | grep 'DUP'
# 輸出 CSV 供腳本處理
sudo arp-scan -I eth0 --localnet --format=csv > scan.csv
# 定期掃描並告警(cron 每小時)
# 0 * * * * root /usr/local/bin/check_ip_conflict.sh
arping -D -I eth0 192.168.1.39 — 主動發送 ARP 探測特定 IP 是否有回應(DAD,重複地址偵測)。ip neigh show — 查看核心鄰居表(ARP 快取),快速檢視本機已知映射。nmap -sn 192.168.1.0/24 — ICMP/ARP 混合掃描,同時獲取主機名、開放埠。將 arp-scan 納入網路巡檢腳本,可在使用者回報異常前主動發現 IP 衝突。