news 2026/10/3 2:19:35

arpwatch 命令详解:在 Linux 与 ZeroTermux 中监听网络 ARP 记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
arpwatch 命令详解:在 Linux 与 ZeroTermux 中监听网络 ARP 记录
  • 移动开发
  • 开发工具

【免费下载链接】ZeroTermux

项目地址:https://gitcode.com/GitHub_Trending/ze/ZeroTermux
点击查看免费下载

导读

arpwatch是一个专门用于监听网络上 ARP(Address Resolution Protocol,地址解析协议)记录的网络管理命令。它能够持续捕获局域网中所有 ARP 请求与应答报文,帮助运维人员及时发现重复 IP 地址、MAC 地址欺骗(ARP 欺骗)等网络异常。本文将基于 ZeroTermux 内置的 arpwatch 命令手册,完整讲解arpwatch的语法、四个核心选项的用法与默认值,并结合 ARP 协议原理、配套命令(arp、arping、arpd)以及 ZeroTermux 中的命令查询实现,帮助你在真实局域网环境中落地部署 ARP 监控。

arpwatch 是什么:从 ARP 协议说起

在讲解命令本身之前,有必要先理解它监听的"对象"——ARP 协议。ARP 用于将网络层的 IP 地址解析为链路层的 MAC 地址。当主机 A 想向主机 B 发送数据,但只知道 B 的 IP 时,A 会在局域网内广播一条"谁是 X.X.X.X?请告诉我你的 MAC 地址"的 ARP 请求;拥有该 IP 的主机 B 则以单播方式回复自己的 MAC 地址。这些请求与应答报文,就是arpwatch要监听并记录的对象。

ZeroTermux 的 cmd 命令文档目录 中,与arpwatch同属 ARP 工具族的还有:

  • arp.md:显示和修改 IP 到 MAC 转换表(即操作本机 ARP 缓冲区);
  • arping.md:通过发送 ARP 协议报文测试网络(类似 ping,但工作在二层);
  • arpd.md、arptables.md、arpwatch.md:分别涉及 ARP 守护进程、ARP 防火墙规则与 ARP 记录监听。

arpwatch 命令正是用来监听网络上 ARP 的记录,它把观察到的每一对"IP ↔ MAC"映射变化写入记录文件,是排查 IP 冲突、检测 ARP 欺骗的经典工具。

语法

arpwatch(选项)

arpwatch没有位置参数,全部行为通过选项控制。它常以守护进程方式在后台持续运行,把监听到的 ARP 记录追加到记录文件中,同时可通过邮件或日志向管理员报告异常。

选项

选项作用默认值
-d启动排错模式(debug mode),在前台运行并输出调试信息,便于观察监听过程与排错关闭(后台运行)
-f<记录文件>设置存储 ARP 记录的文件/var/arpwatch/arp.dat
-i<接口>指定监听 ARP 的网络接口eth0
-r<记录文件>从指定的文件中读取 ARP 记录,而不是从网络上实时监听无(默认实时监听)
选项细节与实战说明
  • -d(排错模式):默认情况下arpwatch作为守护进程在后台运行;加上-d后进程在前台运行并输出详细调试日志,适合首次部署时验证接口抓包是否正常、确认记录文件写入路径是否可写。
  • -f<记录文件>:指定 ARP 记录的落盘位置,默认是/var/arpwatch/arp.dat。在 Android/Termux 环境中/var目录通常不存在或不可写,因此使用时应改为 Termux 可写路径,例如$HOME/arpwatch/arp.dat。该文件是增量追加的,可用于长期留痕与事后审计。
  • -i<接口>:指定监听接口,默认eth0。在 PC 上常见接口名还有eth1、ens33、wlan0等;在手机 Termux 环境中,需要先用ip link或ifconfig查看当前活动接口(如wlan0),再显式传入,否则默认的eth0可能不存在而无法监听。
  • -r<记录文件>:离线回放模式。不从网卡实时抓包,而是解析指定文件中已有的 ARP 记录,适合对历史记录做审计分析,不产生新的网络流量。

使用提示:arpwatch监听 ARP 报文通常需要 root 权限(或在 Android 上需要相应网络抓包权限)。在 ZeroTermux 中运行前,请确认当前终端会话已获得所需权限,并确保监听接口名称与实际一致。

与 ARP 工具族协同:从"看表"到"监听"

arpwatch记录的正是arp命令所维护的 ARP 缓冲区之外的第二层信息——它是"被动观察者",而arp是"主动操作者"。理解两者的配合,能更清晰地定位网络问题。

arp.md 中说明:arp 命令用于操作主机的 arp 缓冲区,它可以显示缓冲区中的所有条目、删除指定条目或添加静态的 IP 地址与 MAC 地址对应关系。常用选项包括:

  • -a<主机>:显示 arp 缓冲区的所有条目;
  • -s<主机><MAC地址>:设置指定主机的 IP 地址与 MAC 地址的静态映射;
  • -d<主机>:从 arp 缓冲区中删除指定主机的 arp 条目;
  • -v:显示详细的 arp 缓冲区条目,包括统计信息。

而 arping.md 则提供了主动探测手段:arping 命令通过发送 ARP 请求到相邻主机,能够测试一个 IP 地址是否已被使用,并获取更多设备信息,功能类似于 ping。其关键选项如:

  • -c count:发送指定数量的 ARP 请求数据包后停止;
  • -I interface:指定发送 ARP 报文的网络接口;
  • -w timeout:设定超时时间(秒)。

典型的排查流程

  1. 主动探测:先用arping -I wlan0 <目标IP>确认某 IP 是否在线、MAC 是否变化;
  2. 查看缓存表:用arp -v查看当前缓冲区条目,发现异常映射;
  3. 持续监听:用arpwatch -i wlan0 -f <记录文件>长期记录 ARP 变化,捕捉"IP 不变、MAC 频繁更换"的欺骗特征。

例如,arp -v的输出(见 arp.md 实例)会显示类似:

Address HWtype HWaddress Flags Mask Iface 192.168.0.134 ether 00:21:5E:C7:4D:88 C eth1 115.238.144.129 ether 38:22:D6:2F:B2:F1 C eth0 Entries: 2 Skipped: 0 Found: 2

arpwatch则会在后台把这些"IP→MAC"对应关系的每一次新出现或变更持续记录下来,作为比缓冲区快照更完整的历史证据。

ZeroTermux 中的命令手册与查询实现

本文所讲解的arpwatch手册内容,来自 ZeroTermux 内置的 app/src/main/assets/cmd/arpwatch.md。该目录(app/src/main/assets/cmd)存放了数百个 Linux 命令的 Markdown 文档(如 arp.md、arping.md、arpd.md 等),构成了应用的"命令行搜索引擎"离线知识库。

从源码结构看,这些文档的加载与渲染由 CommandDialog.java 实现:代码中通过AssetManager.list("cmd")读取cmd目录下的全部命令文档(见 CommandDialog.java),并在showCmdDetail(String cmd)方法中,用assetManager.open(String.format("cmd/%s", cmd))打开对应 Markdown 文件,再借助 Markdown 解析器(Parser)与HtmlRenderer将文档渲染为 HTML 展示给用户(见 CommandDialog.java)。

这意味着:在 ZeroTermux 中,你无需记忆本文的所有细节——随时可以通过应用内置的"命令查询"功能直接阅读 arpwatch 手册,获得离线、实时的语法速查。

实际部署示例

场景一:在 Linux 服务器上监听默认接口

arpwatch -i eth0 -f /var/arpwatch/arp.dat

以守护进程方式监听eth0,记录写入默认路径。首次运行可先加-d验证:

arpwatch -d -i eth0 -f /var/arpwatch/arp.dat

场景二:在 ZeroTermux / Android 环境中监听无线接口

# 先确认活动接口名 ip link # 再指定实际接口并写入 Termux 可写路径 arpwatch -i wlan0 -f $HOME/arpwatch/arp.dat -d

注意:在 Android 上运行arpwatch受系统权限与抓包能力限制,能否生效取决于 Termux 所运行的内核与已授予的权限(如 root 或网络能力)。请以实际环境为准,先使用-d观察调试输出确认监听是否成功。

场景三:离线审计历史记录

arpwatch -r /var/arpwatch/arp.dat

从已有记录文件中读取数据进行分析,不进行实时抓包,适合对历史 ARP 事件做回溯取证。

常见问题与注意事项

  1. 监听接口不存在:默认接口为eth0,在无线网卡(wlan0)或 Android 环境中需用-i显式指定实际接口。
  2. 记录文件路径不可写:默认/var/arpwatch/arp.dat在 Termux 中往往不存在,请改用$HOME下可写目录。
  3. 权限不足:抓取二层 ARP 报文通常需要相应权限,权限不足时可用-d模式观察是否报错。
  4. 守护进程与排错模式的区别:不带-d时命令转入后台,日志与错误不易直接可见;排错期建议先加-d前台运行,确认无误后再去掉。
  5. 记录文件是增量追加:-f指定的文件会持续增长,长期运行需注意磁盘空间,并可配合日志轮转策略。

小结

arpwatch是 ARP 层网络监控的核心工具:它以-i指定监听接口、以-f指定记录文件、以-d进入排错模式、以-r回放历史记录。在 ZeroTermux 中,你可以通过内置命令查询功能随时查阅 arpwatch 手册,并结合 arp(查看/修改 ARP 缓存表)与 arping(主动探测)构成完整的 ARP 问题排查工具箱,用于 IP 冲突定位与 ARP 欺骗检测。

  • 移动开发
  • 开发工具

【免费下载链接】ZeroTermux

项目地址:https://gitcode.com/GitHub_Trending/ze/ZeroTermux
点击查看免费下载
上一篇:Salt bridge 执行模块实战指南:跨平台网桥管理与 STP 配置
下一篇:国家中小学智慧教育平台电子课本下载终极解决方案:一键获取PDF教材的智能工具

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!