ping: http://google.com:名称或服务未知

22

我在 Windows 上的 VirtualBox 中使用 CentOS 7。使用 Vagrant 创建后,在 http 或 https 上出现了 ping 错误,同时也出现了 curl 错误。请问有人能帮助我修复这个问题,使其正常工作吗?

[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

`

ifconfig

[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
8个回答

33

首先确保你在虚拟机设置中启用了你的网络适配器。

你用于连接互联网的网络接口可能没有激活。

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

  2. 如果它已经断开连接,请使用“sudo nmtui”-> 编辑一个连接,选择您的网络接口并选择“自动连接”选项(按空格键) ,然后选择 “确定”。

  3. 在登录后执行“sudo reboot now”,然后执行“ping www.google.com”。

现在应该能够连接了。


成功了!唯一的区别是重启我的CentOS虚拟机后网络接口被停用了。但运行这些命令解决了问题,你太棒了。 - newITguy

24

ping与HTTP或HTTPS无关:

ping使用ICMP协议,属于TCP/IP。

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

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


6
“实际上,Ping 的工作级别比 HTTP 或 HTTPS 更低,只接受主机名而不是 URL。”没错,同意,无法更简洁地表达了。 - T-Heron
1
正如@T-Heron所说,ping命令适用于IP地址或域名。 因此,请尝试在google.com前不加“http://”的前缀来ping一下。 - barper

2
更改VirtualBox网络适配器
使用-> Intel PRO/1000 T服务器 (82543GC)
最初的回答

1

还有另一种可能性,如果您是克隆机,请检查服务器网卡的UUID,如果UUID相同,也会出现此问题,请删除UUID。

例如:CentOS 7

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

0

我尝试了很多不同的解决方案。改变了resolve.conf无数次。最后,我只需要重新启动路由器就行了,哈哈。对我来说解决了问题,希望对你也有同样的效果。


12
假设每次花费5秒钟,那么总共需要花费50亿秒,即158.55年。向你致敬! - Kamal Nayan
所以你能够ping通http://some-domain-name.com吗?即使你的网络配置完全正确,这也不应该被允许。因为ping只接受主机名/域名或IP地址,而不是URL。 - Matthew

0

如果您能够ping通所有网络设备,但仅遇到像“ping: http://google.com:名称或服务未知”的问题,则应尝试删除所有行并尝试在/etc/resolv.conf中仅放置一个nameserver。输入图像描述


-1

好的,我尝试了很多次不同的方法。 但最终有效的方法是我的Linux系统连接到了互联网。我改成了NAT模式,这样就可以了。


-3
检查 /etc/nsswitch.conf 文件,并从下面一行中删除 # 符号
networks: files #dns

1
如果您需要说些什么,请评论。 - Nur
1
那个配置与报告的问题无关,因为所选的答案表明了这一点。如果您不了解它的工作原理,或者不了解ping的工作原理,请勿编辑nsswitch.conf。错误地配置可能会导致主机网络失败,或以您更难理解的方式变得不安全。 - Matthew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接