Home> System Tutorial> LINUX> body text

TCP testing tool under Linux

WBOY
Release: 2024-02-11 23:48:28
forward
652 people have browsed it

How to install tcpping on Linux

A common way to measure network latency to a remote host is to use thepingapplication. Thepingtool 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 thepingapplication 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.

TCP testing tool under Linux

One such layer 3 measurement tool istcpping. To measure latency,tcppingutilizes the so-calledsemi-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,tcppingcan 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

tcppingImplemented as a shell script that responds to external tools to perform and report RTT measurements. Therefore, in order to installtcpping, you first need to install these prerequisites.

Installation dependenciestcptraceroute

To install on Ubuntu or Debiantcptraceroute:

$ sudo apt-get install tcptraceroute
Copy after login

To installtcptracerouteon CentOS or RHEL, first set up RepoForge on your system, then run:

$ sudo yum install tcptraceroute
Copy after login

安装依赖bc

使用的另一个工具tcpping是GNUbc,它预装在所有主要的 Linux 发行版上。但是,如果你tcpping在最小 Linux 运行时环境(例如Docker容器、AWS 最小映像 AMI)中运行,则bc可能不会预先安装。在这种情况下,你需要bc自己安装。

在Debian 的 Linux 上安装:

$ sudo apt-get install bc
Copy after login

在 Red Hat 的 Linux 上安装:

$ sudo yum install bc
Copy after login

安装tcpping

安装这些必备工具后,最后继续tcpping从官方源下载。

$ wget http://www.vdberg.org/~richard/tcpping $ cp tcpping /usr/bin $ chmod 755 tcpping
Copy after login

使用tcpping来衡量延迟

要使用 测量网络延迟tcpping,你可以使用以下格式。

tcpping [-d] [-c] [-r sec] [-x count] ipaddress [端口]
Copy after login
  • -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
Copy after login

对于任意远程主机,在运行tcpping. 要检查远程 TCP 端口是否打开,你可以使用nc如下命令。

$ nc -vn
Copy after login

-t: 连续 TCPing ,直到使用 Ctrl+C 键停止

tcping -t 1.1.1.1 80
Copy after login

-n 5: TCPing 5次后停止

tcping -i 5 1.1.1.1 80
Copy after login

-w 0.5: 设置超时时间为 0.5秒(1秒=1000毫秒),单位 秒

tcping -w 0.5 1.1.1.1 80
Copy after login

-d:在每行返回信息中加入时间信息

tcping -d 1.1.1.1 80
Copy after login

-s: 当 TCPing 测试成功后(在超时时间以内返回 TCPing 延迟数据)自动停止 TCPing

tcping -s 1.1.1.1 80
Copy after login

-4: 优先 IPv4(如果一个域名有 IPv4 和 IPv6 解析,那么走 IPv4)

tcping -s 1.1.1.1 80
Copy after login

-6:优先 IPv6(如果一个域名有 IPv4 和 IPv6 解析,那么走 IPv6)

tcping -6 www.rumenz.com 80
Copy after login

--file: TCPing 将逐行循环遍历文件内的 服务器IP/域名 信息(一行一个,支持端口,例如:1.1.1.1 443)

tcping --file rumenz.txt
Copy after login

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!

source:lxlinux.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!