ping是简单的测试网络连接情况的小工具,对于一般用户很实用,但是ping有个缺点就是,不能指定端口,同时如果源地址禁ping的话,ping命令就形同虚设。 ——前言
tcping命令是针对tcp监控的,也可以看到ping值,即使源地址禁ping也可以通过tcping来监控服务器网络状态,除了简单的ping之外,tcping最大的一个特点就是可以指定监控的端口。
tcping命令使用方法很简单
注意:如果你下载的是tcping.exe并且没有改文件名,在cmd中使用时需要输入tcping -p ip xxx使用,如果你下载的是64bit的tcping64.exe并且没有改文件名,在cmd中使用时需要输入tcping64 -p ip xxx使用
官方使用教程
- NAME
- tcping - simulate "ping" over tcp by establishing a connection to network hosts.
- Measures the time for your system to [SYN], receive the target's [SYN][ACK] and send [ACK]. Note that the travel time for
- the last ACK is not included - only the time it takes to be put on the wire a the sending end.
-
- SYNOPSIS
- tcping [-tdsvf46] [-i interval] [-n times] [-w interval] [-b n] [-r times][-j depth] [--tee filename] [-f] destination [port]
-
- DESCRIPTION
- tcping measures the time it takes to perform a TCP 3-way handshake (SYN, SYN/ACK, ACK) between itself and a remote host.
- The travel time of the outgoing final ACK is not included, only the (minimal) amount of time it has taken to drop it on
- the wire at the near end. This allows the travel time of the (SYN, SYN/ACK) to approximate the travel time of the
- ICMP (request, response) equivalent.
-
- OPTIONS
- -4 Prefer using IPv4
-
- -6 Prefer using IPv6
-
- -t ping continuously until stopped via control-c
-
- -n count
- send _count_ pings and then stop. Default 4.
-
- -i interval
- Wait _interval_ seconds between pings. Default 1. Decimals permitted.
-
- -w interval
- Wait _interval_ seconds for a response. Default 2. Decimals permitted.
-
- -d include date and time on every output line
-
- -f Force sending at least one byte in addition to making the connection.
-
- -g count
- Give up after _count_ failed pings.
-
- -b type
- Enable audible beeps.
- '-b 1' will beep "on down". If a host was up, but now its not, beep.
- '-b 2' will beep "on up". If a host was down, but now its up, beep.
- '-b 3' will beep "on change". If a host was one way, but now its the other, beep.
- '-b 4' will beep "always".
-
- -c only show output on a changed state
-
- -r count
- Every _count_ pings, we will perform a new DNS lookup for the host in case it changed.
-
- -s Exit immediately upon a success.
-
- -v Print version and exit.
-
- -S source_address
- Use _source_address_ as the tcp client's source address. Must be a valid IP address on the client system.
-
- -j Calculate jitter. Jitter is defined as the difference between the last response time and the historical average.
-
- -js depth
- Calculate jitter, as with -j but with an optional _depth_ argument specified. If _depth_ is specified tcping will
- use the prior _depth_ values to calculate a rolling average.
-
- --tee _filename_
- Duplicate output to the _filename_ specified. Windows can still not be depended upon to have a useful command line
- environment. Don't tease me, *nix guys.
-
- --file
- Treat the "destination" option as a filename. That file becomes a source of destinations, looped through on a
- line by line basis. Some options don't work in this mode and statistics will not be kept.
-
-
- destination
- A DNS name, an IP address, or (in "http" mode) a URL.
- Do not specify the protocol ("http://") in "http" mode. Also do not specify server port via ":port" syntax.
- For instance: "tcping http://www.elifulkerson.com:8080/index.html" would fail
- Use the style: "tcping www.elifulkerson.com/index.html 8080" instead.
-
- port
- A numeric TCP port, 1-65535. If not specified, defaults to 80.
-
- --header
- include a header with the command line arguments and timestamp. Header is implied if using --tee.
-
- --block
- use a "blocking" socket to connect. This prevents -w from working, uses the default timeout of around 20 seconds,
- and might break other expected behavior. However, it can detect an actively refused connection vs a timeout.
-
- HTTP MODE OPTIONS
- -h Use "http" mode. In http mode we will attempt to GET the specified document and return additional values including
- the document's size, http response code, kbit/s.
- -u In "http" mode, include the target URL on each output line.
-
- --post Use POST instead of GET in http mode.
- --head Use HEAD instead of GET in http mode.
- --get Shorthand to invoke "http" mode for consistency's sake.
-
- --proxy-server _proxyserver_
- Connect to _proxyserver_ to request the url rather than the server indicated in the url itself.
- --proxy-port _port_
- Specify the numeric TCP port of the proxy server. Defaults to 3128.
- --proxy-credentials username:password
- Specify a username:password pair which is sent as a 'Proxy-Authorization: Basic' header.
-
-
- RETURN VALUE
- tcping returns 0 if all pings are successful, 1 if zero pings are successful and 2 for mixed outcome.
-
- BUGS/REQUESTS
- Please report bugs and feature requests to the author via contact information on http://www.elifulkerson.com
-
- AVAILABILITY
- tcping is available at http://www.elifulkerson.com/projects/tcping.php
常用的命令:
- -4/-6 (优先使用IPv4/IPv6地址)
- -d (发送命令的时间)
- -t (-t是让命令持续运行,知道使用ctrl + c指令退出)
- -h (使用http模式)
- -u (与-h命令连用,输出目标的url)
- -n (发送命令的次数,默认4次)
- -i (发送命令的间隔时间,默认1s,可以为小数)
- -w ( 等待响应的间隔时间,默认2s,可以为小数)
实际应用
- C:\Users\zhangyd>tcping64 -d -h -u -n 10 -i 0.1 -w 0.1 xxx.xx.xxx.xx 6001
- ** Pinging continuously. Press control-c to stop **
- ** Requesting from xxx.xx.xxx.xx:
- (for various reasons, kbit/s is an approximation)
- 2016:12:06 10:36:07 Probing xxx.xx.xxx.xx:6001/tcp - HTTP is open - time=204.694ms page:http://xxx.xx.xxx.xx rcv_time=203.528 status=200 bytes=583 kbit/s=~22.916
- 2016:12:06 10:36:07 Probing xxx.xx.xxx.xx:6001/tcp - HTTP is open - time=208.675ms page:http://xxx.xx.xxx.xx rcv_time=208.560 status=200 bytes=583 kbit/s=~22.363
- 2016:12:06 10:36:08 Probing xxx.xx.xxx.xx:6001/tcp - HTTP is open - time=246.553ms page:http://xxx.xx.xxx.xx rcv_time=1040.546 status=200 bytes=583 kbit/s=~4.482
- 2016:12:06 10:36:09 Probing xxx.xx.xxx.xx:6001/tcp - HTTP is open - time=181.520ms page:http://xxx.xx.xxx.xx rcv_time=183.293 status=200 bytes=583 kbit/s=~25.446
- 2016:12:06 10:36:09 Probing xxx.xx.xxx.xx:6001/tcp - HTTP is open - time=195.658ms page:http://xxx.xx.xxx.xx rcv_time=202.854 status=200 bytes=583 kbit/s=~22.992
- 2016:12:06 10:36:10 Probing xxx.xx.xxx.xx:6001/tcp - HTTP is open - time=181.833ms page:http://xxx.xx.xxx.xx rcv_time=186.513 status=200 bytes=583 kbit/s=~25.006
- 2016:12:06 10:36:10 Probing xxx.xx.xxx.xx:6001/tcp - HTTP is open - time=227.706ms page:http://xxx.xx.xxx.xx rcv_time=226.750 status=200 bytes=583 kbit/s=~20.569
- 2016:12:06 10:36:11 Probing xxx.xx.xxx.xx:6001/tcp - HTTP is open - time=247.957ms page:http://xxx.xx.xxx.xx rcv_time=263.903 status=200 bytes=583 kbit/s=~17.673
- 2016:12:06 10:36:11 Probing xxx.xx.xxx.xx:6001/tcp - HTTP is open - time=235.967ms page:http://xxx.xx.xxx.xx rcv_time=187.247 status=200 bytes=583 kbit/s=~24.908
- 2016:12:06 10:36:11 Probing xxx.xx.xxx.xx:6001/tcp - HTTP is open - time=257.262ms page:http://xxx.xx.xxx.xx rcv_time=264.820 status=200 bytes=583 kbit/s=~17.612
- Ping statistics for xxx.xx.xxx.xx:6001
- 10 probes sent.
- 10 successful, 0 failed.
- Approximate trip times in milli-seconds:
- Minimum = 181.520ms, Maximum = 257.262ms, Average = 218.782ms
- Approximate download times in milli-seconds:
- Minimum = 183.293ms, Maximum = 1040.546ms, Average = 296.801ms
上面命令的意思解释为:
使用http模式(-h)并且在返回数据中显示目标源url地址(-u)的方式向ip为xxx.xx.xxx.xx 端口为6001的服务器发送10次数据包(-n 10),并且在返回数据行中显示发送数据包的日期(-d),指定每次发送数据包的间隔时间为0.1秒(-i 0.1),等待数据包相应的时间间隔为0.1秒(-w 0.1)
注:-t和-n同时存在时,优先指定-n,就是说:tcping64 -t -n 10 xxx.xx.xxx.xx命令只会发送10次数据包,并不是-t的持续发送