我已经能够清除 arp 缓存中的所有条目,只剩下一个。我的 ip 地址是 _gateway,MAC 地址是我的路由器的 MAC 地址。
我尝试过“sudo arp -d _gateway”、“sudo arp -a -d _gateway”和“sudo ip -s -s neigh flush all”
没有错误消息。事实上,命令似乎运行了,但是当我检查 arp 表时,_gateway 列表仍然在那里。
答案1
_gateway
不是 IP 地址。它是一个主机名;实际上它是一个虚拟主机名,libnss_myhostname 会将其解析为系统默认路由配置的任何网关。要查看实际 IP 地址,请使用arp -n
或 (最好是 )ip neigh
。
最有可能的是,你的刷新/删除命令实际上成功– 但缓存会立即重新填充,因为一旦系统必须通过网关发送另一个数据包,它就必须重新学习其 MAC 地址。每当发生这种情况时,ARP 缓存条目当然会再次出现。
要检查是否是这种情况,请使用ip monitor
或ip mon neigh
。在一个终端中运行此命令,sudo ip nei flush all
在另一个终端中运行,您应该会看到缓存条目立即被删除,但很快就会根据需要重新添加。即使在大多数空闲的系统上,这也可能在几秒钟内发生。