欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

【Linux】一步一步学Linux——ping命令(150)

发布时间:2024/4/21 71 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Linux】一步一步学Linux——ping命令(150) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

00. 目录

文章目录

    • 00. 目录
    • 01. 命令概述
    • 02. 命令格式
    • 03. 常用选项
    • 04. 参考示例
    • 05. 使能和禁用ping的方法
    • 06. 总结
    • 07. 附录

01. 命令概述

ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

ping, ping6 - 向网络主机发送ICMP回显请求(ECHO_REQUEST)分组。

注意:Linux系统下的ping命令与Windows系统下的ping命令稍有不同。Windows下运行ping命令一般会发出4个请求就结束运行该命令;而Linux下不会自动终止,此时需要我们按CTR+C终止或者使用-c参数为ping命令指定发送的请求数目。

02. 命令格式

格式:ping [选项] [参数]

03. 常用选项

-d 使用Socket的SO_DEBUG功能 -c 指定发送报文的次数 -i 指定收发信息的间隔时间 -I 使用指定的网络接口送出数据包 -l 设置在送出要求信息之前,先行发出的数据包 -n 只输出数值 -p 设置填满数据包的范本样式 -q 不显示指令执行过程 -R 记录路由过程 -s 设置数据包的大小 -t 设置存活数值TTL的大小 -v 详细显示指令的执行过程

04. 参考示例

4.1 测试能否ping通IP

[root@localhost ~]# ping 172.16.0.2 PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=255 time=11.3 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=254 time=1.71 ms

4.2 测试能否ping通域名

[root@localhost ~]# ping www.baidu.com PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data. 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=1 ttl=57 time=7.93 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=2 ttl=57 time=7.89 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=3 ttl=57 time=8.70 ms

4.3 ping不同某个IP的情形

[root@localhost ~]# ping 172.16.0.89 PING 172.16.0.89 (172.16.0.89) 56(84) bytes of data. From 172.16.0.76 icmp_seq=1 Destination Host Unreachable From 172.16.0.76 icmp_seq=2 Destination Host Unreachable From 172.16.0.76 icmp_seq=3 Destination Host Unreachable From 172.16.0.76 icmp_seq=4 Destination Host Unreachable

4.4 指定ping的次数

[root@localhost ~]# ping -c 2 172.16.0.2 PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=254 time=1.68 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=254 time=1.81 ms--- 172.16.0.2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1004ms rtt min/avg/max/mdev = 1.685/1.747/1.810/0.075 ms [root@localhost ~]#

4.5 指定ping的次数和时间间隔

[root@localhost ~]# ping -c 4 -i 0.5 172.16.0.2 PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=254 time=1.76 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=254 time=1.75 ms 64 bytes from 172.16.0.2: icmp_seq=3 ttl=254 time=2.27 ms 64 bytes from 172.16.0.2: icmp_seq=4 ttl=254 time=1.62 ms--- 172.16.0.2 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 1511ms rtt min/avg/max/mdev = 1.626/1.853/2.270/0.246 ms [root@localhost ~]#

4.6 指定ping的次数和域名

[root@localhost ~]# ping -c 5 www.baidu.com PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data. 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=1 ttl=57 time=8.55 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=2 ttl=57 time=8.17 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=3 ttl=57 time=7.91 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=4 ttl=57 time=7.77 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=5 ttl=57 time=8.29 ms--- www.a.shifen.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4013ms rtt min/avg/max/mdev = 7.770/8.140/8.552/0.282 ms [root@localhost ~]#

4.7 综合实例

[root@localhost ~]# ping -i 3 -s 1024 -t 255 172.16.0.2 PING 172.16.0.2 (172.16.0.2) 1024(1052) bytes of data. 1032 bytes from 172.16.0.2: icmp_seq=1 ttl=254 time=2.15 ms 1032 bytes from 172.16.0.2: icmp_seq=2 ttl=254 time=1.96 ms 1032 bytes from 172.16.0.2: icmp_seq=3 ttl=254 time=1.98 ms 1032 bytes from 172.16.0.2: icmp_seq=4 ttl=254 time=2.02 ms

说明:-i 3 发送周期为 3秒 -s 设置发送包的大小为1024 -t 设置TTL值为 255

4.8 综合实例

[root@localhost ~]# ping -i 0.2 -c 3 -I 172.16.0.76 172.16.0.2 -q PING 172.16.0.2 (172.16.0.2) from 172.16.0.76 : 56(84) bytes of data.--- 172.16.0.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 406ms rtt min/avg/max/mdev = 1.653/1.953/2.498/0.386 ms [root@localhost ~]#

说明:-i 指定发送数据包时间间隔,-c 指定一共发送多少个数据包,-I 指定源地址,-q指定直接显示程序的启动和最后结果

4.9 综合实例

[root@localhost ~]# ping -I 172.16.0.76 172.16.0.2 -w 3 PING 172.16.0.2 (172.16.0.2) from 172.16.0.76 : 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=254 time=1.64 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=254 time=1.71 ms 64 bytes from 172.16.0.2: icmp_seq=3 ttl=254 time=1.63 ms--- 172.16.0.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.632/1.664/1.715/0.059 ms [root@localhost ~]#

【说明】

-I 网络界面:使用指定的网络界面送出数据包,即172.16.0.76是发出ping命令的主机IP地址,172.16.0.2是被ping的主机的IP地址。
-w 等待指定时间后停止ping程序的执行。当试图测试不可达主机时此选项很有用,时间单位是秒。

4.10 综合实例

[root@localhost ~]# ping -c 1 www.baidu.com | grep from | cut -d " " -f 4 183.232.231.174 [root@localhost ~]#

利用ping命令获取指定网站的IP地址

【常见问题分析】

  • No Answer: 原因可能是,对方主机没工作,双方网络配置不正确,路由问题等。

  • Request Time Out: 对方主机已关机,路由问题或对端防火墙设置禁止ping

  • Unknown Host Name: DNS设置问题,或者对方主机不存在

  • Destination Net Unreachable: 双方没有建立连接,或对方主机不存在

  • Bad IP Address: IP地址不存在或IP不能被DNS服务器解析

  • transmit failed,error code: 网卡驱动问题

  • no rout to host 网卡工作不正常

  • Ping 127.0.0.1 如果ping不通,表明本地机TCP/IP协议不能正常工作。

  • 05. 使能和禁用ping的方法

    5.1 临时允许ping

    [root@localhost ~]# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all [root@localhost ~]#

    5.2 临时禁用ping

    [root@localhost ~]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

    5.3 永久禁用ping

    /etc/sysctl.conf 中增加一行

    net.ipv4.icmp_echo_ignore_all=1 # 1表示禁止

    修改完成后执行sysctl -p使新配置生效

    5.4 永久使能ping

    /etc/sysctl.conf 中增加一行

    net.ipv4.icmp_echo_ignore_all=0 # 0表示允许

    修改完成后执行sysctl -p使新配置生效

    06. 总结

    07. 附录

    参考:【Linux】一步一步学Linux系列教程汇总

    总结

    以上是生活随笔为你收集整理的【Linux】一步一步学Linux——ping命令(150)的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。