ping 8.8.8.8有效,但ping www.google.com却不行


12

我正在运行ubuntu服务器16.04.2,并apt-get update返回解决“列表中的所有内容”的临时故障。

  • 当我ping www.google.com时,它以未知主机响应。
  • 当我ping 8.8.8.8时,我收到的数据包没有错误等。

我已经尝试了在Ubuntu论坛以及整个互联网世界中可以找到的所有“修复”,但没有任何效果。该resolv.conf是空的,使用ifconfig显示网卡是否正常工作,防火墙是关闭的,我扔掉了锤,以防万一。不幸的是,我在同一网络上的另一台计算机上键入此内容,但是无法附加来自各种输出的文本来显示正在发生的事情。在这方面需要帮助。

resolv.conf文件包含以下几行:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
search 8.8.8.8 8.8.4.4

当您重新引导系统时,最后一行由interfaces文件放置。这是16.04LTS的新功能。我以为Windows NT4还不错,Ubuntu Server 12也不错。


2
您的系统如何获取其IP地址?它来自DHCP服务器吗?它是静态IP?无需设置DNS服务器IP就可以ping通IP地址。但这听起来好像您没有设置DNS地址,或者您的DHCP没有提供它。
Terrance

IP是静态的。安装服务器软件时,我从未设置DNS服务器。
加里·默瑟

查看askubuntu.com/questions/143819/…,然后在8.8.8.8和8.8.4.4
Terrance

我都做了 我的静态IP来自at&t vdsl框。我正在使用他们的dns名称服务器和dns-search ip。我只能推断出at&t阻止了dns查询。
加里·默瑟

有趣。也许您可能想联系AT&T,看看他们是否仍然阻止了它。我想您可以尝试将其DNS服务器替换为Google DNS服务器,看看是否可行。
Terrance

Answers:


16

您的/etc/resolv.conf文件中需要一个名称服务器。编辑您的/etc/resolv.conf服务器,然后添加一个正常工作的名称服务器。Google提供了一个免费的8.8.8.8

做这个:

$ nano /etc/resolv.conf

将其作为第一条非注释行:

nameserver 8.8.8.8

您可以使用以下方法验证此功能:

$ ping -c10 www.google.com

您可以通过将行添加到此文件中来使此更改永久生效/etc/resolvconf/resolv.conf.d/head


哎呀!成功!对不起,这个盒子连续打了36个小时……行了。我什至输入了at&t ip,它也起作用了。感谢你们的帮助和快速。(主持人先生,这些家伙需要拍拍背部,以减轻整个无情绪的垃圾的影响)
Gary Mercer

resolv.conf不允许编辑
Syam kumar KK

相反,@Ragy Morkos的回答,它的工作对我来说也是在Ubuntu 18.04 LTS
广津金

非常感谢!chroot进入我的Ubuntu后,我无法ping通www.google.com。感谢您的解决方案,现在我可以在chroot分区中进行安装了。
Gwang-Jin Kim

3

标记的答案实际上在Ubuntu 18.04.01上不起作用。要解决此问题,这是我所做的:

  • 执行 sudo gedit /usr/lib/systemd/resolv.conf
  • 粘贴nameserver 8.8.8.8(和/或您想要的任何其他名称服务器),然后保存并退出。
  • 通过执行添加符号链接 sudo ln -sf /usr/lib/systemd/resolv.conf /etc/resolv.conf

归功于https://askubuntu.com/a/1050280/899241


2

您能否在页面上发布链接,告诉您文件resolv.conf应该为空?我的猜测是,它充其量是一种误导。

使用命令编辑该文件,sudo nano /etc/resolv.conf并在其中放置一行:

nameserver 8.8.8.8

那应该可以解决您的名称解析以及使用它的各种程序-ping,apt-get等。

您还应该研究为什么resolv.conf为空。也许您的DHCP服务器配置不正确。


该文件包含以下内容:#用于由resolvconf(8)生成的glibc resolver(3)的动态resolv.conf(5)文件#请勿用手编辑此文件-您的更改将被覆盖搜索8.8.8.8 8.8.4.4当您重新引导系统时,最后一行由interfaces文件放置。
加里·默瑟

@GaryMercer,请添加到您的问题中。很难在评论中阅读。
wjandrea

0

在Ubuntu 16.04.x上覆盖不是一个好主意/etc/resolv.conf。操作系统很可能会覆盖它自己。

该文件/etc/resolv.conf通常是指向另一个文件的符号链接:

ls -lisa /etc/resolv.conf
1310924 0 lrwxrwxrwx 1 root root 29 Jul 13  2016 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

这表示它是正确的,您可以对其进行编辑,但是很可能另一个程序将覆盖它。我猜你已经安装了NetworkManager。据我所知,此服务管理您的解决方案的内容。因此,您确实应该尝试设置那个。(另一方面,可以在您的系统上禁用NetworkManager。您可能必须告诉我。)

尝试nmtui在此处添加正确的DNS服务器。我也8.8.8.8只能将其用作辅助DNS。您的主要DNS应该是您本地网络附近的机器或路由器,或者您所处的任何地方...


没有网络管理员。它的服务器没有GUI。在退出连接到存储库之前,我确实安装了dnsutils。
Gary Mercer

@Gary Mercer:那您如何带来网络接口?(ifup和ifdown?)网络管理器GUI是可选组件。nmtui是基于该文本的。
Gerhard Stein

我通过重新启动系统来启动nic。由于它是一台服务器,因此永远不会“关闭”。我发现使用重新启动服务并不总是有效,因为其他相互关联的组件组成了使用该接口的所有服务。使用简单的重新启动命令重新启动所有服务将更加轻松,最高效。
加里·默瑟

通过重新引导系统,某些“管理员”必须带走您的设备。您在哪个配置静态IP地址?
Gerhard Stein's

0

我遇到了同样的问题,直到用以下值编辑文件50-cloud-init.yaml

 network:
    ethernets:
        eno2:
            addresses:
            - 192.168.0.50/24 (my static ip address)
            dhcp4: false
            gateway4: 192.168.0.42
            nameservers:
                addresses: [208.67.222.222,208.67.220.220]
                search: [208.67.222.222]

希望它也对你有用


如果是使用netplan和谷歌DNS服务器 addresses: [8.8.8.8,8.8.4.4](也许更好地使用CloudFlare的1.1.1.1)上/etc/netplan/50-cloud-init.yaml,然后sudo netplan --debug apply
巴勃罗·比安奇

0

您正面临与为系统指定的DNS服务器相关的问题。检查/etc/resolv.conf中的名称服务器条目。

问题是,ping命令无法识别什么是“ www.google.com”,因为您的DNS服务器无法解析它并提供google实际IP地址(每个服务器只能通过其IP地址进行访问)

编辑中的条目/etc/resolv.conf。提供正确的DNS服务器以/etc/resolve.conf解决“ www.google.com”

或y您可以通过添加以下行来指定IP地址为127.0.0.53的本地系统解析器

nameserver 127.0.0.53

或提供Google的DNS服务器IP(其中任意一个):8.8.8.8或8.8.4.4

nameserver 8.8.8.8**

PS可以更好地理解DNS是如何工作在这里


-2

我们在此解决的问题归结为内部将域名解析为IP地址的问题。我相信,自从Ubuntu服务器的版本15开始,每次启动服务或系统时,动态配置文件系统都会更改。如果管理员对resolv.conf文件进行了更改,则在重新启动解析器服务后,这些更改将被删除。

为了使更改永久生效,Ubuntu提供了一种在不影响配置文件动态配置的情况下使用户永久更改的方法。LD James的建议(如上所述)是添加我需要对/etc/resolvconf/resolv.conf.d/head文件进行的更改。

这使得更改永久生效,并解决了解决域名错误消息的问题host not found。这是在接口文件中设置dns名称服务器,然后将其也传递到解析器的解决方案。谢谢大家为解决这个难题所做的最大努力。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.