电脑能ping开发板,开发板不能ping电脑的解决方法:
从开发板的 ping 结果来看,开发板自身网络正常,但与电脑仍存在单向通信阻断,具体分析和解决方法如下:
一、结果解读:明确问题边界
ping 172.20.10.3
(开发板 ping 自身):100% 接收成功,延迟极低(0.193-0.330ms),说明开发板的wlan0
网卡硬件正常、IP 配置有效,自身网络栈无问题。ping 172.20.10.2
(开发板 ping 电脑):83 个数据包全丢包(100% packet loss
),结合之前 “电脑能 ping 通开发板” 的结果,可确定是 “电脑拦截了开发板发送的 ping 请求”(单向阻断)。
二、核心原因:电脑防火墙的 “入站 ICMP 规则” 未放开
电脑能主动 ping 通开发板(电脑 → 开发板的 ping 请求是 “出站”,防火墙默认允许),但开发板 ping 电脑时,电脑需处理 “入站” 的 ping 请求(ICMP 回显请求),若防火墙未允许该类型请求,就会直接丢弃数据包,导致开发板收不到回应。
解决步骤(Windows 系统,必看):
按以下步骤配置电脑防火墙,允许开发板的 ping 请求入站:
打开防火墙高级设置:按下
Win + R
,输入wf.msc
回车,打开 “高级安全 Windows Defender 防火墙”。新建 “入站规则”:
- 左侧点击 “入站规则”,右侧点击 “新建规则”。
- 规则类型选择 “自定义”,点击 “下一步”。
- 协议类型选择 “ICMPv4”(ping 基于 ICMPv4 协议),点击 “下一步”。
- “特定 ICMP 类型” 勾选 “回显请求”(即开发板发送的 ping 请求类型),点击 “下一步”。
- 远程 IP 地址选择 “特定 IP 地址” → “添加” → 输入开发板 IP
172.20.10.3
(只允许开发板 ping,更安全),点击 “下一步”。 - 操作选择 “允许连接”,点击 “下一步”。
- 适用网络类型保持默认(域、专用、公用均勾选),点击 “下一步”。
- 规则名称填写 “允许开发板 ping 电脑”,点击 “完成”。
测试效果:规则生效后,在开发板重新执行
ping 172.20.10.2
,此时应能收到电脑的回应(显示 “64 bytes from 172.20.10.2: ...”)。
三、补充说明:即使暂不解决,也不影响核心开发场景
若暂时不需要开发板主动 ping 电脑,仅需电脑访问开发板(如 SSH 登录、文件传输),则当前状态完全够用 —— 因为:
- 电脑 → 开发板的通信已通(电脑能 ping 通开发板,也能通过 SSH 连接
172.20.10.3
)。 - 开发板 → 电脑的单向阻断,仅影响 “开发板主动发起的请求”(如开发板向电脑传日志、访问电脑上的服务),不影响电脑主动发起的操作。
总结
问题根源是电脑防火墙拦截了入站的 ICMP 回显请求,按步骤新建入站规则即可彻底解决。若当前开发场景以 “电脑访问开发板” 为主,也可暂不处理,不影响核心开发流程。