TCP端口檢測工具


很多時候,我們需要測試 tcp 端口。ping 命令雖然好用,但不能測試端口,因為 ping 基於ICMP協議,屬於IP層協議,所以無法測試傳輸層的 TCP/UDP 端口。幸好有tcping命令,可以實現tcp端口檢測。

 

1. 用途
監聽主機的端口狀態,默認是80端口,也可以指定其它端口

看到ping返回的時間,檢測主機是否有延時或者端口不通


2. 安裝

訪問tcping主頁,下載安裝包tcping-1.3.5.tar.gz,編譯安裝tcping(需要安裝gcc、make)。
# tar zxvf tcping-1.3.5.tar.gz

# cd tcping-1.3.5

# yum install -y gcc

# make

# cp tcping /usr/bin/

 

3. tcping參數詳解

  • 描述

在本地主機和遠程主機之間,tcping可以測試出執行TCP三次握手所需的時間(SYN,SYN / ACK,ACK)。最終ACK傳送時間不包括在內,只有最少的時間才能將其丟棄在近端的電線。 

選項
-4,優先使用IPv4

-6,優先使用IPv6

-h,使用http模式

-t,讓命令持續運行,直到使用ctrl + c指令退出

-n 數字,發送命令的次數,默認4次

-i 數字,發送ping命令的時間間隔,默認1s,可以為小數

-w 數字,等待響應的時間間隔,默認2s,可以為小數

-d,使輸出的每一行顯示時間和日期

-f,強制ping命令至少發送一個比特(byte)

-g 數字,失敗指定次就放棄(注意默認是80端口,若其他端口沒開也算失敗)

-b 數字,開啟蜂鳴器,參數4會一直響鈴

-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.elifulkerson.com:8080/index.html就會失敗,使用tcping www.elifulkerson.com/index.html 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

tcping is available at http://www.elifulkerson.com/projects/tcping.php

 

4. 開放端口和關閉端口
查看哪些端口被打開
# netstat -anp

防火牆關閉端口
# iptables -A INPUT -p tcp --drop 端口號-j DROP

# iptables -A OUTPUT -p tcp --dport 端口號-j DROP

防火牆打開端口
# iptables -A INPUT -p tcp --dport 端口號-j ACCEPT

linux打開端口
// 打開telnet23端口
# nc -lp 23 &

// 查看23端口是否打開
# netstat -an | grep 23

注意:linux每打開一個端口,都需要有相應的監聽程序。

 

5. 實例
# tcping -d -h -u -n 10 -i 0.1 -w 0.1 192.168.1.30 6001

意思:使用http模式(-h),並且在返回數據中顯示目標源url地址

(-u),向主機ip為192.168.1.30的6001端口發送10次數據包

(-n 10),在返回數據行中顯示發送數據包的日期

(-d),指定每次發送數據包的時間間隔為0.1秒

(-i 0.1),等待數據包相應的時間間隔為0.1秒

(-w 0.1) 注:-t和-n同時存在時,優先指定-n,即tcping -t -n 10 192.168.1.30命令只會發送10次數據包,並不是像-t一樣持續發送。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM