记录Linux下ping外网失败的问题

最近在RK3568上进行开发测试,需要测试一下网络环境,能否通过浏览器访问外部网络。测试情况如下:

1、ping内网、网关ip能ping通

2、ping外网ping不通

情况分析:

1、ping外网失败(ping 8.8.8.8也ping不通,说明不是dns域名解析的问题)

2、通过ifconfig命令查看网络配置,可以看到有两个网络接口

其中eth5走内网,通过网线与ipc摄像头直接连接

eth3走外网,连接公司的交换机,能通外网

3、以下文章中的描述和我目前的情况类似,于是猜测可能是因为有多个网卡而存在多个默认网关导致访问外部网络时所使用的网关不明确

在Linux系统中,双网卡或多网卡上网并不会同时使用两者同时上网,只会优先把请求发送到优先级高的默认网关(对应网卡的内网网段除外)。插入多个网卡的时候,路由表中就会存在多个默认网关 ,访问外部网络的时候,系统根据路由原则,Metric值小的网卡优先级高,会优先使用该网卡上网。------ Linux网卡优先级配置及同时访问内外网设置 - 轶哥

这篇文章也有描述类似的问题:Linux双网卡默认路由优先级设置不正确,导致网络不通问题定位_metric 101-CSDN博客

4、通过ip route命令查看系统的路由表

解释:

default:默认路由(用于访问外网)

via:下一跳(网关 IP)

可以看到确实存在两个默认路由(有两个default),而192.168.1.1走的是内网(连接了ipc摄像头),所以可能就是因为在ping外网时使用了内网网关导致ping失败

5、于是通过命令sudo ip route del default via 192.168.1.1 dev eth4删除192.168.1.1所在路由(因为该路由只是用于连接ipc摄像机,不需要用来访问外网,所以可以删除),删除后再尝试ping外网,这次能ping通了

(路由的作用就是用来实现不同子网之间的通信,192.168.1.1所在路由只是连接了ipc摄像头所以不能访问其他网络,可以删除)

6、为什么存在两个默认路由?

在我的系统中配置了两个网络接口,一个网口(eth3)接的网线,能访问外部网络;另一个网口(eth5)连接的是ipc摄像头,属于局域网。接网线的网口自动分配了默认路由,而ipc摄像头的我是配置了静态ip,配置文件/etc/network/interfaces如下:

因为配置了GateWay网关,所以会自动生成默认路由。

在上面通过sudo ip route del default via 192.168.1.1 dev eth4删除路由后,reboot重启后还是会重新生成默认路由,需要在/etc/network/interfaces文件中把GateWay注释掉,这样就不会生成默认网关了

相关推荐
爱写代码的森7 小时前
鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解
服务器·华为·harmonyos·鸿蒙·huawei
REDcker8 小时前
显示分辨率标准对照详解
前端·网络·分辨率·显示·屏幕
ANSIOT9 小时前
安朔科技蓝牙无感开锁方案,靠近自动解锁
网络·科技·物联网
晏宁科技YaningAI10 小时前
VoIP系统的工程实现模型:从信令控制到媒体传输的完整架构解析
网络·人工智能·架构·系统架构·信息与通信
HLC++10 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室11 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
白露与泡影12 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
神奇霸王龙13 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程
Web极客码13 小时前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress
groundhappy14 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python