不少時候,咱們須要測試 tcp 端口。ping 命令雖然好用,但不能測試端口,由於 ping 基於ICMP協議,屬於IP層協議,因此沒法測試傳輸層的 TCP/UDP 端口。幸虧有tcping命令,能夠實現tcp端口檢測。php
1. 用途
監聽主機的端口狀態,默認是80端口,也能夠指定其它端口html
看到ping返回的時間,檢測主機是否有延時或者端口不通 linux
2. 安裝
訪問tcping主頁,下載安裝包tcping-1.3.5.tar.gz,編譯安裝tcping(須要安裝gcc、make)。
# tar zxvf tcping-1.3.5.tar.gz windows
# cd tcping-1.3.5 安全
# yum install -y gcc 網絡
# make tcp
# cp tcping /usr/bin/post
在本地主機和遠程主機之間,tcping能夠測試出執行TCP三次握手所需的時間(SYN,SYN / ACK,ACK)。最終ACK傳送時間不包括在內,只有最少的時間才能將其丟棄在近端的電線。 測試
選項
-4,優先使用IPv4url
-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同樣持續發送。