TCP testing tool under Linux
How to install tcpping on Linux
A common way to measure network latency to a remote host is to use the ping
application. The ping
tool relies on ICMP ECHO request and reply packets to measure the round-trip latency of the remote host. However, in some cases, ICMP traffic may be blocked by a firewall, making the ping
application useless for hosts behind restricted firewalls. In this case, you will need to rely on layer 3 measurement tools that use TCP/UDP packets, as these layer 3 packets are more likely to bypass common firewall rules.

One such layer 3 measurement tool is tcpping
. To measure latency, tcpping
utilizes the so-called semi-open connection technology
, based on TCP three-way handshake. That is, it sends a TCP SYN packet to the remote host via the port number (default is 80). If the remote host is listening on that port, it will respond with a TCP ACK packet. Otherwise, it will respond with a TCP RST packet. Either way, tcpping
can measure the round-trip time (RTT) latency of the remote host by timing outgoing SYN packets and incoming ACK (or RST) packets.
Installation on Linuxtcpping
tcpping
Implemented as a shell script that responds to external tools to perform and report RTT measurements. Therefore, in order to install tcpping
, you first need to install these prerequisites.
Installation dependencies tcptraceroute
To install on Ubuntu or Debiantcptraceroute
:
$ sudo apt-get install tcptraceroute
To install tcptraceroute
on CentOS or RHEL, first set up RepoForge on your system, then run:
$ sudo yum install tcptraceroute
安装依赖 bc
使用的另一个工具tcpping
是GNUbc
,它预装在所有主要的 Linux 发行版上。但是,如果你tcpping
在最小 Linux 运行时环境(例如Docker容器、AWS 最小映像 AMI)中运行,则bc
可能不会预先安装。在这种情况下,你需要bc
自己安装。
在Debian 的 Linux 上安装:
$ sudo apt-get install bc
在 Red Hat 的 Linux 上安装:
$ sudo yum install bc
安装 tcpping
安装这些必备工具后,最后继续tcpping
从官方源下载。
$ wget http://www.vdberg.org/~richard/tcpping $ cp tcpping /usr/bin $ chmod 755 tcpping
使用tcpping
来衡量延迟
要使用 测量网络延迟tcpping
,你可以使用以下格式。
tcpping [-d] [-c] [-r sec] [-x count] ipaddress [端口]
-
-d
: 在每个结果之前打印时间戳。 -
-c
: 使用分列输出以便于解析。 -
-r
:连续探测之间的间隔(以秒为单位)(默认为 1 秒)。 -
-x
: 重复 n 次(默认无限制)。 -
[port]
: 目标端口(默认为 80)。
请注意,你需要 root 权限才能运行,tcpping
因为它需要调用特权tcptraceroute
命令。
对于任何开放 80 端口的目标 Web 服务器,你可以使用以下方法测量其 RTT 延迟tcpping
。
tcpping www.rumenz.com seq 0: tcp response from 42.194.162.109 (42.194.162.109) 33.822 ms traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets seq 1: tcp response from 42.194.162.109 (42.194.162.109) 33.975 ms traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets seq 2: tcp response from 42.194.162.109 (42.194.162.109) 32.010 ms traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets seq 3: tcp response from 42.194.162.109 (42.194.162.109) 32.209 ms traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets seq 4: tcp response from 42.194.162.109 (42.194.162.109) 30.866 ms traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets seq 5: tcp response from 42.194.162.109 (42.194.162.109) 34.866 ms traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets seq 6: tcp response from 42.194.162.109 (42.194.162.109) 32.604 ms traceroute to rumenz.com (42.194.162.109), 255 hops max, 60 byte packets seq 7: tcp response from 42.194.162.109 (42.194.162.109) 30.495 ms
对于任意远程主机,在运行tcpping
. 要检查远程 TCP 端口是否打开,你可以使用nc
如下命令。
$ nc -vn
-t
: 连续 TCPing ,直到使用 Ctrl+C 键停止
tcping -t 1.1.1.1 80
-n 5
: TCPing 5次后停止
tcping -i 5 1.1.1.1 80
-w 0.5
: 设置超时时间为 0.5秒(1秒=1000毫秒),单位 秒
tcping -w 0.5 1.1.1.1 80
-d
:在每行返回信息中加入时间信息
tcping -d 1.1.1.1 80
-s
: 当 TCPing 测试成功后(在超时时间以内返回 TCPing 延迟数据)自动停止 TCPing
tcping -s 1.1.1.1 80
-4
: 优先 IPv4(如果一个域名有 IPv4 和 IPv6 解析,那么走 IPv4)
tcping -s 1.1.1.1 80
-6
:优先 IPv6(如果一个域名有 IPv4 和 IPv6 解析,那么走 IPv6)
tcping -6 www.rumenz.com 80
--file
: TCPing 将逐行循环遍历文件内的 服务器IP/域名 信息(一行一个,支持端口,例如:1.1.1.1 443)
tcping --file rumenz.txt
The above is the detailed content of TCP testing tool under Linux. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

vscode built-in terminal is a development tool that allows running commands and scripts within the editor to simplify the development process. How to use vscode terminal: Open the terminal with the shortcut key (Ctrl/Cmd). Enter a command or run the script. Use hotkeys (such as Ctrl L to clear the terminal). Change the working directory (such as the cd command). Advanced features include debug mode, automatic code snippet completion, and interactive command history.

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

Writing code in Visual Studio Code (VSCode) is simple and easy to use. Just install VSCode, create a project, select a language, create a file, write code, save and run it. The advantages of VSCode include cross-platform, free and open source, powerful features, rich extensions, and lightweight and fast.

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

Causes and solutions for the VS Code terminal commands not available: The necessary tools are not installed (Windows: WSL; macOS: Xcode command line tools) Path configuration is wrong (add executable files to PATH environment variables) Permission issues (run VS Code as administrator) Firewall or proxy restrictions (check settings, unrestrictions) Terminal settings are incorrect (enable use of external terminals) VS Code installation is corrupt (reinstall or update) Terminal configuration is incompatible (try different terminal types or commands) Specific environment variables are missing (set necessary environment variables)

VS Code One-step/Next step shortcut key usage: One-step (backward): Windows/Linux: Ctrl ←; macOS: Cmd ←Next step (forward): Windows/Linux: Ctrl →; macOS: Cmd →
