You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨树莓派双网卡组网:PC与RPi-2无法互Ping,请求技术排查

解决RPi-2与PC跨子网Ping不通的问题

当前环境与问题梳理

先把你的组网、排查情况和关键信息整理清楚:

组网拓扑

  • PC(以太网) ↔ raspberrypi(以太网)
  • raspberrypi(无线) ↔ RPi-2(无线)

核心问题

RPi-2和PC互相Ping不通,但以下连通性是正常的:

  • PC能Ping通raspberrypi的以太网(192.168.137.254)和无线网卡(10.1.1.254)
  • RPi-2也能Ping通raspberrypi的两块网卡
  • PC已经关闭了防火墙

最新关键线索:raspberrypi不回复ARP请求,这是导致通信失败的核心疑点。

IP信息汇总

  • PC.eth:192.168.137.1
  • raspberrypi.eth:192.168.137.254
  • raspberrypi.wlan:10.1.1.254
  • RPi-2.wlan:10.1.1.4

问题根源分析

从IP段就能看出,PC在192.168.137.0/24子网,RPi-2在10.1.1.0/24子网,属于不同网段。raspberrypi作为两个子网的连接点,必须开启IP转发才能让跨网段流量通行;而它不回复ARP请求,很大概率是因为IP转发未开启,或者ARP代理功能缺失,导致跨网段的ARP请求无法被正确处理。

分步解决方案

1. 开启raspberrypi的IP转发(核心前提)

树莓派默认关闭IP转发,这是跨子网通信的基础:

  • 临时开启(重启后失效,先用于测试):
    sudo sysctl -w net.ipv4.ip_forward=1
    
  • 永久开启(修改配置文件,重启也生效):
    编辑/etc/sysctl.conf,找到net.ipv4.ip_forward=1这一行,去掉前面的注释符号#,然后执行:
    sudo sysctl -p /etc/sysctl.conf
    

2. 开启ARP代理解决ARP不回复问题

由于PC和RPi-2不在同一子网,raspberrypi需要充当ARP代理,才能转发并回复跨网段的ARP请求:

  • 临时开启两块网卡的ARP代理:
    sudo sysctl -w net.ipv4.conf.eth0.proxy_arp=1
    sudo sysctl -w net.ipv4.conf.wlan0.proxy_arp=1
    
  • 永久生效:把上面两行添加到/etc/sysctl.conf末尾,再执行sudo sysctl -p。

3. 给PC和RPi-2配置静态路由

即使raspberrypi开启了转发,PC和RPi-2也需要明确“访问对方子网的流量要发往raspberrypi”:

  • PC端(Windows系统)配置静态路由:
    以管理员权限打开命令提示符,执行:

    route add 10.1.1.0 mask 255.255.255.0 192.168.137.254 -p
    

    参数-p用于让路由规则永久生效,重启PC不会丢失。

  • RPi-2端配置静态路由:
    临时添加路由:

    sudo ip route add 192.168.137.0/24 via 10.1.1.254 dev wlan0
    

    永久生效:编辑/etc/dhcpcd.conf,添加一行:

    static route=192.168.137.0/24/10.1.1.254
    

    然后重启dhcpcd服务:sudo systemctl restart dhcpcd

4. 检查raspberrypi的防火墙规则

虽然PC关闭了防火墙,但raspberrypi自身的iptables规则可能拦截了跨子网流量或ARP请求:

  • 查看当前iptables规则:
    sudo iptables -L -n
    
  • 临时清空规则测试(测试后如果正常,再重新配置合规的规则):
    sudo iptables -F
    sudo iptables -X
    sudo iptables -t nat -F
    sudo iptables -t nat -X
    sudo iptables -P INPUT ACCEPT
    sudo iptables -P FORWARD ACCEPT
    sudo iptables -P OUTPUT ACCEPT
    

验证步骤

配置完成后,按以下顺序确认效果:

  1. 在raspberrypi上执行sysctl net.ipv4.ip_forward,确认输出为net.ipv4.ip_forward = 1
  2. 在PC上Ping 10.1.1.4,同时在raspberrypi上抓包查看流量:
    sudo tcpdump -i eth0 arp or icmp
    sudo tcpdump -i wlan0 arp or icmp
    
    观察是否有ARP请求和ICMP包的转发记录
  3. 反过来在RPi-2上Ping 192.168.137.1,同样抓包验证流量是否正常经过raspberrypi。

内容的提问来源于stack exchange,提问作者stepj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:10:20