Linux ping www.baidu.com 不通解决办法

本文介绍了解决Ubuntu系统中DNS服务出现问题导致无法通过域名访问网站的方法。提供了三种解决方案,包括修改网络配置文件、调整resolv.conf文件及使用resolvconf程序等步骤。

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

ping www.baidu.com //提示找不到该网址,
而直接与宿主机之间使用 IP 地址进行互ping,则可以ping得通;在Ubuntu的浏览器中输入www.baidu.com ,无法打开百度网页;但输入百度的IP地址,则可以打开百度,这说明是DNS服务出现了问题

解决办法总结:

前两个解决方案:转载:http://www.cnblogs.com/dongling/p/5591856.html

方案1(最佳):

首先 修改 /etc/network/interfaces文件:

###interfaces中#######     
auto eth0     
iface eth0 inet static     
address 192.168.1.200     
netmask 255.255.255.0                  #子网掩码     
gateway 192.168.1.1                      #网关
broadcast 192.168.1.255     
dns-nameservers 119.29.29.29    #设置dns服务器  ---这一行是新添加的

然后 $ /etc/init.d/networking restart   //重启网卡

查看 /etc/resolv.conf文件中自动添加了 如下(该文件手动配置的话,系统重启会被覆盖,具体原因方案3):
nameserver 119.29.29.29 //自动添加内容

{

如重启网卡提示:

stop: Job failed while stopping
start: Job is already running: networking

解决办法:stop: Job failed while stopping

}
 

方案2:

(i) 创建 /etc/resolvconf/resolv.conf.d/tail文件 (etc/resolvconf/resolv.conf.d 文件夹下已有了 head和base文件)

(ii) 在该文件中写入自己需要的dns服务器 (后面会补充Windows下查看DNS服务器的方法)

nameserver 202.118.176.2

(iii) 重启 resolvconf程序

sudo /etc/init.d/resolvconf restart    (我试了一下在,没有效果,又重启的虚拟机,有效了)

(iv) 查看 /etc/resolv.conf文件,可以看到里面自动添加了 nameserver 202.118.176.2 , ping www.baidu.com 一可以通了

方案3(不建议):
[root@localhost ~]# cat /etc/resolv.conf
[root@localhost ~]# vi /etc/resolv.conf
新添加一条DNS到该文件中:
search localdomain
nameserver 119.29.29.29

但是每次重启后该配置文件就会被dhcp覆盖掉,但该文件中有这么一句话:

#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN  //不要手动编辑该文件,你的改变会被重写

linux重启    /etc/resolv.conf 文件被自动修改问题:

1.有的说要关闭NetworkManager服务:http://my.oschina.net/HIJAY/blog/223118  

2. 对/etc/resolv.conf文件 加锁,使不可被更改:https://blog.youkuaiyun.com/shoyer/article/details/7940895

加锁时提示错误,解决:Operation not supported while reading flags

https://helpcdn.aliyun.com/knowledge_detail/41326.html

 

<think>首先,用户的问题是:“虚拟机可以 ping 通 8.8.8.8 但无法 pingwww.baidu.com 的解决方法”。这是一个网络连接问题,具体是虚拟机无法解析域名 www.baidu.com。 从系统级指令中,我需要: - 所有行内数学表达式使用 $...$ 格式。 - 独立公式使用 $$...$$ 格式并单独成段。 - LaTeX 语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,例如 [^1]。 - 回答结构清晰,帮助用户逐步解决问题。 - 参考提供的引用内容。 提供的引用内容: - [^1]: 虚拟机无法识别域名,但能 ping 通 IP,所以是域名映射问题。 - [^2]: 虚拟机 ping 不通时,检查虚拟网络设置,确保 IP 地址在 NAT 模式下正确。 - [^3]: 无法查看 IP 地址或 ping 通百度时,编辑网络配置文件。 用户的问题具体是:能 ping 通 8.8.8.8(一个公共 DNS 服务器),但不能 pingwww.baidu.com。这表明网络连接基本正常(因为能 ping 通 IP 地址),但域名解析失败。 所以,核心问题是 DNS 解析问题。 基于引用内容: - [^1] 提到如果 ping IP 通但域名不通,是域名映射问题。 - [^2] 和 [^3] 讨论了网络配置和 IP 设置。 我需要构建一个结构清晰的回答: 1. **问题分析**:解释为什么能 ping 通 8.8.8.8 但不能 pingwww.baidu.com。 2. **逐步解决方法**: - 检查 DNS 设置。 - 测试域名解析。 - 修改网络配置文件。 - 重启网络服务。 3. **生成相关问题**:在回答结束时添加相关问题。 回答结构: - 开头:简要概述问题。 - 步骤:逐步指导用户排查和解决。 - 结尾:添加相关问题。 确保使用中文。 在回答中,自然地添加引用标识。例如,如果参考了 [^1],在相关部分末尾添加 [^1]。 现在,构建回答: - **问题分析**:能 ping 通 8.8.8.8 表示网络连接正常,但无法 pingwww.baidu.com 表明域名解析失败。这通常是由于 DNS 服务器配置问题。 - **解决方法**: 1. 测试 DNS 解析:使用 `nslookup` 或 `dig` 命令检查 www.baidu.com 的解析。 2. 检查 DNS 配置:查看虚拟机的 DNS 设置。 3. 修改网络配置文件:编辑相关文件(如 /etc/resolv.conf 或 /etc/sysconfig/network-scripts/ifcfg-*)。 4. 重启网络服务。 5. 验证修复。 从引用 [^3],提到编辑 /etc/sysconfig/network-scripts/ifcfg-* 文件。 在回答中,如果提到类似内容,添加引用。 例如: - 如果建议编辑网络配置文件,引用 [^3]。 - 如果提到域名映射问题,引用 [^1]。 最后,生成相关问题: - 类似于示例中的格式:§§相关问题§§ - 然后列出 2-3 个相关问题。 相关问题示例: 1. 如何测试 DNS 解析是否正常? 2. 虚拟机网络模式(如 NAT、桥接)如何影响连接? 3. 如何永久设置 DNS 服务器在虚拟机中? 现在,写出完整回答。</think>### 虚拟机网络连接问题排查:能 ping 通 8.8.8.8 但无法 pingwww.baidu.com 的解决方法 当虚拟机可以 ping 通 IP 地址(如 8.8.8.8)但无法 ping 通域名(如 www.baidu.com)时,这表明网络连接基本正常(因为能访问外部 IP),但域名解析(DNS)失败。DNS 负责将域名转换为 IP 地址,如果配置不正确,就会导致此类问题。以下是结构清晰的逐步解决方法,基于常见 Linux 系统(如 CentOS 或 Ubuntu)进行说明。整个过程需要管理员权限(使用 `sudo` 或切换到 root 用户)。 #### 问题分析 - 能 ping 通 8.8.8.8:表明虚拟机网络连接正常(8.8.8.8 是 Google 的公共 DNS 服务器),IP 层通信无阻塞。 - 无法 pingwww.baidu.com:表明域名解析失败,可能由于 DNS 服务器配置错误、域名映射问题或网络设置不当。 - 常见原因包括:DNS 服务器未设置、配置文件错误、或虚拟机网络模式(如 NAT)下的 IP 地址不匹配[^1][^2]。 #### 逐步解决方法 请按顺序执行以下步骤,每个步骤都包含命令和说明。如果某一步骤解决了问题,可跳过后续步骤。 1. **测试 DNS 解析是否正常** 首先,验证域名解析是否失败。在虚拟机终端执行: ```bash nslookup www.baidu.com ``` 或 ```bash dig www.baidu.com ``` - **预期结果**:应返回 www.baidu.com 的 IP 地址(如 14.215.177.39)。 - **问题诊断**:如果返回 `connection timed out` 或 `server can't find www.baidu.com`,则确认 DNS 解析失败[^1]。 - **解决**:如果解析正常但仍 ping 不通,可能是防火墙问题(检查 `iptables -L` 或 `firewall-cmd --list-all`)。 2. **检查并临时设置 DNS 服务器** 如果 DNS 解析失败,尝试手动指定 DNS 服务器(如 8.8.8.8)。编辑临时 DNS 配置文件: ```bash sudo vi /etc/resolv.conf ``` 添加或修改为以下内容: ```bash nameserver 8.8.8.8 # Google 公共 DNS nameserver 114.114.114.114 # 备用 DNS ``` 保存文件后,重启网络服务: ```bash sudo systemctl restart network # CentOS 系统 # 或 sudo systemctl restart systemd-resolved # Ubuntu 系统 ``` 然后重新测试 `ping www.baidu.com`。 - **注意**:此修改可能重启后失效,需永久设置(见步骤 3)[^1][^2]。 3. **永久修改网络配置文件** 如果临时设置有效,但问题在重启后复现,需编辑网络接口配置文件。首先,确认网络接口名称(如 ens33 或 eno16777736): ```bash ip addr ``` 然后编辑配置文件(以 ens33 为例): ```bash sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33 # CentOS 系统 # 或 sudo vi /etc/netplan/50-cloud-init.yaml # Ubuntu 系统(使用 netplan) ``` 在文件中添加或修改以下行(确保 IP 地址在 NAT 模式下一致,如 192.168.123.xxx): ```bash DNS1=8.8.8.8 DNS2=114.114.114.114 PEERDNS=no # 防止重启后覆盖 ``` 保存文件后,应用更改: ```bash sudo systemctl restart network # CentOS # 或 sudo netplan apply # Ubuntu ``` 此步骤确保 DNS 设置永久生效,避免虚拟机 IP 地址冲突[^2][^3]。 4. **检查虚拟机网络模式** 确保虚拟机网络适配器设置为 NAT 模式(VMnet8),并验证主机虚拟网络设置: - 在 VMware 或 VirtualBox 中,打开“虚拟机设置” > “网络适配器” > 选择“NAT 模式”。 - 在主机上,打开“虚拟网络编辑器” > 检查 VMnet8 的子网 IP(如 192.168.123.0)是否与虚拟机 IP 匹配。 - 如果虚拟机 IP 不在该子网(如 192.168.101.xxx),需修改步骤 3 中的配置文件,设置静态 IP: ```bash BOOTPROTO=static IPADDR=192.168.123.100 # 示例 IP,确保在子网范围内 NETMASK=255.255.255.0 GATEWAY=192.168.123.1 ``` 重启网络服务后测试[^2][^3]。 5. **最终验证** 执行完整测试: ```bash ping 8.8.8.8 # 确认 IP 连接正常 nslookup www.baidu.com # 确认域名解析正常 ping www.baidu.com # 应成功 ``` 如果问题仍未解决,检查主机防火墙(关闭临时测试)或虚拟机 DNS 缓存(`sudo systemd-resolve --flush-caches`)。 #### 总结 通过以上步骤,大多数 DNS 解析问题都能解决。核心是确保 DNS 服务器正确配置(如使用 8.8.8.8),且虚拟机网络模式一致。如果问题持续,提供更多系统细节(如虚拟机软件和 OS 版本)以便进一步排查[^1][^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值