【问题标题】:ping: http://google.com: Name or service not knownping: http://google.com: 名称或服务未知
【发布时间】:2017-09-08 01:47:00
【问题描述】:

我在 windows 上的 virtualbox 中使用 centos7。 vagrant 成功了,使用 http 或 https 时出现 ping 错误。也卷曲。有人可以帮助我如何修复它并让它工作。

[root@localhost ~]# ping google.com
PING google.com (61.91.161.217) 56(84) bytes of data.
64 bytes from chatenabled.mail.google.com (61.91.161.217): icmp_seq=1 ttl=43 time=404 ms
64 bytes from chatenabled.mail.google.com (61.91.161.217): icmp_seq=2 ttl=43 time=408 ms
64 bytes from chatenabled.mail.google.com (61.91.161.217): icmp_seq=3 ttl=43 time=407 ms
64 bytes from chatenabled.mail.google.com (61.91.161.217): icmp_seq=4 ttl=43 time=408 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 4 received, 20% packet loss, time 4000ms
rtt min/avg/max/mdev = 404.297/407.234/408.956/1.887 ms
[root@localhost ~]# ping https://google.com
ping: https://google.com: Name or service not known
[root@localhost ~]# ping https://61.91.161.217
ping: https://61.91.161.217: Name or service not known

`

resolv.conf

[root@localhost ~]# cat /etc/resolv.conf 
nameserver 10.0.2.3
nameserver 8.8.8.8
nameserver 8.8.4.4
search localhost

`

如果配置

[root@localhost ~]# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::5054:ff:fe73:fb1  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:73:0f:b1  txqueuelen 1000  (Ethernet)
        RX packets 610587  bytes 48453952 (46.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 468759  bytes 41290880 (39.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.33.10  netmask 255.255.255.0  broadcast 192.168.33.255
        inet6 fe80::a00:27ff:fe0e:ae16  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:0e:ae:16  txqueuelen 1000  (Ethernet)
        RX packets 3069145  bytes 2674132747 (2.4 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2531212  bytes 213727091 (203.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

从 vagrant 自动创建的网络文件

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
NAME="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="704aa015-53dd-4ba7-9689-b9b8bf6e09a5"
IPV6INIT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
HWADDR=52:54:00:73:0f:b1
DNS1=8.8.8.8
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
NM_CONTROLLED=no
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.33.10
NETMASK=255.255.255.0
DEVICE=eth1
PEERDNS=no
DNS1=8.8.8.8

【问题讨论】:

    标签: centos7


    【解决方案1】:

    首先确保您在虚拟框设置中启用了网络适配器。

    您用来连接互联网的网络接口可能未激活。

    1. 要检查这一点,请使用“sudo nmcli d”命令。

    2. 如果断开连接,使用“sudo nmtui”->编辑连接,选择您的网络接口并选择“自动连接”选项(通过 按空格键)并选择确定。

    3. 立即执行“sudo reboot”登录后,执行“ping www.google.com”。

    您现在应该可以连接了。

    【讨论】:

    • 成功了!唯一的区别是重新启动我的 centos vm 停用了网络接口。但是运行命令解决了你统治的问题
    • 您的回答中真正重要的部分是“ping www.google.com”。因为他们使用的“http://”作为域名或 IP# 的前缀不是域名或 IP# 的一部分(也不是其中一个或另一个的有效部分)。 ping 命令采用主机/域名或 IP#s 参数,而不是包含协议或其他任何内容的 URL。
    【解决方案2】:

    ping 与 HTTP 或 HTTPS 无关:

    Ping会使用ICMP协议,属于TCP/IP

    Ping 通过向目标主机发送 Internet 控制消息协议 (ICMP) 回显请求数据包并等待 ICMP 响应来运行。

    实际上 ping 在比 HTTP 或 HTTPS 低得多的级别上工作,并且只接受主机名,而不接受 URL。

    【讨论】:

    • “实际上 ping 的工作水平比 HTTP 或 HTTPS 低得多,并且只接受主机名,而不接受 URL。”是的。同意。再简洁不过了。
    • 正如@T-Heron 所说,ping 适用于 IP 地址或域名。因此,请尝试在不带“http://”前缀的情况下 ping google.com。
    【解决方案3】:

    更换VirtualBOX网卡

    使用 -> 英特尔 PRO/1000 T 服务器 (82543GC)

    【讨论】:

      【解决方案4】:

      我尝试了很多不同的解决方案。改变了 resolve.conf 十亿次。最后我只需要重新启动路由器大声笑。为我解决了,希望对你也一样。

      【讨论】:

      • 假设您每次花费 5 秒,则为 50 亿秒,即158.55 year。向你致敬!!
      • 所以你能够(ping some-domain-name.com)?即使您的网络配置完全正确,这也不应该起作用。因为 ping 只接受主机/域名或 IP#,而不是 URL。
      【解决方案5】:

      还有一种可能,如果你是克隆机,请检查服务器网卡的UUID,UUID是否相同,也会出现这种情况,请删除UUID。

      例如:CentOS 7

      cat /etc/sysconfig/network-scripts/ifcfg-ens192 
      ...
      UUID=03da7500-2101-c722-2438-xxxxxxx
      ...
      

      【讨论】:

        【解决方案6】:

        如果您能够 ping 所有的网络设备并且只遇到类似的问题 - ping: http://google.com: Name or service not known ,那么您应该尝试删除所有行并尝试只在 /etc 中放置一个名称服务器/resolv.conf 。 enter image description here

        【讨论】:

          【解决方案7】:

          检查 /etc/nsswitch.conf 并从下面的行中删除 #

          网络:文件#dns

          【讨论】:

          • 如果你有什么想说的,请评论。
          • 该配置与报告的问题无关,因为选择正确的答案显示。如果您不了解 nsswitch.conf 的工作原理,或者如果您不了解 ping 的工作原理,请不要编辑它。配置错误可能会导致主机网络失败,或者以您不太了解的方式变得不安全。
          猜你喜欢
          • 2018-03-29
          • 2014-09-18
          • 2016-11-10
          • 2013-08-08
          • 2016-01-06
          • 2019-07-07
          • 1970-01-01
          • 2021-08-19
          • 2018-02-27
          相关资源
          最近更新 更多