wget和curl可以正常工作,但ping不通

wget和curl可以正常工作,但ping不通

当我 ping www.google.com 和 8.8.8.8 时,没有得到回复:

# ping www.google.com
PING www.google.com (216.58.221.228) 56(84) bytes of data.
( no response)

# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
( no response)

20 packets transmitted, 0 received, 100% packet loss, time 19006ms

尚未得到回应。但是,curl 和 wget 都可以。我的操作系统是 CentOS 7。

这是我的网络配置文件:

# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
#BOOTPROTO=dhcp
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
#IPV4_FAILURE_FATAL=no
IPADDR=192.168.42.12
NETMASK=255.255.255.0
GATEWAY=192.168.42.129
DNS1=192.168.42.129
DNS2=114.114.114.114
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
UUID=e7328f29-6313-4382-8023-b7740ed4f7ad
ONBOOT=yes

这是ip和路由信息:

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:4d:df:bf brd ff:ff:ff:ff:ff:ff
    inet 192.168.42.12/24 brd 192.168.42.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe4d:dfbf/64 scope link 
       valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
    link/none 
    inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
       valid_lft forever preferred_lft forever
# ip route
default via 192.168.42.129 dev ens33  proto static  metric 100 
10.8.0.0/24 via 10.8.0.2 dev tun0 
10.8.0.2 dev tun0  proto kernel  scope link  src 10.8.0.1 
192.168.42.0/24 dev ens33  proto kernel  scope link  src 192.168.42.12  metric 100 
cat /etc/sysctl.conf | grep echo

什么也不输出。

我明白了,由于防火墙:GFW,无法连接到 Google。

跟踪路由输出:

# traceroute -T www.google.com
traceroute to www.google.com (216.58.197.100), 30 hops max, 60 byte packets
 1  gateway (192.168.42.129)  0.541 ms  0.378 ms  0.294 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

带有 www.vim.org 输出的跟踪路由:

     # traceroute -T www.vim.org
traceroute to www.vim.org (216.34.181.97), 30 hops max, 60 byte packets
 1  gateway (192.168.42.129)  0.447 ms  0.419 ms  0.287 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  vhost.sourceforge.net (216.34.181.97)  229.060 ms  214.904 ms  220.727 ms

但是,ping www.vim.org 也没有任何反应。

# ping www.vim.org
PING vhost.sourceforge.net (216.34.181.97) 56(84) bytes of data.
(no response)

感谢您的任何建议。

答案1

ping 使用 ICMP 协议,ICMP 流量可能会在您的网络上被阻止。尝试使用 tcp/udp 进行跟踪路径和跟踪路由。

使用 TCP 的 Tracroute:

    traceroute -T www.google.com

应该管用。

另请检查您的防火墙是否阻止 ICMP。

   #service iptables stop

或者。

  #systemctl stop firewalld.service

然后使用 ping 重试

如果问题仍然存在,则 ICMP 流量在您的网络级别被阻止,并询问您的网络管理员。

本地系统上 ICMP 的一些故障排除:

要检查 ICMP 是否启用或禁用,请运行以下命令:

 cat /proc/sys/net/ipv4/icmp_echo_ignore_all

输出为 0 或 1:

0 means that ICMP is enabled
1 means that ICMP is disabled

如果它被禁用并且您想要启用它:

change 1 to 0 in the above file

Or run the command:

iptables  -I  INPUT  -i  ech0  -p   icmp  -s  0/0  -d  0/0   -j  ACCEPT

但是,即使 ICMP 被阻止,您也可以使用以下命令检查您是否已连接到互联网:

   nc -vz google.com 80

相关内容