【完美解决】正点原子Linux开发板无法联网ping通百度但可以ping通主机和虚拟机,联通了局域网但无法联通互联网,DNS配置问题

 问题记录

主机通过共享网络给以太网口想让正点原子的阿尔法Linux开发板连上网,网络配置过程如下:

开发板连接的是eth1口,通过在终端输入以下命令进入网络配置文件。

vi /etc/network/interfaces 

 将其配置为了以下地址

但是出现了一些问题,当我让开发板ping主机和Ubuntu虚拟机的网络地址时可以正常ping通,但是无法ping通百度和8.8.8.8,报错如下图所示:

root@ATK-IMX6U:~# ifdown eth1 && ifup eth1
[  718.367006] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[  718.473845] fec 2188000.ethernet eth1: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=20b4000.ethernet:02, irq=-1)
root@ATK-IMX6U:~# [  720.529332] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[  722.474234] fec 2188000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[  722.482120] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

root@ATK-IMX6U:~# ping 192.168.137.1
PING 192.168.137.1 (192.168.137.1) 56(84) bytes of data.
64 bytes from 192.168.137.1: icmp_seq=1 ttl=128 time=0.593 ms
64 bytes from 192.168.137.1: icmp_seq=2 ttl=128 time=0.657 ms
64 bytes from 192.168.137.1: icmp_seq=3 ttl=128 time=0.423 ms
64 bytes from 192.168.137.1: icmp_seq=4 ttl=128 time=0.498 ms
64 bytes from 192.168.137.1: icmp_seq=5 ttl=128 time=0.530 ms
^C
--- 192.168.137.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3996ms
rtt min/avg/max/mdev = 0.423/0.540/0.657/0.081 ms
root@ATK-IMX6U:~# ping 192.168.137.4
PING 192.168.137.4 (192.168.137.4) 56(84) bytes of data.
From 192.168.137.1: icmp_seq=1 Redirect Network(New nexthop: 192.168.137.4)
64 bytes from 192.168.137.4: icmp_seq=1 ttl=63 time=0.791 ms
64 bytes from 192.168.137.4: icmp_seq=1 ttl=64 time=0.817 ms (DUP!)
From 192.168.137.1: icmp_seq=2 Redirect Network(New nexthop: 192.168.137.4)
64 bytes from 192.168.137.4: icmp_seq=2 ttl=63 time=0.420 ms
64 bytes from 192.168.137.4: icmp_seq=2 ttl=64 time=0.447 ms (DUP!)
64 bytes from 192.168.137.4: icmp_seq=2 ttl=63 time=0.464 ms (DUP!)
64 bytes from 192.168.137.4: icmp_seq=2 ttl=64 time=0.482 ms (DUP!)
From 192.168.137.1: icmp_seq=3 Redirect Network(New nexthop: 192.168.137.4)
64 bytes from 192.168.137.4: icmp_seq=3 ttl=63 time=0.364 ms
64 bytes from 192.168.137.4: icmp_seq=3 ttl=64 time=0.389 ms (DUP!)
64 bytes from 192.168.137.4: icmp_seq=3 ttl=63 time=0.407 ms (DUP!)
64 bytes from 192.168.137.4: icmp_seq=3 ttl=64 time=0.426 ms (DUP!)
^HFrom 192.168.137.1: icmp_seq=4 Redirect Network(New nexthop: 192.168.137.4)
64 bytes from 192.168.137.4: icmp_seq=4 ttl=63 time=0.376 ms
64 bytes from 192.168.137.4: icmp_seq=4 ttl=64 time=0.402 ms (DUP!)
64 bytes from 192.168.137.4: icmp_seq=4 ttl=63 time=0.420 ms (DUP!)
64 bytes from 192.168.137.4: icmp_seq=4 ttl=64 time=0.439 ms (DUP!)
^H^C
--- 192.168.137.4 ping statistics ---
4 packets transmitted, 4 received, +10 duplicates, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.364/0.474/0.817/0.140 ms
root@ATK-IMX6U:~# ping www.baidu.com
ping: unknown host www.baidu.com
root@ATK-IMX6U:~# ping www.baidu.com
ping: unknown host www.baidu.com
root@ATK-IMX6U:~# ./app_main
This is a SmartHome Demo!
ds_ui_page_thread created successfully
humi_arc created successfully: 0x3b65a0
aiot_mqtt_connect failed: -0x0F0B

please check variables like mqtt_host, produt_key, device_name, device_secret in demo
net_mqtt_aliyun_init failed.
root@ATK-IMX6U:~# ./app_main
This is a SmartHome Demo!
ds_ui_page_thread created successfully
aiot_mqtt_connect failed: -0x0F0B

please check variables like mqtt_host, produt_key, device_name, device_secret in demo
net_mqtt_aliyun_init failed.
root@ATK-IMX6U:~# ./app_main
This is a SmartHome Demo!
ds_ui_page_thread created successfully
aiot_mqtt_connect failed: -0x0F0B

please check variables like mqtt_host, produt_key, device_name, device_secret in demo
net_mqtt_aliyun_init failed.
root@ATK-IMX6U:~# ping 8.8.8.
ping: unknown host 8.8.8.
root@ATK-IMX6U:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.137.10 icmp_seq=1 Destination Host Unreachable
From 192.168.137.10 icmp_seq=2 Destination Host Unreachable
From 192.168.137.10 icmp_seq=3 Destination Host Unreachable
From 192.168.137.10 icmp_seq=4 Destination Host Unreachable
From 192.168.137.10 icmp_seq=5 Destination Host Unreachable
From 192.168.137.10 icmp_seq=6 Destination Host Unreachable
^C
--- 8.8.8.8 ping statistics ---
7 packets transmitted, 0 received, +6 errors, 100% packet loss, time 6002ms
pipe 3
root@ATK-IMX6U:~#
可以看到可以ping通主机和Ubuntu,但是ping 8.8.8.8和百度就有问题

解决问题 

通过chatgpt知道了当前的情况是局域网内的连接正常,但无法连接到互联网。这通常与路由或DNS设置有关。发现的确是DNS没有设置不导致无法解析域名的问题。

所以检查并配置 /etc/resolv.conf 文件,通过命令:

nano /etc/resolv.conf

然后在其中添加

nameserver 8.8.8.8
nameserver 8.8.4.4

再重启一下网络

ifdown eth1 && ifup eth1

再尝试ping了8.8.8.8和baidu,问题解决。

永久解决/etc/resolv.conf重启失效问题

删除原有的文件重新建立一个

sudo rm -f /etc/resolv.conf
sudo nano /etc/resolv.conf

#填写上指定的DNS服务器:
nameserver 8.8.8.8
nameserver 8.8.4.4

此时resolv.conf文件的内容就会被锁定不会被重启覆盖

chattr +i /etc/resolv.conf

想要解锁的话运行:

chattr -i /etc/resolv.conf

复位重启后cat下resolv.conf,发现确实没有被修改,也可以正常ping通百度,nice!!!

 

结尾

希望能够帮助到大家解决这个问题,欢迎点赞收藏关注一波,如果无法解决也可以留言,或者也可以提供其他方法供其他小伙伴参考!!!

### 可能的原因分析 在网络配置过程中遇到 `root@ATK-IMX6U` 无法成功 ping 到 Ubuntu 的情况可能由多种因素引起。以下是几种常见的原因及其解决方案: #### 1. IP 地址冲突或错误配置 如果开发板主机之间的IP地址不在同一网段内,则可能导致信失败。确保所有设备都在相同的子网中,并且没有重复的IP地址。 #### 2. 防火墙阻止 ICMP 请求 防火墙可能会拦截来自外部源的ICMP请求,从而导致ping命令返回超时信息。可以临时关闭防火墙来排除这种可能性[^1]。 ```bash sudo ufw disable ``` #### 3. NAT 网络模式下的端口映射未设置 当采用NAT方式连接互联网时,外网设备默认情况下是看不见内部局域网中的计算机(如Ubuntu)。因此需要正确地配置端口转发规则以便让其他机器能够访问到目标服务器上的服务[^2]。 #### 4. USB 或者以太网接口状态异常 确认用于联网的USB转Ethernet适配器是否正常工作以及相应的网络接口(usb0)已经启动并获得了有效的IPv4地址[^3]. --- ### 推荐的操作流程 为了更好地排查具体问题所在,建议按照以下顺序逐步验证各项条件: * **检查物理层连接** * 使用电缆直接将两台设备相连; * 查看指示灯显示状况; * **核实各节点间的路由可达性** * 执行 `ip route show` 命令查看当前系统的静态/动态路由表项; * **测试单播包传输能力** * 尝试向已知可到达的目的地发送数据报文(`ping`); * **调整虚拟机网络类型至桥接模式** * 如果之前是在NAT环境下运行的话,那么切换成Bridge Adapter有助于简化拓扑结构,使得不同平台间更容易互相发现彼此的存在[^4]; 最后再次强调,在实施上述措施之后仍然存在障碍的情况下,请务必仔细核对每一步骤的结果反馈并与预期相符,必要时借助抓包工具进一步深入探究潜在瓶颈环节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值