原创

教你如何ping指定端口

ping是简单的测试网络连接情况的小工具,对于一般用户很实用,但是ping有个缺点就是,不能指定端口,同时如果源地址禁ping的话,ping命令就形同虚设。 ——前言

tcping命令是针对tcp监控的,也可以看到ping值,即使源地址禁ping也可以通过tcping来监控服务器网络状态,除了简单的ping之外,tcping最大的一个特点就是可以指定监控的端口。

tcping命令使用方法很简单

  1. 下载tcping工具:http://www.elifulkerson.com/projects/tcping.php(分具体版本:32bit、64bit)
  2. 将下载的tcping.exe或者tcping64.exe文件放到C:\Windows\System32目录下(ping命令也是在这个目录下)
  3. 使用命令:tcping64 -d -t 127.0.0.1 6001

注意:如果你下载的是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的持续发送


正文到此结束