Couldn't resolve host或者Name or service not known

本文介绍了解决Linux系统中域名解析失败的方法,主要通过编辑/etc/resolv.conf文件并指定DNS服务器来解决yum安装软件包、ping域名等操作时出现的域名解析错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



先入为主-所解决问题

此问题可能出现在:

1.yum 命令安装或其他会上网的操作时

2.ping 域名时

3.含有解析域名的其它操作

问题重现


1.yum安装时报错:Errno 14 Couldn't resolve host

因为使用的yum源是163的,但是报错,解析不了域名。

2.ping www.baidu.com时

看错误提示可知域名服务未知,也可理解为不能解析域名。查看配置:cat /etc/resolv.conf

啥都没有。

/etc/resolv.conf文件中


解决


在/etc/resolv.conf中加入一行

nameserver 8.8.8.8
即可解决


也有朋友说:

CentOS 7下不直接修改/etc/resolv.conf,使用systemctl restart NetworkManager命令,会根据/etc/sysconfig/network-scripts/ifcfg-eth0自动生成etc/resolv.conf

这个对于我就行不通,首先因为我的/etc/sysconfig/network-scripts/ifcfg-eth0不存在,因为我的网卡配置文件在ifcfg-ens33中,并且使用systemctl restart NetworkManager命令是根据ifcfg-ens33配置文件中的配置进行生成的,所以没有配置好的,或者说此方法行不通的可以直接在/etc/resolv.conf中添加。


### 问题分析 当用户在执行 `sudo` 命令时遇到错误提示 `sudo: unable to resolve host <hostname>: Name or service not known`,这通常与主机名解析配置有关。以下是可能的原因及解决方案。 --- ### 可能原因及解决方法 1. **主机名未正确设置或未保存到系统中** 如果主机名未正确设置或未保存到系统的配置文件中,可能导致 `sudo` 无法解析主机名。可以通过以下命令检查当前主机名: ```bash hostname ``` 如果主机名为空或不正确,可以使用以下命令临时设置主机名[^2]: ```bash hostname myhostname ``` 然而,这种更改仅在当前会话中有效。为了永久设置主机名,需要编辑 `/etc/hostname` 文件,并确保其内容与期望的主机名一致: ```bash echo "myhostname" > /etc/hostname ``` 2. **主机名未添加到 `/etc/hosts` 文件中** 系统通过 `/etc/hosts` 文件进行本地主机名解析。如果主机名未正确添加到该文件中,可能会导致解析失败。请检查 `/etc/hosts` 文件,确保包含类似以下条目: ```plaintext 127.0.0.1 localhost 127.0.1.1 myhostname ``` 其中,`myhostname` 应替换为实际的主机名。如果缺少相关条目,请手动添加[^2]。 3. **DNS 配置问题** 如果系统依赖于 DNS 解析主机名,但 DNS 配置不正确,也可能导致解析失败。请检查 `/etc/resolv.conf` 文件,确保包含有效的 DNS 服务器地址。例如: ```plaintext nameserver 8.8.8.8 nameserver 8.8.4.4 ``` 如果使用的是本地 DNS 服务器,请确保其服务正常运行[^2]。 4. **`secure_path` 配置问题** 如果 `sudo` 的 `secure_path` 选项被启用,但路径设置不正确,可能会导致某些命令(如主机名解析相关命令)无法正常工作。可以通过检查 `/etc/sudoers` 文件中的 `secure_path` 设置来验证: ```bash sudo visudo ``` 确保 `secure_path` 包含必要的目录,例如 `/usr/bin` 和 `/bin`。如果不需要使用 `secure_path`,可以直接注释掉相关行[^1]。 5. **网络接口或驱动问题** 某些情况下,网络接口或驱动程序的状态异常也可能影响主机名解析。可以通过以下命令检查网络接口状态: ```bash ip addr show ``` 如果发现网络接口未启用或配置错误,请尝试重启网络服务或修复驱动程序状态[^2]。 --- ### 验证解决方案 完成上述调整后,可以通过以下命令验证问题是否解决: ```bash sudo -l ``` 如果不再出现 `sudo: unable to resolve host` 错误,则说明问题已解决。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值