Очистите кеш arp на linux, действительно

И то и другое:

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:~$