양자 모두:
sudo ip -s -s neigh flush all
과:
sudo arp -d 192.168.0.102
arp 캐시를 지우는 대신 항목을 무효화하는 것처럼 보입니다 (으로 나타남 incomplete
). 몇 분이 지난 후에도 ARP 캐시는 다음과 같습니다.
$ arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.0.103 (incomplete) eth0
192.168.0.1 ether DE:AD:BE:EF:DE:AD C eth0
(게이트웨이의 MAC이 새로 고쳐졌습니다. 괜찮습니다)
“테이블에서 모든 항목 삭제”와 같이 ARP 캐시를 실제로 지우 려면 어떻게 해야합니까? 내가 없는 내가 그들을 제거하려는 불완전한 항목을 유지하려는. 이게 가능해?
편집하다
이것은 내 시스템입니다.
» arp --version
net-tools 1.60
arp 1.88 (2001-04-04)
+I18N
AF: (inet) +UNIX +INET +INET6 +IPX +AX25 +NETROM +X25 +ATALK +ECONET +ROSE
HW: (ether) +ETHER +ARC +SLIP +PPP +TUNNEL -TR +AX25 +NETROM +X25 +FR +ROSE +ASH +SIT +FDDI +HIPPI +HDLC/LAPB +EUI64
» lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
» uname -a
Linux polyphemus.xxx-net 3.13.0-46-generic #77-Ubuntu SMP Mon Mar 2 18:23:39 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
답변
ip link set arp off dev eth0 ; ip link set arp on dev eth0
한 번에 모두 수행해야 ARP를 다시 켜기 전에 네트워크 연결을 끊을 수 있습니다.
답변
첫 번째 솔루션이 작동하면 “(불완전한)”에서 항목이없는 데까지 약간의 시간 (Kali 테스트에서 5-10 초)이 걸립니다.
아마도 삭제되는 도중에 일종의 과도기 상태에있을 것입니다.
답변
특정 시스템에서는 ip
명령을 사용할 수 없습니다.
user@linux:~$ ip
-bash: ip: command not found
user@linux:~$
그래서 이것은 ip link set arp off dev eth0; ip link set arp on dev eth0
명령 의 대안입니다 .
단일 명령으로 테이블에서 모든 항목을 삭제하려면 for loop
다음 예와 같이 사용 하십시오.
전에
user@linux:~$ arp
? (10.0.0.1) at 00:00:00:aa:aa:12 [ether] on eth1
? (172.168.0.3) at 00:00:00:aa:aa:11 [ether] on eth2
user@linux:~$
ARP -D 명령으로 ARP 제거
user@linux:~$ for i in 10.0.0.1 172.168.0.3; do sudo arp -d $i; done
user@linux:~$
불완전한 메시지가있는 항목에서 MAC 주소가 제거 된 후
user@linux:~$ arp
? (10.0.0.1) at <incomplete> on eth1
? (172.168.0.3) at <incomplete> on eth2
user@linux:~$
arp arp -d
명령을 사용하여 arp 를 삭제 하면 arp 항목이 여전히 incomplete
메시지 와 함께 존재 합니다.
이 문제를 해결하려면 다음 ifconfig ethx up/down
과 같이 사용 하십시오
전에
user@linux:~$ arp
? (10.0.0.1) at <incomplete> on eth1
? (172.168.0.3) at <incomplete> on eth2
user@linux:~$
단일 명령에서 인터페이스 ETH1 및 ETH2 비활성화 및 활성화
user@linux:~$ for i in 1 2; do sudo ifconfig eth$i down; sudo ifconfig eth$i up; done
user@linux:~$
TADAAA … 문제 해결 🙂
user@linux:~$ arp
user@linux:~$
답변
언급 한 솔루션은 ARP 테이블을 플러시하는 정확하고 안전한 방법입니다.
ip neigh flush all [dev <device>]
특정 항목이 유효하지 않은 항목으로 변경되면 일시적이며 ARP 프로토콜의 일부입니다. 중요한 점은 매핑이 사라졌고, 불완전한 것으로 표시된 ARP 항목이 테이블의 IP-MAC 항목이 아니라는 것입니다.
방금 이것을 시도했으며 내 경우에는 즉시 테이블을 지우고 불완전한 항목을 남기지 않았습니다.