一、什么是ARP转发
ARP(地址解析协议)负责将IP地址转换为MAC地址,是局域网通信的基础。在Linux系统中,"ARP转发"实际指的是代理ARP功能------当ARP请求的目标IP不属于本地网络时,Linux主机可以代理响应,实现跨网段通信。

这与常规的IP数据包转发(IP Forwarding)不同,ARP转发工作在数据链路层的MAC地址解析阶段。
二、代理ARP的工作原理
当主机A想与不同网段的主机B通信时,通常需要网关转发。如果Linux开启了代理ARP,它会做两件事:
-
监听ARP请求:当收到目标IP不是自己网卡的ARP广播时
-
代理响应:用自己的MAC地址回应,让请求方认为Linux就是目标主机
-
自动添加记录:Linux会为转发地址自动添加一条非永久的代理ARP记录
这样,所有发往目标IP的数据包都会先发给Linux,再由它通过IP转发机制送达到真实目标。
三、配置方法
- 开启IP转发(必须)
```bash
echo 1 > /proc/sys/net/ipv4/ip_forward
```
- 开启指定网卡的代理ARP
```bash
临时开启
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
永久开启(编辑/etc/sysctl.conf)
net.ipv4.conf.all.proxy_arp = 1
sysctl -p
```
- 验证配置
```bash
查看ARP缓存表
arp -n
监控ARP请求
tcpdump -i eth0 arp
```
四、代理ARP的应用场景
| 场景 | 说明 |
|------|------|
| 无线到有线桥接 | 连接无线客户端到有线网络,避免二层桥接的限制 |
| 透明防火墙 | 在不改动网络拓扑的情况下插入防火墙 |
| VPN网关 | 让远程客户端看起来像在本地局域网中 |
五、专用工具:parprouted
parprouted是实现代理ARP路由的专用守护进程,适合将WiFi和以太网互通:
```bash
parprouted wlan0 eth0
```
它会自动监听ARP请求、转发到其他接口、动态添加路由,实现透明三层桥接。
一句话总结:代理ARP让Linux主机冒充目标设备的"替身"------回应ARP请求、接收数据包、再通过IP转发送到真实目的地,是实现无线-有线跨介质网络互通的利器。也可以用80km无痕网关是一款隐藏真实IP、加速访问、节省成本的网络转发工具。通过跳板服务器中转流量,保护后端业务服务器安全。