Linux 【01- ping命令超详细教程】

Linux 【01- ping命令超详细教程】 Linux ping 命令超详细完整教程一、ping 基础原理ping基于ICMP 协议Internet 控制报文协议发送ICMP Echo Request请求包目标主机收到后回复ICMP Echo Reply以此判断主机是否在线、网络连通性网络延迟往返时间 RTT丢包率、网络抖动注意Linux 默认持续发包Windows ping 默认只发4个包。防火墙/云服务器安全组若拦截 ICMP会 ping 不通但 TCP 端口可正常访问。二、基础语法ping[选项]目标IP/域名示例最简用法pingwww.baidu.comping8.8.8.8ping192.168.1.1输出字段详解以 ping baidu 为例64 bytes from 180.101.49.11: icmp_seq1 ttl56 time22.3 ms64 bytesICMP 数据包大小默认64字节180.101.49.11目标服务器IPicmp_seq报文序列号断号代表丢包ttl生存时间每经过一台路由自动-1归零丢弃可粗略判断网段距离time22.3ms往返延迟数值越小网络越快结束 ping按Ctrl C后汇总统计--- www.a.shifen.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev 20.123/22.156/24.890/1.620 mstransmitted发送包总数received接收回复包packet loss丢包率rtt min最小延迟avg平均延迟max最大延迟mdev抖动延迟波动越小网络越稳定三、高频常用参数最全分类1. 控制发包数量-c count指定发送多少个包后自动停止不用手动CtrlC# 发4个包后结束ping-c48.8.8.82. 控制发包间隔-i 秒两个数据包之间等待时间默认1秒root 可小于0.2秒# 每0.5秒发1个包需要rootsudoping-i0.5192.168.1.1# 每3秒发一个包ping-i3www.baidu.com3. 设置数据包大小-s 字节自定义 ICMP 数据载荷大小总报文 载荷 8字节ICMP头# 载荷1000字节整体包1008字节ping-s1000192.168.1.1# 测试MTU标准以太网MTU1500扣除28字节头最大载荷1472ping-s1472www.baidu.com4. 存活时间TTL-t / -m限制路由跳数超过直接丢弃常用于路由链路探测# 最多经过10台路由ping-m10www.baidu.com5. 静默模式只看最终统计-q不输出每一条响应结束只打印汇总数据适合脚本ping-c10-q8.8.8.86. 快速发包模式-f 洪水模式root专用尽可能高速发包压力测试网络屏幕打印.代表发包回显代表收到sudoping-f192.168.1.1# 洪水模式指定包数sudoping-f-c1000192.168.1.17. 超时等待时间-W 秒单个包多久没回复判定超时丢包默认4秒# 2秒无回复即超时ping-W210.0.0.998. 绑定指定网卡/源IP发包-I多网卡服务器指定从某张网卡或某个本机IP发出ping包# 指定网卡eth0ping-Ieth0192.168.1.1# 指定本机源IPping-I10.0.0.58.8.8.89. 仅输出IP不解析域名-n关闭DNS反向解析加速输出排查DNS卡顿必备ping-nwww.baidu.com10. 记录路由-R路由追踪受限记录数据包经过的路由节点仅IPv4最多9跳现在推荐用traceroute替代ping-Rwww.baidu.com11. IPv6专用 ping-6只使用IPv6协议ping域名/IPv6地址ping-6ipv6.baidu.comping-62400:da00::6666四、实用组合案例生产运维常用案例1简单连通性检测脚本常用发送3个包超时2秒静默输出判断主机存活ping-c3-W2-q192.168.1.1/dev/nullecho主机在线||echo主机离线案例2持续监控网关延迟每1秒打印ping192.168.1.1案例3网络压力测试内网压测每秒大量发包10000个包结束sudoping-f-c10000-i0.1192.168.1.100案例4MTU 值探测排查数据包分片丢包逐步减小包大小找到能正常通的最大包# 先测1472不通再递减ping-Mdo-s1472www.baidu.com参数-M do禁止数据包分片分片则直接返回错误精准定位MTU案例5多网卡指定业务网卡ping外网ping-Ieth1-c48.8.8.8案例6IPv6连通性测试ping-6-c42400:da00::6666五、常见状态与故障排查1. 全部请求超时 / Destination Host UnreachableDestination Host Unreachable同网段找不到目标IP主机关机、IP错误、二层不通Request timeout路由可达但目标防火墙拦截ICMP、服务器宕机、链路断2. 高丢包率网线/无线信号差、交换机端口故障、带宽打满、防火墙限流ICMP使用ping -f洪水模式复现丢包定位网络稳定性3. ttl 数值异常内网Windows主机默认TTL128Linux默认TTL64ttl差值可粗略算路由跳数64 - 显示ttl 经过路由数量4. ping 域名不通ping IP正常DNS解析故障检查/etc/resolv.conf或DNS服务器5. 能ping通但访问网页/端口失败服务器防火墙放行ICMP但拦截80/443等业务端口ping仅测三层连通不检测四层端口六、ping 在 Shell 脚本实战模板脚本1批量检测主机存活#!/bin/baships(192.168.1.1192.168.1.1010.0.0.5)foripin${ips[]};doping-c2-W1$ip/dev/nullif[$?-eq0];thenecho$ip在线elseecho$ip离线fidone脚本2持续监控延迟过高告警#!/bin/bashtargetwww.baidu.comwhiletrue;do# 取平均延迟avg$(ping-c4$target|awk/rtt avg/ {print $4}|cut-d/-f2)# 延迟大于80ms输出警告if(($(echo $avg80|bc-l)));thenecho警告$target当前平均延迟${avg}msfisleep2done七、补充知识点权限限制-f洪水模式、-i 0.2快速发包必须root普通用户只能间隔≥1秒发包ICMP 安全公网服务器建议限制ICMP速率防止洪水攻击云厂商安全组可单独放行/禁用ICMP替代工具traceroute/mtr追踪完整路由、持续可视化链路质量telnet/nc检测TCP/UDP端口连通ping无法测端口跨系统差异Windows ping默认4包参数-n指定数量-w超时macOS ping 参数与 Linux 基本通用