ping命令常用参数
简述ping命令原理和作用
参考: https://www.zhihu.com/question/266846392
ping
命令是主机向目标主机发送一个icmp
协议的回显报文请求,请求中附带有请求方主机的时间戳T1
,目标主机收到请求后会记录时间戳T2
# 计算过程
方案一:本地记录时间戳
客户端发出Ping包1,本地记录时间戳T1,当ping 包1返回时,记录时间戳T2,那么
RTT = T2-T1
就得到这个RTT。
方案二:Ping包的Payload里记录发出时间戳T1
当Ping包1被弹回时,记录当前时间T2,则
RTT = T2-T1
也可以得到这个RTT( Round Trip Time)。
[计算机网络]各种时延的计算
发送时延=数据帧长度(b) /信道带宽(b/s) [信道带宽就是数据率]
传播时延=信道长度(m)/电磁波在信道上的传播速率(m/s)
总时延=发送时延+传播时延+处理时延+排队时延
# ping命令的作用
ping命令可以获取网络质量,例如网络时延为多少毫秒!假定ping值高于100ms,则网络质量不太好。
可以获取操作系统版本.
例如:通过返回的ttl值识别主机操作系统
ttl=255
Unix
ttl=64
Linux
ttl=128
Windows2000以上
ttl=32
Windows95
Linux下ping常用参数
参考 https://zhuanlan.zhihu.com/p/23973587
- -d:使用Socket的SO_DEBUG功能;
- -c<完成次数>:设置完成要求回应的次数;
- -f:极限检测;
- -i<间隔秒数>:指定收发信息的间隔时间;
- -I<网络界面>:使用指定的网络界面送出数据包;
- – l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
- -n:只输出数值;
- -p<范本样式>:设置填满数据包的范本样式;
- -q:不显示指令执行过程,开头和结尾的相关信息除外;
- -r:忽略普通的Routing Table,直接将数据包送到远端主机上;
- -R:记录路由过程;
- -s<数据包大小>:设置数据包的大小;
- -t<存活数值>:设置存活数值TTL的大小;
- -v:详细显示指令的执行过程。
## -s 指定size
## -i interval 指定收发信息的间隔时间
## -c 指定发送报文的次数
ping -s 4096 -i 1 -c 1000 130.10.0.77
# ping -i 3 发送周期为 3秒 -s 设置发送包的大小为1024 -t 设置TTL值为 255
ping -i 3 -s 1024 -t 255 192.168.120.206
Ubuntu安装ping命令
# Ubuntu安装ping命令
apt install iputils-ping -y
指定来源ip
## -l 指定来源ip(必须是本机绑定的一个ip)
ping -l 192.168.1.10 8.8.8.8
ping指定次数 -c
# ping -c 次数 主机
ping -c 10 114.114.114.114
间隔秒数-i
设定间隔
几秒送一个网络封包给一台机器,预设值是一秒送一次。
# ping -i 0.1秒发送一次 主机
ping -i 0.1 10.147.17.80
指定发包字节数-s
指定发送的数据字节数,预设值是56
,加上8字节
的ICMP头
,默认值一共是64ICMP
数据字节。
#ping -s 发送1024字节数 主机
ping -s 1024 10.147.17.80
存活数值-t
设置存活数值TTL
的大小。
# ping -t 设置ttl为255 主机
ping -t 255 114.114.114.114
ping域名很久才解析到ip
参考: https://blog.woofoo.cn/2021/01/10/linux-ping域名很慢的其中一个原因/
https://www.xiaoz.me/note/225.html
Linux下ping域名时很久才解析到ip,解析到ip后时延又不高
ping域名时,ping结果返回很慢,但ping这个域名的ip,返回结果却很快。
原因: https://www.cnblogs.com/276815076/p/6374298.html
当每次ping完得到响应之后,ping程序会尝试一次反向dns查询(reverse dns lookup)
来获取“64 bytes from”后面的域名,如果查询速度很慢的话,就会给人似乎延迟很大的感觉,其实这也是ping感觉慢,但是每次ping的响应时间却并不慢的原因。
解决办法: 使用-n参数禁止反向DNS查询
# 禁用反向解析-n
ping -n 域名
ping域名慢解决办法
/etc/nsswitch.conf
文件的作用是控制系统如何查找和解析
各种不同类型的名称
。通过编辑该文件,您可以控制系统如何查找用户
、主机
和服务
等信息。
vi /etc/nsswitch.conf
# 注释这一行
## 系统将首先从/etc/hosts文件中查找主机名,
## 然后使用mdns4_minimal(一种用于本地网络的mDNS协议)查找主机名,## 如果找不到,则返回,如果仍然找不到,则使用DNS协议进行查找。
#hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
# 修改成files dns
## 系统将首先从/etc/hosts文件中查找主机名,
## 然后使用DNS协议进行查找
hosts: files dns