通过“telnet 到端口”测试测量延迟的最佳方法是什么,最好使用内置的 Linux 工具?

通过“telnet 到端口”测试测量延迟的最佳方法是什么,最好使用内置的 Linux 工具?

我正在编写一个 Graphite/Diamond 收集器来测量网络延迟。具体来说,它应该测量打开与远程服务器上的端口的连接所需的时间。并且它需要通过脚本工作,即没有人在键盘上以交互方式运行它。

举一个例子,其中 telnet 有一个虚构的参数,它可以完全满足我的需要。

time telnet --close-connection-immediately-after-established somehost.somedomain.com 1234

Trying somehost.somedomain.com...
Connected to somehost.somedomain.com.
Escape character is '^]'.
Connection closed automatically after established.

real    0m3.978s
user    0m0.001s
sys 0m0.003s

基本上,根据上述示例,仅使用内置工具,通过命令行输出 3.978 的方式是什么?

我认为你可以将 telnet 包装在一个期望脚本中并让它发出问题:

^]
close

...但这看起来相当丑陋。有什么想法吗?

答案1

关于什么 :

time nc -zw30 <host> <port>

答案2

只需使用ping或配置客户端 - 服务器设置并使用已建立的 unix 网络基准测试工具之一:
https://www.binarytides.com/linux-commands-monitor-network/
https://access.redhat.com/solutions/2122681

--

虽然time+nc对于获取延迟的大致估计很有用,但它不应该作为生产连接评估的事实。

例如,实例化和运行额外进程(如time)会花费大量时间。例如,我使用time+获得了 15-20ms 的结果nc,而使用传统 ping/ICMP echo 的结果则在 3-5ms 左右。对于快速测试,ping 似乎可以胜任,而对于更复杂的结果,通常需要客户端-服务器设置。

答案3

使用类似:

$: echo 'exit' | time telnet <HOST> <PORT>

相关内容