AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1540777
Accepted
acgbox
acgbox
Asked: 2020-04-11 10:47:04 +0800 CST2020-04-11 10:47:04 +0800 CST 2020-04-11 10:47:04 +0800 CST

通过命令行从 arp 表中删除几个永久条目

  • 772

我正在尝试从我的 arp 表中删除永久条目。但以下命令仅删除那些不是永久的

ip -s -s neigh flush all

使用 arp 实用程序,我能够消除永久的。例子:

arp -a
? (192.168.1.230) en d4:63:c6:11:22:33 [ether] PERM in enp2s0
arp -d 192.168.1.230

由于有几个永久条目,我想自动化该命令,以便它删除任何包含“PERM”的条目:

arp -a | grep -i perm | grep -oP '(\d+\.){3}\d+' | xargs -I {} sudo arp -d {}

但它有一个错误:

xargs: sudo: ended with status 255; aborting

我做错了什么?THK

更新:

解决了 bash 排除执行命令的计算机的 ip 地址

localip=192.168.1.11
arp -a | grep -i perm | grep -oP '(\d+\.){3}\d+' | grep -v $localip | xargs -I {} sudo arp -d {}

谢谢大家

bash networking
  • 1 1 个回答
  • 849 Views

1 个回答

  • Voted
  1. Best Answer
    A.B
    2020-04-11T11:41:49+08:002020-04-11T11:41:49+08:00

    您的系统似乎是 Linux 系统。

    除了 commands和ifconfig之外,它们属于“过时命令”类别:它使用已弃用的(用于网络)ioctl内核 API 与网络堆栈进行交互。routebrctlarp

    较新的命令和工具,分别是ip link和ip address、ip route和bridge最后ip neighbour(替换arp),是较新的版本,而是使用rtnetlink内核 API。新功能(例如:策略路由ip rule)通常仅在较新的 API 上可用。

    可以使用以下命令添加 OP 示例中的永久条目:

    ip neighbour add 192.168.1.230 lladdr d4:63:c6:11:22:33 nud permanent dev enp2s0
    

    有nud含义:

    nud STATE
    邻居条目的状态。nud 是“邻居不可达检测”的缩写。状态可以采用以下值之一:

    permanent
    邻居条目永远有效,只能通过管理方式删除。
    [...]

    这些命令系列通常具有更强大的语法,带有一些过滤器,可应用于显示或...批量删除条目。通常当非空过滤器应用于show子命令时(此处:显示永久 ARP 条目):

    # ip neighbour show nud permanent
    192.168.1.230 dev enp2s0 lladdr d4:63:c6:11:22:33 PERMANENT
    

    它将适用于flush子命令:

    # ip neighbour flush nud permanent
    # ip neighbour show nud permanent
    #
    

    笔记:

    虽然在我的系统arp上是/usr/sbin/arp并且我用它来重写开头/usr/sbin/arp,但当由具有无限 sudo 权限的用户运行时,您的命令看起来很好。无论如何,如果我正确理解了您的评论,它强调了试图解析主要用于人类阅读的输出是不可靠的。


    UPDATE1:使用 JSON 输出进行受控解析的示例

    jq最近足够多的 iproute2 命令具有 JSON 输出,如果应用程序或脚本没有更直接的 API 可用,当与JSON 解析命令结合使用时会很有帮助。

    检索 ARP 表中与本地管理的MAC 地址或 Xen 或 VMware OUI匹配的所有 IP 地址的示例:

    # ip -json neighbour | jq -r '.[] | if .lladdr != null and ( .lladdr | test("^(.[26ae]|00:16:3e|00:05:69|00:0c:29|00:1c:14|00:50:56)","xi") )  then .dst else empty end'
    

    UPDATE2:正如评论的那样,如何临时添加一个条目,所以可能是随机的,存在?

    条目已存在,无法添加。它可以更改(如果已知该条目存在)或替换(如果存在则更改它,如果不存在则添加它,因此这永远不会回答 EEXIST)。这适用于iproute2系列的许多其他命令。

    示例:

    # ping 192.168.1.231
    PING 192.168.1.231 (192.168.1.231) 56(84) bytes of data.
    From 192.168.1.2 icmp_seq=1 Destination Host Unreachable
    
    [...]
    
    # ip neigh show nud failed
    192.168.1.231 dev enp2s0  FAILED
    # ip neigh add 192.168.1.231 lladdr 12:34:56:78:ab:cd nud permanent dev enp2s0
    RTNETLINK answers: File exists
    # ip neigh replace 192.168.1.231 lladdr 12:34:56:78:ab:cd nud permanent dev enp2s0
    # ip neigh show nud permanent
    192.168.1.231 dev enp2s0 lladdr 12:34:56:78:ab:cd PERMANENT
    
    • 3

相关问题

  • NAT 后面的 NAT 如何工作(路由器的 NAT 和 ISP 的 NAT)?

  • Win10 1803:如何让移动热点成为专用网络?

  • nc如何识别服务名称

  • Notify-发送窗口下出现的通知

  • 如何从 WSL 打开 office 文件

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve