无论是服务器/客户机 最常用的就是ping命令,但ping命令只能检测ICMP协议,若对方禁止ping协议了,自然ping命令也就无法检测了,此时,我们可以通过tcping工具以tcp/udp协议方式来代替ping命令检测网络延迟状况,于此同时,我们还可以监听对方开放了哪些端口等信息;
windos下:
1、安装tcping工具
去官网下载tcping工具(根据自身系统选择32位/64位)https://elifulkerson.com/projects/tcping.php
注:下载对应32位或64位的exe文件,后将文件放到 c:\windows\system32\ 目录下面(如果下载的是64位的要把文件名改为tcping.exe 反之使用的时候要输入 tcping64 )然后在命令下输入tcping 如果出现帮助文档说明安装命令成功。
测试:检测某服务器rsync服务端口是否通畅
tcping -d -t 192.168.43.117 873
windos--tcping 参数如下:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-4,优先使用IPv4
-6,优先使用IPv6
-h,使用http模式
-t,让命令持续运行,直到使用ctrl + c指令退出
-n 数字,发送命令的次数,默认4次,tecping -n 6 www.baidu.com 会tcping 百度6次,也可以跟其他数字。
-i 数字,发送ping命令的时间间隔,默认1s,可以为小数
-w 数字,等待响应的时间间隔,默认2s,可以为小数
-d 使输出的每一行显示时间和日期
-f 强制ping命令至少发送一个比特(byte)
-g 数字,失败指定次就放弃(注意默认是80端口,若其他端口没开也算失败)
-b 数字,开启蜂鸣器,参数4会一直响铃,tcping -b 4 www.baidu.com
-c 只显示改变的信息(ping时间很短一般不会改变)
-r 数字,每发送指定个数据包,就重新查找主机一次(通过DNS或路由查找)
-s ping通就立即退出
-u 与-h命令连用,每一行输出目标的url
-v 显示版本信息
-j 使用默认的方法,求ping的均值减小波动,网络有一定的不稳定性时,用此参数可以减小波动
-js 数字,用指定个实例求平均值减小波动,使用这个参数,系统会tcping 指定次,然后求出平均值作为一次结果显示,减小波动
–tee file_path,将结果输出到指定位置,tcping –tee /data/test.txt192.168.0.100,会把ping的结果保存在/data下的test文件中
–file 从文件中获得ping的来源;在/data下新建一个test.txt文件,并输入要tcping的所有ip或域名,一行一个,然后执行命令tcping –file /data/test.txt,就会依次tcping文件中指定的地址
destination 可以是DNS地址、IP地址、URL(需要使用-h,http模式)。使用http模式时,不要加https//或:port,例如:tcping http://www.jd.com:80l就会失败,使用tcping www.jd.com 8080就会成功
port 数字 指定tcp端口(1-65535),如果不指定,默认是80
–header 在头部显示时间和日期,与–tee显示的格式差不多
–block tcping不通的等待时间,默认是20秒(很长)。–block可以把-w参数冲突掉 ,例如tcping --block www.baiu.com网址不正确,显然tcpping不通,默认会等待20s 。 tcping -w 0.5 –block www.baiu.com还是会等20s,而不是0.5s,因为–block选项会把-w选项冲突掉。
-------------------
HTTP模式参数
–post 在http模式中,使用post方法
–head 在http模式中,使用head方法
–get Shorthand to invoke “http” mode for consistency’s sake.
–proxy-server 指定代理服务
–proxy-port 指定代理服务端口
–proxy-credentials username:password 使用代理的安全验证,需要输入用户名和密码
------------
返回值
如果所有的pings是成功的,返回0;如果所有ping都失败,返回1;混合结果,返回2
详情见官网: http://www.elifulkerson.com/projects/tcping.php
----------------------------------------------------------------------------------------------------------
linux系统下tcping介绍:
tcpping 工具工作在 TCP 层,通过发送伪造的 TCP SYN 包并侦听来自服务器或中间设备返回的 SYN/ACK 或 RST 。代码100多行,源代码在此链接http://www.vdberg.org/~richard/tcpping,tcpping需要调用tcptraceroute。打印与ping近乎相同测试结果,tcping的介
绍参考链接http://www.vdberg.org/~richard/tcpping.html,这个是Richard van den Berg在2002年编写的,作者当时需要测量TCP往返时间。所以写了这个脚本。tcpping只支持Linux。
语法:
Usage: tcping [-q] [-t timeout_sec] [-u timeout_usec] <host> <port>
参数:
-d 在每个结果输出前打印时间戳
-c 将结果输出在一列
-C 输出与fping的-C选项相同的打印格式
-w Wait time in seconds (defaults to 3)
-r -r n:每n秒重复一次(默认1)
-x 重复n次(默认无限)
安装:
wget https://sources.voidlinux.eu/tcping-1.3.5/tcping-1.3.5.tar.gz
tar zxvf tcping-1.3.5.tar.gz
cd tcping-1.3.5/
#如果没有安装gcc,安装一下gcc
yum install gcc
gcc -o tcping tcping.c
cp tcping /usr/bin
#使用一下
tcping www.baidu.com 80