arp 命令

arp

[功能]

管理系统的arp缓存, 可以用来添加 IP+物理地址的困拌

显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。

[描述]

用来管理系统的arp缓存,常用的命令包括:

arp: 显示所有的表项。

arp  -d  address: 删除一个arp表项。

arp  -s address hw_addr: 设置一个arp表项。

常用参数:

-a 使用bsd形式输出。(没有固定的列)

-n 使用数字形式显示ip地址,而不是默认的主机名形式。

-D 不是指定硬件地址而是指定一个网络接口的名称,表项将使用相应接口的MAC地址。一般用来设置ARP代理。

-H type, --hw-type type: 指定检查特定类型的表项,默认type为ether,还有其他类型。

-i If, --device If: 指定设置哪个网络接口上面的arp表项。

-f filename: 作用同'-s',不过它通过文件来指定IP地址和MAC地址的绑定。文件中每行分别是主机和MAC,中间以空格分割。如果没有指定文件名称,则使用/etc/ethers文件。

[举例]

*查看arp表:

#arp
Address                  HWtype  HWaddress           Flags Mask            Iface
hostname1                ether   44:37:e6:97:92:16   C                     eth0
hostname2                ether   00:0f:fe:43:28:c5   C                     eth0
hostname3                ether   00:1d:92:e3:d5:ee   C                     eth0
hostname4                ether   00:1d:0f:11:f2:a5   C                     eth0 
这里,Flags中的"C"代表此表项目是高速缓存中的内容,高速缓存中的内容过一段时间(一般20分钟)会清空,而"M"则表示静态表项,静态表项的内容不会过一段时间被清空。

*查看arp表,并且用ip显示而不是主机名称:

# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
10.1.10.254              ether   00:1d:92:e3:d5:ee   C                     eth0
10.1.10.253              ether   44:37:e6:9b:2c:53   C                     eth0
10.1.10.178              ether   00:1b:78:83:d9:85   C                     eth0
10.1.10.119              ether   00:1d:0f:11:f2:a5   C                     eth0 
这里,对于上面的条目,假设当我们"ping 10.1.10.1"通过之后,arp中会多一条"10.1.10.1"相关的信息。

*查看arp表,显示主机名称和ip:

#arp -a
ns.amazon.esdl.others.com (10.1.10.254) at 00:1d:92:e3:d5:ee [ether] on eth0
server.amazon.eadl.others.com (10.1.10.253) at 44:37:e6:9b:2c:53 [ether] on eth0
D2-baijh.amazon.esdl.others.com (10.1.10.178) at 00:1b:78:83:d9:85 [ether] on eth0
aplab.local (10.1.10.119) at 00:1d:0f:11:f2:a5 [ether] on eth0 
*添加一对IP和MAC地址的绑定

# arp -s 10.1.1.1 00:11:22:33:44:55:66

这里,如果网络无法达到,那么会报告错误,具体如下:

root@quietheart:/home/lv-k# arp -s 10.1.1.1 00:11:22:33:44:55:66
SIOCSARP: Network is unreachable
root@quietheart:/home/lv-k# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
10.1.10.254              ether   00:1d:92:e3:d5:ee   C                     eth0
10.1.10.253              ether   44:37:e6:9b:2c:53   C                     eth0
10.1.10.178              ether   00:1b:78:83:d9:85   C                     eth0
10.1.10.119              ether   00:1d:0f:11:f2:a5   C                     eth0 
实际上,如果"arp -s"设置成功之后,会增加一个Flags为"CM"的表项,有些系统静态条目不会因为ARP响应而更新,而高速缓存中的条目会因此而更新。如果想要手工设置没有"M",那么用"temp"选项,例如:"arp -s IP MAC temp"类似的命令,实践发现,如果已经设置过IP了,那么再设置也不会改变其Flags。

 *删除一个arp表项:

# arp -d 10.1.10.118

这里,删除之后只是硬件地址没有了,如下:

root@quietheart:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
10.1.10.118              ether   00:25:9c:c2:79:90   CM                    eth0
10.1.10.254              ether   00:1d:92:e3:d5:ee   C                     eth0
root@quietheart:~# arp -d 10.1.10.118
root@quietheart:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
10.1.10.118                      (incomplete)                              eth0
10.1.10.254              ether   00:1d:92:e3:d5:ee   C    
*删除eth0上面的一个arp表项

# arp -i eth0 -d 10.1.10.118

[其它]

*指定回复的MAC地址:

#/usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub

当eth0收到IP地址为10.0.0.2的请求时,将会用eth1的MAC地址回答。

例如,双网卡机器运行这条命令:

/usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub 
会多一项:

10.0.0.2                 *       <from_interface>    MP                    eth0


### ARP 命令的格式及用法 #### 一、ARP 命令简介 ARP(Address Resolution Protocol)用于将 IP 地址解析为物理地址(MAC 地址)。在 Linux 和 Windows 系统中,`arp` 是一种常用的命令行工具,允许管理员管理系统的 ARP 缓存表[^1]。 --- #### 二、ARP 命令的基本语法 ARP 命令的一般格式如下: ```bash arp [-a] [-g] [[-v] [-N <netif>] [-i <iface>] [-d] [<hostname>|<addr>]]... ``` 具体参数说明见下文描述。 --- #### 三、常见功能与用法 ##### 1. 查看 ARP 缓存 使用以下命令可以显示当前系统中的 ARP 缓存条目: ```bash arp -a ``` 该命令会列出所有已知的 IP-MAC 映射关系。例如: ``` ? (192.168.1.1) at 00:1A:C5:D4:E7:F8 [ether] on eth0 ``` 此处 `(192.168.1.1)` 表示目标主机的 IP 地址,而 `00:1A:C5:D4:E7:F8` 则为其对应的 MAC 地址[^1]。 ##### 2. 显示详细信息 为了获得更详细的输出,可以在 `-a` 参数基础上增加 `-v` 开关: ```bash arp -av ``` 这不仅展示常规记录,还会附带一些额外属性,比如超时时间等[^2]。 ##### 3. 添加静态 ARP 条目 有时需要手动定义固定的 IP 至 MAC 关联以防动态更新覆盖重要数据。可通过下面的方式实现这一点: ```bash sudo arp -s <IP_address> <MAC_address> ``` 例如: ```bash sudo arp -s 192.168.1.100 00:AA:BB:CC:DD:EE ``` 这样就创建了一条永久性的映射规则。 ##### 4. 删除指定条目的 ARP 记录 当不再需要某些特定设备的信息或者想重新初始化其关联时,可以用 `-d` 参数清除对应项: ```bash sudo arp -d <IP_address> ``` 如: ```bash sudo arp -d 192.168.1.100 ``` ##### 5. 批量导入 ARP 配置 除了逐一手动输入外,还可以借助外部文件批量加载多个绑定关系。假设有一个名为 `arplist.txt` 的文档内容形似如此: ``` 192.168.1.101 00:FF:A1:B2:C3:D4 192.168.1.102 11:GG:H1:I2:J3:K4 ``` 那么只需执行单次操作即可完成全部新增动作: ```bash sudo arp -f /path/to/arplist.txt ``` 默认情况下,如果没有指明路径名,则程序会自动尝试读取 `/etc/ethers` 文件作为源材料[^2]。 ##### 6. 清空整个 ARP 缓存 如果希望一次性移除所有的现存条目而非逐一挑选的话,可采用这种方法: ```bash sudo ip neigh flush all ``` 注意这里并非直接调用了传统意义上的 `arp` 实用程序而是利用现代替代品之一即 `iproute2` 工具集的一部分成员来进行相同任务[^3]。 --- #### 四、跨平台差异对比 虽然大多数 UNIX 类操作系统支持类似的选项集合,但是微软旗下的 Windows 平台却有着自己独特的风格设计思路。例如,在后者当中不存在所谓的 “静态模式” 支持;另外删除指令也有所区别——需要用到单独子句形式表达而不是简单标志字符组合而成的结果[^3]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值