openEuler无法访问外网的排查顺序与一种解决办法

1 背景

通过VMWare打开一个OpenEuler系统镜像,想要install工具时却报错

OS
Errors during downloading metadata for repository 'OS':
- Curl error(6) Couldn't resolve host name for https://mirrors.openeulers.org/metalink?repo=22.03LTS_SP3/OS&arch=x86_64 [Could not resolve host: mirrors.openeuler.org]
- Curl error(6) Couldn't resolve host name for http://repo.openeuler.org/openEuler-22.03-LTS-SP3/OS/x86_64/repodata/repomd.xml [Could not resolve host: mirrors.openeuler.org]
Error: Failed to download metadata for repo 'OS': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

2 排查

通过错误信息能看出来可能是前往软件仓库时,无法对域名进行解析,所以要么时网络的配置问题,要么是DNS的问题。我们从这两方面逐步排查:

2.1 网络连接

  • 先看VMWare的网络适配器是否配置正确
    VMware 里,虚拟机有多种网络模式,像桥接模式、NAT 模式、仅主机模式等。如果有访问外网的需求,确保配置是桥接或者NAT。
    在这里插入图片描述

配置完,测一下网络连通性

ping baidu.com

如果成功则OK,否则继续。

  • 系统内检查网络连接是否正确
ifconfig -a

查看网络接口是否是UP状态
在这里插入图片描述

一开始忘记截图了,所以看到是没有IP的状态,上方<>中体现的是UP状态(诡异的是没有IP信息)

这里如果没有UP,就手动启用一下

ip link set defv ens33 up

或者

ifconfig ens33 up

这里的ens33需要根据大家自己ifconfig里看到的接口来设置。
配置了还是不行则继续。

  • 手动进行DNS配置
    修改DNS配置文件,查看/etc/resolv.conf
cat /etc/resolv.conf

看看nameserver是什么,如果是 192.168.9.1 这种说明虚拟机使用的是本地网络中的DNS服务器。可以尝试手动把该地址修改为8.8.8.8(Google)或223.5.5.5(阿里云)

vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 223.5.5.5

再次尝试ping,通过则OK,否则继续。

虚拟机的网络配置和DNS修改后都没用,基本说明不是这两个方面的问题。

  • 防火墙
    还有一种可能性是防火墙的问题,通过
systemctl status firewalld

看一下防火墙状态,如果是active就关掉再试一次

systemctl stop firewalld

如果还是ping不通,继续找方法。(一般来说不建议把防火墙关掉)

  • 前面的方法都试完还是没有解决
    这个时候想起来前面ifconfig展示的结果比较奇怪,没有显示IP地址,说明配置可能并不是完全正确。我们可以用其他方式看一下网络连接状态
nmcli device status

这个时候突然发现,我们的ens33接口居然是disconnected状态,这说明这个接口目前并没有成功连接上,接下来就去查看一下网络接口的配置文件是否正确。

cd /etc/sysconfig/network-scripts/
ls

接下来就发现了问题,通过ifconfig看到的接口是ens33,但是该文件夹下没有这个配置,而是ifcfg-enp0s3,打开后看到文件内DEVICENAME也配置的是enp0s3,很可能就是这个问题导致网络连接失败。

尝试创建一个能和本地ens33接口对应的配置文件。

先备份原配置文件防止出错无法回滚。

cp /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-enp0s3.bak

重命名配置文件

mv /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-ens33

修改配置文件内容

vi /etc/sysconfig/network-scripts/ifcfg-ens33

将文件中找到NAMEDEVICE字段(如果存在),将其值修改为ens33,示例如下:

NAME=ens33
DEVICE=ens33

保存并退出编辑器。然后重启网络服务

systemctl restart NetworkManager

再次ping,发现ping成功了。通过nmcli查看状态也连接上了:
在这里插入图片描述

至此这个问题得到解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值