-c: 执行ping操作的次数, 默认是一直执行, 除非被中断;
-s: 指定执行ping操作时发送的包的大小, 默认是56B, 添加报文头之后, 最终发送的是64B.
使用示例
# 在终端 ping 某个地址, 执行3次, 每次间隔2秒, 每次发送10KB的数据:
[root@localhost ~]# ping -c 3 -i 2 -s 10240 172.16.22.132
输出格式:
下图为简单的ping产生的响应内容,图中返回内容具体的含义如下:
FNR:各文件分别计数的行号\.注意:grep的--line-buffered选项和awk的fflush(stdout)命令可以使得grep和awk不缓存数据。不然文件不会有信息
#!/usr/bin/sh # ping -c -c: 执行ping操作的次数, 默认是一直执行, 除非被中断,86400次, 默认间隔1秒, 也就是24小时;-s 指定执行ping操作时发送的包的大小, 默认是56B ping -c 5 -s 20240 10.157.22.230 | gawk -F '[ ,=]' '$10>0.5''{print NR "\t" $5 "=" $6,$9"="$10,$11 "\t" strftime("%D_%H:%M:%S",systime())}' > logs/overReponseTime.txt |
# 输出包含 "re" 的行 $ awk '/re/ ' log.txt ls -l *.txt | awk '{sum+=$5} END {print sum}' awk 'BEGIN{FS=","} {print $1,$2}' log.txt awk 'BEGIN{FS=","} {print $1,$2}END {print sum}' log.txt
- awk
- 'BEGIN {print "统计销售金额";total=0} # 输出提示语"统计销售金额",并设置total变量为0
- {print $3;total=total+$3;} # 逐行扫描文件
- END {print "销售金额总计",total}' file.txt # 在扫描文件之后执行,打印total变量
通过脚本记录时间戳
很多时候, 我们除了监控网络时延的大小, 还想知道网络发生抖动时的具体时间 —— 可以将 ping 的结果通过管道进行处理.为了方便后期查看, 也防止退出终端时命令被中断, 我们可以通过后台运行命令(脚本)的方式进行操作.
脚本内容如下
#!/usr/bin/sh # ping 86400次, 默认间隔1秒, 也就是24小时 ping -c 10 -s 10240 10.157.22.230 | awk '{ print $0"\t" strftime("%D_%H:%M:%S",systime()) }' > ping_result.log |
为防止脚本被中断, 可以通过 nohup 令脚本在后台执行:nohup sh long_ping.sh &
要结束后台进程, 可通过下述方式查找并kill: ps aux | grep long_ping.sh ps -ef |grep long.sh
格式化时间 systime( [format specification][,timestamp] awk '{now=strftime("%D",systime());print now}'
awk '{[pattern] action}' {filenames} # 行匹配语句 awk '' 只能用单引号
awk -F #-F相当于内置变量FS, 指定分割字符
2 this is a test 3 Do you like awk This's a test 10 There are orange,apple,mongo
awk -v # 设置变量
awk -f {awk脚本} {文件名} ——>awk -f cal.awk log.txt
使用正则,字符串匹配.
~ 表示模式开始。// 中是模式。
# 输出包含 "re" 的行 $ awk '/re/ ' log.txt --------------------------------------------- 3 Do you like awk 10 There are orange,apple,mongo
# 输出第二列包含 "th",并打印第二列与第四列 $ awk '$2 ~ /th/ {print $2,$4}' log.txt --------------------------------------------- this a
忽略大小写
$ awk 'BEGIN{IGNORECASE=1} /this/' log.txt --------------------------------------------- 2 this is a test This's a test
模式取反
$ awk '$2 !~ /th/ {print $2,$4}' log.txt --------------------------------------------- Are like a There orange,apple,mongo $ awk '!/th/ {print $2,$4}' log.txt --------------------------------------------- Are like a There orange,apple,mongo
awk脚本
关于 awk 脚本,我们需要注意两个关键词 BEGIN 和 END。
解释一下变量:
变量:分为内置变量和自定义变量;输入分隔符FS和输出分隔符OFS都属于内置变量。
内置变量就是awk预定义好的、内置在awk内部的变量,而自定义变量就是用户定义的变量。
自定义变量的方法
#以":"为分隔符,输出1,3,4列内容
能ping通过
$ping -c 5 -s 20240 10.157.22.230 PING 10.157.22.230 (10.157.22.230) 20240(20268) bytes of data. 20248 bytes from 10.157.22.230: icmp_seq=1 ttl=63 time=1.87 ms 20248 bytes from 10.157.22.230: icmp_seq=2 ttl=63 time=0.495 ms 20248 bytes from 10.157.22.230: icmp_seq=3 ttl=63 time=0.500 ms 20248 bytes from 10.157.22.230: icmp_seq=4 ttl=63 time=0.507 ms 20248 bytes from 10.157.22.230: icmp_seq=5 ttl=63 time=0.453 ms --- 10.157.22.230 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4002ms rtt min/avg/max/mdev = 0.453/0.765/1.872/0.554 ms |
不能ping,丢包
$ping -c 5 -s 1240 172.16.22.132 PING 172.16.22.132 (172.16.22.132) 1240(1268) bytes of data. --- 172.16.22.132 ping statistics --- 5 packets transmitted, 0 received, 100% packet loss, time 3999ms |
等等
计算机网络——ping命令过程的详解、原理_欢喜躲在眉梢里的博客-CSDN博客_ping过程详解
ping是基于ICMP协议工作的。ICMP全称是Internet Control Message Protocol,就是互联网控制报文协议。
控制主要指的是?
网络包在异常复杂的网络环境中传输时,常常会遇到各种问题。遇到问题时,不能死的不明不白,所以需要传出消息来报告情况,这样才能调整传输策略。类比古代行军中,将军要通过侦察兵掌握情况,控制全局。
ICMP 是封装在IP包里面的。因为传输指令的时候,需要源地址和目标地址
ICMP报文有很多类型,不同的类型有不同的代码。最常用的类型是主动请求为8,主动请求的应答为0。
ICMP查询报文类型和主动应答的ICMP协议。ping 包比如原生的ICMP,多了两个字段,一个是标识符,用于标识功能的。一个是序号,统计回来数目的。
Traceroute的第一个作用就是故意设置特殊的TTL,来追踪去往目的地时沿途经过的路由器。
Traceroute故意设置不分片,来确定路径的MTU。
Postman之授权( Authorization)_51CTO博客_postman authorization
一个ip本就对应6w多个端口可供使用,但是端口的作用是辅助定位某个应用程序,也就是说,如果你一台服务器并未开启任何服务,那么你的所有端口都属于未使用状态,比如你开启一个nginx服务,监听80端口,并部署了一个网站,别人可以通过你的ip+端口访问你nginx上面部署的网站,通过ip确定是哪台设备,通过端口确定设备上的某个服务进程而已。
脚本 #!/bin/bash ####################### Separator ######################## ips="192.168.2.1 192.168.1.0/24" ports"22 3306 8080-8090" ####################### Separator ######################## systemctl start firewalld systemctl enable firewalld for i in $ips do for j in $ports do firewall-cmd --add-rich-rule="rule family="ipv4" source address="$i" port protocol="tcp" port="$j" accept" --permanent done echo $i done echo done firewall-cmd --reload |
是一个网络性能 测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。
(这里先不说怎么发包、带宽测试等带宽测试工具iperf3使用方法详解_逸趣,只说启服务端口)
eg:
环境假设:
假设两台云服务器A(内)和B(外),我们通过笔记本电脑终端分别ssh远程连接上云服务器A和B。
A(内)IP地址:10.10.0.1
B(外)IP地址:10.10.0.2
参数说明
-s 以server模式启动,eg:iperf -s
-c host 以client模式启动,host是server端地址,eg:iperf -c 222.35.11.23
通用参数
-f [k|m|K|M] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -f K
-i sec 以秒为单位显示报告间隔,eg:iperf -c 222.35.11.23 -i 2
-l 缓冲区大小,默认是8KB,eg:iperf -c 222.35.11.23 -l 16 -m 显示tcp最大mtu值
-o 将报告和错误信息输出到文件eg:iperf -c 222.35.11.23 -o c:\iperflog.txt
-p 指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 222.35.11.23 -p 9999
-u 使用udp协议
-w 指定TCP窗口大小,默认是8KB
-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)
-C 兼容旧版本(当server端和client端版本不一样时使用)
-M 设定TCP数据包的最大mtu值
-N 设定TCP不延时
-V 传输ipv6数据包 server专用参数
-D 以服务方式运行ipserf,eg:iperf -s -D -R 停止iperf服务,针对-D,eg:iperf -s -R
client端专用参数
-d 同时进行双向传输测试
-n 指定传输的字节数,eg:iperf -c 222.35.11.23 -n 100000
-r 单独进行双向传输测试
-t 测试时间,默认10秒,eg:iperf -c 222.35.11.23 -t 5
-F 指定需要传输的文件
-T 指定ttl值
tcping 命令 tcping 命令使用 TCP 协议(传输层),也可以看 ping 值,即使源地址禁 ping 也可以通过 tcping 来监控服务器网络状态。 可以指定监控的端口。
tcping -t 59.46.9.195 3389: -t是连续ping服务器59.36.100.195的3389端口,去掉-t就只发送默认的4次tcp包。
使用上来看tcping和telnet都可以用于,查看端口级别的连通情况
tcping
tcping:tcping命令基于tcp协议监控,可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从容硬线连接到分组交换或电路交换网络的各种通信系统之上操作。
tcping与ping的区别
指代不同
①ping:1、ping:是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。通过ICMP协议发送报文到对方主机上任意一个60000以上的端口,然后获取对方主机的回复
②tcping:是一种面向连接的、可靠的、基于字节流的传输层通信协议。使用tcp协议尝试与某一个端口建立连接,然后获取与对方主机建立一次连接的回复
功能不同
①.ping:利用“ping”命令可以检查网络是否连通,可以很好地帮助分析和判定网络故障。
②.tcping:适知应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成道对进程之间依靠TCP提供可靠的通信内服务。有些网络环境禁ping,想要知道网络或端口连通性,tcping就是很好的方法
特点不同
①.ping:Ping发送一个ICMP即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMPecho
②.tcping:可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从容硬线连接到分组交换或电路交换网络的各种通信系统之上操作