И то и другое:
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
Ваше первое решение работает, вам просто нужно немного времени (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
ip link set arp off dev eth0; ip link set arp on dev eth0
команде 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 С ARP-D COMMAND
user@linux:~$ for i in 10.0.0.1 172.168.0.3; do sudo arp -d $i; done user@linux:~$
ПОСЛЕ: МАК-АДРЕС, УДАЛЕННЫЙ ИЗ ЗАПИСИ С НЕПОЛНЫМ СООБЩЕНИЕ
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 все еще присутствуют с 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:~$