arp 是什么
arp 命令用来查看和清理本机的 ARP 缓存——也就是同一网段内「IP 地址对应哪个 MAC 地址」的对照表。同一广播域内通信靠 MAC 寻址,主机会把学到(或别人回应)的映射缓存起来,因此这张表既是排障线索,也是攻击面:网关的 MAC 突然变了、同一个 MAC 对应多个 IP,都可能是异常的信号。
基本信息
| 适用平台 | Windows 全版本 CMD;仅适用于同一网段的 IPv4 解析 |
|---|---|
| 查看 | arp -a、arp -a 10.0.0.1(只看某一地址)、arp -a -N 192.168.1.10(指定接口) |
| 清理 | arp -d *(清空)、arp -d 10.0.0.1(删单条),需管理员权限 |
| 静态绑定 | arp -s 10.0.0.1 00-11-22-33-44-55(重启后失效) |
| PowerShell | Get-NetNeighbor、New-NetNeighbor、Remove-NetNeighbor |
| 权限要求 | 查看无需提权,增删需要管理员 |
典型使用场景
- 同网段不通:确认目标 IP 是否已解析出 MAC,判断问题出在二层还是三层以上
- IP 冲突排查:同一 IP 对应的 MAC 反复变化,往往说明有两台设备抢占
- 网关异常:核对网关 IP 的 MAC 与网络设备登记值是否一致
- 换口验证:设备换交换机端口后,确认本机缓存已更新到新的 MAC
- 缓存异常处理:改动网络设备后立即测试,先清缓存避免读到旧映射
常用示例
常用示例
arp -a # 列出所有接口的 ARP 缓存
arp -a 10.0.0.1 # 只看网关这一条
arp -a -N 192.168.1.10 # 指定接口(多网卡主机用)
arp -d 10.0.0.1 # 删除单条记录,触发重新学习
arp -d * # 清空缓存(需管理员)
arp -s 10.0.0.1 00-11-22-33-44-55 # 临时静态绑定,重启后失效
REM 需要重启后仍保留的静态邻居,用 netsh(持久)
REM netsh interface ipv4 add neighbors "以太网" 10.0.0.1 00-11-22-33-44-55
REM PowerShell 等价
REM Get-NetNeighbor -AddressFamily IPv4 | Where-Object State -ne 'Unreachable'输出逐列读法
| 列 | 含义 | 异常表现 |
|---|---|---|
| Internet 地址 | 已解析的 IP 地址 | 出现不属于本网段的地址属异常 |
| 物理地址 | 对应网卡 MAC | 同一 MAC 对应多个 IP,可能是伪造或二级设备 |
| 类型 | 动态(学到的)/ 静态(手工绑定)/ 无效 | 网关条目长期显示无效,说明解析失败 |
| 接口地址 | 解析发生的本机网卡 | 多网卡主机要确认是哪张卡在做解析 |
ARP 只在同一广播域内有意义:跨网段通信看的是路由与网关的 MAC,因此「ping 不通远端」时查 ARP 只能确认到网关这一跳是否正常。
动态条目有老化机制,长时间不用的记录会被清理;刚改完网络配置时立即测试可能读到旧映射,先清缓存或等待老化更可靠。
更多排查视角
更多排查视角
Get-NetNeighbor -AddressFamily IPv4 | Select-Object IPAddress, LinkLayerAddress, State # 状态更完整
Get-NetNeighbor -IPAddress 10.0.0.1 | Remove-NetNeighbor # 针对单条清理
Get-NetAdapter | Select-Object Name, MacAddress, Status # 本机各网卡 MAC
Get-CimInstance Win32_NetworkAdapter -Filter 'NetEnabled=True' | Select-Object Name, MACAddress # 网卡与 MAC 对照arp -d * 会清空整张缓存,短期内所有同网段通信都要重新解析,在远程会话里执行可能造成瞬断;网关 MAC 频繁变化时更要怀疑 ARP 欺骗类攻击,需结合交换机侧地址绑定与日志一起看。