arp to narzędzie z pakietu net-tools, które pokazuje i modyfikuje tablicę ARP w jądrze Linuksa. Tablica ta mapuje adresy IP urządzeń w Twojej sieci lokalnej na ich adresy MAC (sprzętowe). Kiedy Twój komputer chce wysłać pakiet do sąsiada w tej samej podsieci, najpierw sprawdza w tej tablicy, pod jakim MAC-iem siedzi dany IP. arp przyda Ci się, gdy chcesz podejrzeć, kto faktycznie odpowiada w sieci, zdiagnozować duplikaty IP albo wyczyścić zalegający, nieaktualny wpis.
Składnia i najważniejsze opcje
Podstawowa forma: arp [-n] [-a] [-d host]
-a— wyświetla wszystkie wpisy w stylu BSD; opcjonalnie podajesz nazwę hosta, żeby zawęzić do jednego.-n— pokazuje adresy numerycznie, bez rozwiązywania nazw przez DNS (szybciej i bez zaskoczeń).-e— wymusza domyślny, linuksowy format tabelaryczny wyjścia.-d host— usuwa wpis dla danego hosta z tablicy.-s host hw_addr— dodaje statyczny, ręczny wpis IP→MAC (nie wygasa).-i interfejs— ogranicza operację do konkretnej karty sieciowej, np.eth0.-v— tryb gadatliwy, więcej szczegółów o tym, co robi.
Przykłady użycia
arp -a— wypisuje całą tablicę ARP, czyli listę sąsiadów, których Twój host już „poznał”.arp -n— to samo, ale bez rozwiązywania nazw — same IP i MAC, bez czekania na DNS.arp -d 192.168.1.10— kasuje wpis dla tego adresu, np. gdy urządzenie zmieniło kartę sieciową.arp -s 192.168.1.50 00:1a:2b:3c:4d:5e— wbija stały wpis, przydatne przy testach albo blokowaniu ARP spoofingu.arp -i eth0 -a— pokazuje tylko sąsiadów widzianych przez interfejseth0.
Częste błędy i pułapki
Najważniejsze: arp z net-tools jest uznane za przestarzałe. Na nowoczesnych dystrybucjach często nie ma go domyślnie i trzeba doinstalować pakiet net-tools. Następcą jest ip neigh (np. ip neigh show) z pakietu iproute2 — jeśli piszesz skrypty na przyszłość, używaj właśnie tego.
Druga pułapka: dodawanie wpisów (-s, -d) wymaga uprawnień roota — bez sudo dostaniesz odmowę. Pamiętaj też, że ARP działa wyłącznie w obrębie jednej podsieci (warstwa 2) — nie zobaczysz MAC-a maszyny zza routera, tam i tak trafisz na MAC bramy. I nie myl pustej tablicy z awarią — jądro wpisuje sąsiada dopiero po pierwszej komunikacji.
Powiązane komendy: ip neigh, ip, ping, ifconfig, arping, netstat.