close
如何在Linux上安裝Tcpping?

測量到遠程主機的網絡延遲的一種常用方法是使用ping應用程序。該ping工具依賴ICMP ECHO請求和回複數據包來測量遠程主機的往返延遲。

但是,在某些情況下,ICMP流量可能會被防火牆阻止,這使得該ping應用程序對於受限制的防火牆後面的主機毫無用處。

在這種情況下,你將需要依賴使用TCP/UDP數據包的第3層測量工具,因為這些第3層數據包更有可能繞過常見的防火牆規則。

一種這樣的第3層測量工具是Tcpping。為了測量延遲,Tcpping利用所謂的半開放連接技術,基於TCP三路握手。也就是說,它通過端口號(默認為80)向遠程主機發送TCP SYN數據包。

如果遠程主機正在偵聽該端口,它將以TCP ACK數據包響應。否則,它將以TCP RST數據包響應。無論哪種方式,Tcpping都可以通過定時傳出SYN數據包和傳入ACK(或RST)數據包來測量遠程主機的往返時間 (RTT) 延遲。

1、在Linux上安裝Tcpping

Tcpping作為Shell腳本實現,該腳本響應外部工具來執行和報告RTT測量。因此,為了安裝Tcpping,你首先需要先安裝這些先決條件。

2、安裝依賴Tcptraceroute

要在Ubuntu或Debian上安裝Tcptraceroute:

$sudoapt-getinstalltcptraceroute

要在CentOS或RHEL上安裝Tcptraceroute,首先在你的系統上設置RepoForge,然後運行:

$sudoyuminstalltcptraceroute

3、安裝依賴BC

使用的另一個工具Tcpping是GNUbc,它預裝在所有主要的Linux發行版上。但是,如果你Tcpping在最小Linux運行時環境(例如Docker容器、AWS最小映像AMI)中運行,則BC可能不會預先安裝。在這種情況下,你需要BC自己安裝。

在Debian的Linux上安裝:

$sudoapt-getinstallbc

在Red Hat的Linux上安裝:

$sudoyuminstallbc

4、安裝Tcpping

安裝這些必備工具後,最後繼續Tcpping從官方源下載。

$wgethttp://www.vdberg.org/~richard/tcpping$cptcpping/usr/bin$chmod755tcpping

5、使用Tcpping來衡量延遲

要使用測量網絡延遲Tcpping,你可以使用以下格式。

tcpping[-d][-c][-rsec][-xcount]ipaddress[端口]

-d: 在每個結果之前打印時間戳。

-c: 使用分列輸出以便於解析。

-r:連續探測之間的間隔(以秒為單位)(默認為1秒)。

-x: 重複n次(默認無限制)。

[port]: 目標端口(默認為80)。

請注意,你需要root權限才能運行,Tcpping因為它需要調用特權Tcptraceroute命令。

對於任何開放80端口的目標Web服務器,你可以使用以下方法測量其RTT延遲Tcpping。

tcppingwww.rumenz.comseq0:tcpresponsefrom42.194.162.109(42.194.162.109)<syn,ack>33.822mstraceroutetorumenz.com(42.194.162.109),255hopsmax,60bytepacketsseq1:tcpresponsefrom42.194.162.109(42.194.162.109)<syn,ack>33.975mstraceroutetorumenz.com(42.194.162.109),255hopsmax,60bytepacketsseq2:tcpresponsefrom42.194.162.109(42.194.162.109)<syn,ack>32.010mstraceroutetorumenz.com(42.194.162.109),255hopsmax,60bytepacketsseq3:tcpresponsefrom42.194.162.109(42.194.162.109)<syn,ack>32.209mstraceroutetorumenz.com(42.194.162.109),255hopsmax,60bytepacketsseq4:tcpresponsefrom42.194.162.109(42.194.162.109)<syn,ack>30.866mstraceroutetorumenz.com(42.194.162.109),255hopsmax,60bytepacketsseq5:tcpresponsefrom42.194.162.109(42.194.162.109)<syn,ack>34.866mstraceroutetorumenz.com(42.194.162.109),255hopsmax,60bytepacketsseq6:tcpresponsefrom42.194.162.109(42.194.162.109)<syn,ack>32.604mstraceroutetorumenz.com(42.194.162.109),255hopsmax,60bytepacketsseq7:tcpresponsefrom42.194.162.109(42.194.162.109)<syn,ack>30.495ms

對於任意遠程主機,在運行Tcpping,要檢查遠程TCP端口是否打開,你可以使用nc如下命令。

$nc-vn<ip-address><port-number>

-t: 連續CPing ,直到使用Ctrl+C鍵停止

tcping-t1.1.1.180

-n 5: TCPing 5次後停止

tcping-i51.1.1.180

-w 0.5: 設置超時時間為0.5秒(1秒=1000毫秒),單位秒

tcping-w0.51.1.1.180

-d:在每行返回信息中加入時間信息

tcping-d1.1.1.180

-s: 當TCPing測試成功後(在超時時間以內返回TCPing延遲數據)自動停止TCPing

tcping-s1.1.1.180

-4: 優先IPv4(如果一個域名有IPv4和IPv6解析,那麼走IPv4)

tcping-s1.1.1.180

-6:優先IPv6(如果一個域名有IPv4和IPv6解析,那麼走IPv6)

tcping-6www.rumenz.com80

--file: TCPing將逐行循環遍歷文件內的服務器IP/域名信息(一行一個,支持端口,例如:1.1.1.1 443)

tcping--filerumenz.txt

推薦↓↓↓

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()