Windows 8 環境下缺乏成熟的第三方 ARP 防火牆 (特別是 64 位元版),最有效的防禦手段是靜態綁定網關 MAC 地址,使本機 ARP 快取免疫偽造回應。本文提供 CMD 指令與批處理腳本兩種實作方式,並說明原理與注意事項。
ARP 攻擊者發送偽造的 ARP 回應,將受害者 ARP 快取中的網關 MAC 修改為攻擊者 MAC,導致流量被攔截/丟棄。靜態綁定 (Static ARP Entry) 標記為 Type: Static,系統將忽略動態 ARP 更新,永遠使用指定的 MAC。
netsh interface ipv4 show interfaces (或簡寫 netsh i i show in),記下目標網卡 Idx (如 12)。netsh -c "interface ipv4" add neighbors 12 192.168.1.1 D0-27-88-C9-7C-A412=Idx, 192.168.1.1=網關 IP, D0-27-88-C9-7C-A4=網關真實 MAC (可用 arp -a 查詢)。arp -a → 確認該條目 Type 為 Static。netsh -c "interface ipv4" delete neighbors 12 192.168.1.1 → 重啟生效。
將指令封裝為批次檔,雙擊執行,可放入「啟動」資料夾實現開機自動綁定。
arp_bind.bat@echo off
title ARP 靜態綁定 - 請以管理員身分執行
:: 請修改以下三項為你的實際環境
set IDX=12
set GATEWAY_IP=192.168.1.1
set GATEWAY_MAC=D0-27-88-C9-7C-A4
netsh -c "interface ipv4" add neighbors %IDX% %GATEWAY_IP% %GATEWAY_MAC%
arp -a | findstr /i "%GATEWAY_IP%"
echo.
echo 完成!上方應顯示 Type: Static
pause
arp_unbind.bat@echo off
title ARP 解除綁定
set IDX=12
set GATEWAY_IP=192.168.1.1
netsh -c "interface ipv4" delete neighbors %IDX% %GATEWAY_IP%
arp -a | findstr /i "%GATEWAY_IP%"
echo.
echo 綁定已移除,重啟後生效
pause
netsh 拒絕存取)。arp -a 確認網關真實 MAC,填入腳本變數。shell:startup → 將 arp_bind.bat 捷徑放入 (注意:啟動資料夾執行批次檔預設非管理員權限,需配合工作排程器「以最高權限執行」觸發)。:: 綁定
arp -s 192.168.1.1 D0-27-88-C9-7C-A4
:: 解除
arp -d 192.168.1.1
差異:arp -s 新增的靜態項目在重啟後失效 (Win8 以上),netsh add neighbors 的靜態項目重啟後仍保留 (需重啟網卡或重啟系統生效),更適合長期防禦。
| 措施 | 說明 | 實施主體 |
|---|---|---|
| 動態 ARP 檢測 (DAI) | 交換器驗證 ARP 封包合法性,丟棄偽造回應 | 網管/具備 DAI 功能的可管交換器 |
| IP-MAC-Port 綁定 | 交換器/路由器鎖定 IP-MAC-埠對應,防止 IP 盜用 | 網管/企業級路由器 |
| DHCP Snooping | 僅信任特定埠的 DHCP 伺服器,防止流氓 DHCP | 網管/可管交換器 |
| 隔離埠 / Private VLAN | 限制同 VLAN 內主機直接通訊,需經閘道轉發 | 網管/可管交換器 |
netsh winsock reset) 都會導致綁定失效,需同步更新。掌握靜態 ARP 綁定技巧,配合良好的網路設備配置,可在缺乏專業防火牆的 Windows 8 環境中建立有效防線,保障區域網路通訊完整性。