您的当前位置:首页正文

LINUX:错误“Could not resolve host: mirrors.aliyun.com; Unknown error“

2024-11-06 来源:个人技术集锦

前提:使用SSH连接虚拟机

           操作系统镜像版本:CentOS-7-x86_64-Minimal-2207-02

#Linux  Centos 7.9.2009
minorver=7.9.2009
sudo sed -e "s|^mirrorlist=|#mirrorlist=|g" \
         -e "s|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=https://mirrors.aliyun.com/centos-vault/$minorver|g" \
         -i.bak \
         /etc/yum.repos.d/CentOS-*.repo

       

错误

该错误产生的原因:DNS 服务器配置

                                 系统无法解析域名
[root@localhost ~]# yum -y install wget
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
https://mirrors.aliyun.com/centos-vault/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirrors.aliyun.com; Unknown error"
Trying other mirror.


 One of the configured repositories failed (CentOS-7 - Base),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=base ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable base
        or
            subscription-manager repos --disable=base

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=base.skip_if_unavailable=true

failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.
https://mirrors.aliyun.com/centos-vault/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirrors.aliyun.com; Unknown error"

 

解决方法

下面是一些常见的中国公共 DNS 服务器:

- 阿里公共 DNS:
  - 223.5.5.5
  - 223.6.6.6

- 百度公共 DNS:
  - 180.76.76.76

- 114 DNS:
  - 114.114.114.114
  - 114.114.115.115

编辑 `/etc/resolv.conf` 文件来使用这些 DNS 服务器。

1. 打开 `/etc/resolv.conf` 文件:

vi /etc/resolv.conf

2. 添加以下内容:

nameserver 223.5.5.5
nameserver 223.6.6.6
nameserver 180.76.76.76
nameserver 114.114.114.114
nameserver 114.114.115.115

3. 保存并退出文件。

4. 检查 DNS 配置是否生效:

nslookup baidu.com

如果能够正常解析域名,说明 DNS 配置已经生效。

5. 如果你希望这些设置永久生效,可以考虑锁定 `/etc/resolv.conf` 文件防止被 DHCP 客户端覆盖:

chattr +i /etc/resolv.conf

请注意,锁定文件可能会影响到系统的其他网络配置操作。如果需要修改 DNS 配置,可以先解锁:

chattr -i /etc/resolv.conf

尝试以上步骤后,你的系统应该能够正常解析域名并连接到软件源。

显示全文