树莓派搭配4G dongle可ping通8.8.8.8但其他IP不通故障问询
可能的根本原因
- 4G dongle的MTU配置不匹配:PPP默认MTU通常为1500,但部分运营商/4G dongle硬件会直接丢弃超过阈值(常见为1492及以下)的数据包,8.8.8.8的默认ICMP包总大小仅84字节远低于阈值所以能通,但大部分公网业务包/返回包更大,无法分片导致全量丢包。
- 当前4G dongle对应的SIM卡被运营商做了权限限制:部分物联网卡/定向流量卡仅开放DNS(53端口)和少数测试IP的访问权限,其余公网访问全部被拦截,刚好8.8.8.8在运营商白名单内所以能通。
- 4G dongle硬件本身存在TX/RX通路故障:下行接收小包、上行发送小包正常,但大包传输时出错,导致除了小包ICMP和DNS查询外其余流量全部失败。
- 系统存在隐性防火墙规则:虽然路由表正常,但iptables规则对非8.8.8.8、非53端口的流量做了DROP操作,仅放通了DNS和ping 8.8.8.8的流量。
- 运营商侧PPP会话参数异常:当前SIM卡对应的PPP会话被分配了错误的QoS规则,限制了上下行流量的类型,仅允许小包传输。
定位根因的测试方法
- 验证MTU配置:执行
ping -s 1472 -M do 8.8.8.8,如果出现丢包,逐步减小-s后的数值直到能通。正常MTU=1500的环境下1472(ICMP数据长度)+28(ICMP+IP头)=1500可以正常通信,如果最大能通的数值远小于1472,即可确认是MTU不匹配问题。 - 验证端口限制:执行
nc -zv 8.8.8.8 443,如果连接失败,再执行nc -zv 8.8.8.8 53,如果53端口能通、443等其他端口不通,说明是运营商做了端口访问限制。 - 交叉验证硬件:把当前故障的4G dongle插到正常的树莓派上测试,把正常的4G dongle插到故障的树莓派上测试,即可确认是dongle硬件问题还是树莓派系统配置问题。
- 检查防火墙规则:执行
iptables -L -n -v、ip6tables -L -n -v查看所有规则,确认是否存在针对非53端口、非8.8.8.8的DROP规则。 - 抓包分析流量:执行
tcpdump -i ppp0同时发起ping公网IP的请求,查看数据包是否正常从ppp0发出、是否有返回包,如果只有发出的包没有返回包,问题出在运营商侧或者dongle硬件。
解决方案
- 若为MTU不匹配:修改PPP配置文件,设置
mtu 1400 mru 1400,重启PPP服务后重试即可。 - 若为运营商权限限制:联系SIM卡提供商确认卡的访问权限,更换普通流量卡或者申请放开访问限制。
- 若为dongle硬件故障:更换同型号的4G dongle即可解决。
- 若为防火墙规则问题:删除对应的DROP规则,或者添加允许所有公网访问的ACCEPT规则。
- 若为运营商PPP会话异常:断开PPP连接重新拨号,或者重启4G dongle重新注册网络,若仍无法解决联系运营商排查后台会话配置。
内容的提问来源于stack exchange,提问作者zhangwei
相关产品推荐
相关产品推荐

