用于测试连接性和传输速率的Linux命令

下面是五个Linux命令,它们可以验证连接速度、分析延迟以及测试是否可以访问其他系统。

有很多工具可以帮助您在Linux命令行上测试连接性。在本文中,我们将研究一系列命令,这些命令有助于估计连接速度、测试是否可以访问其他系统、分析连接延迟以及确定特定服务是否可用。

发出砰的声响

ping命令是执行基本连接测试的最简单和最常用的命令。它发出的数据包称为echo requests,是请求响应的数据包。该命令查找响应并显示响应以及每个响应所用的时间,然后报告响应的请求百分比。

响应时间在很大程度上取决于请求需要穿越多少路由器,以及您的网络是否拥塞。ping本地系统可能是这样的。请注意,每个响应所需的毫秒数很小,数据包丢失率为0%。


    $ ping 192.168.0.11
PING 192.168.0.11 (192.168.0.11) 56(84) bytes of data.
64 bytes from 192.168.0.11: icmp_seq=1 ttl=64 time=4.36 ms
64 bytes from 192.168.0.11: icmp_seq=2 ttl=64 time=5.86 ms
64 bytes from 192.168.0.11: icmp_seq=3 ttl=64 time=2.87 ms
^C
--- 192.168.0.11 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 2.867/4.361/5.859/1.221 ms

    

在Linux系统上,ping将继续,直到您键入^c停止它们。包括Windows在内的一些系统发出四次ping,然后自行停止。远程系统需要相当长的时间来响应。零数据包丢失始终是一个好迹象,即使在ping远程系统时,除非出现问题,否则通常情况下也应该看到。

ping命令提供了检查家庭网络的网络连接的简单方法。将请求发送到可公开访问的系统,您应该预期0%的数据包丢失。 如果遇到问题,ping命令可能会显示严重的数据包丢失。


    $ ping 180.65.0.22
PING 180.65.0.22 (180.65.0.22) 56(84) bytes of data.
64 bytes from 180.65.0.22: icmp_seq=1 ttl=46 time=362 ms
64 bytes from 180.65.0.22: icmp_seq=2 ttl=46 time=305 ms
64 bytes from 180.65.0.22: icmp_seq=3 ttl=46 time=276 ms
64 bytes from 180.65.0.22: icmp_seq=4 ttl=46 time=257 ms
^C
--- 180.65.0.22 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 257.172/300.119/362.431/39.775 ms

    

示踪路线

Traceroute是一个复杂得多的命令,因为它运行一系列检查来查看路由器之间的每个跃点需要多长时间,并将其报告回来。如果整个检查需要很长时间,可能是一个或两个跃点拥挤。如果报告的结果降为星号序列,则到达的最后一个路由器无法响应所使用的数据包类型(Linux系统上默认为UDP)。

traceroute命令使用了一种聪明的技术来计时每个跃点。它使用一个生存时间(TTL)设置,该设置随每个跃点递减,以确保路由上的每个路由器在某个时刻都会发回错误消息。这允许traceroute 报告每一跳之间的持续时间。

下面是一个使用traceroute访问本地系统的示例(单跳和快速响应):


    $ traceroute 192.168.0.11
traceroute to 192.168.0.11 (192.168.0.11), 30 hops max, 60 byte packets
 1  192.168.0.11 (192.168.0.11)  9.228 ms  12.797 ms  12.782 ms

    

下一个traceroute命令试图到达远程系统,但无法报告每个跃点(显示星号的跃点),因为某些跃点的路由器不响应所使用的数据包类型。这并不罕见。

traceroute的默认最大跃点数为30。请注意,此设置显示在输出的第一行中。可以使用-m参数(例如traceroute-m 50 distance.org)更改它。


    $ traceroute www.amazon.com
traceroute to www.amazon.com (99.84.218.165), 30 hops max, 60 byte packets
 1  router (192.168.0.1)  1.586 ms  3.842 ms  4.074 ms
 2  10.226.32.1 (10.226.32.1)  27.342 ms  28.485 ms  29.529 ms
 3  10.17.1.25 (10.17.1.25)  30.769 ms  31.584 ms  32.379 ms
 4  10.17.0.221 (10.17.0.221)  33.126 ms  34.390 ms  35.284 ms
 5  10.17.0.226 (10.17.0.226)  37.000 ms  38.837 ms  40.808 ms
 6  204.111.0.145 (204.111.0.145)  44.083 ms  42.671 ms  42.582 ms
 7  99.82.178.164 (99.82.178.164)  44.254 ms  30.422 ms  31.666 ms
 8  * * *
 9  * * *
10  * * *
11  52.93.40.225 (52.93.40.225)  41.548 ms 52.93.40.223 (52.93.40.223)  41.808 ms 52.93.40.225 (52.93.40.225)  43.326 ms
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  server-99-84-218-165.iad79.r.cloudfront.net (99.84.218.165)  44.862 ms  44.746 ms  44.713 ms

    

ncat

ncat命令是一个多功能的网络实用程序 从命令行跨网络写入数据,但按如下所示的形式,允许您简单地确定是否可以连接到特定服务。它最初是为nmap编写的 (网络映射器)。

通过向远程系统上的特定端口发送零字节(z设置),我们可以确定相关服务是否可用,而无需实际使用连接。


    $ nc -z -v 192.168.0.11 22
Ncat: Version 7.80 ( https:/map.orgcat )
Ncat: Connected to 192.168.0.11:22.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.

    

上面的命令告诉我们ssh正在指定的系统上响应,但不尝试登录或运行远程命令。检查同一系统上的网站会发现端口80的情况正好相反(即没有运行web服务器)。


    $ nc -z -v 192.168.0.11 80
Ncat: Version 7.80 ( https:/map.orgcat )
Ncat: Connection refused.

    

当我们查看亚马逊网站时,我们得到了一个可以预见的不同反应:


    $ nc -z -v 99.84.218.165 80
Ncat: Version 7.80 ( https:/map.orgcat )
Ncat: Connected to 99.84.218.165:80.
Ncat: 0 bytes sent, 0 bytes received in 0.48 seconds.

    

正如您可能注意到的,可以使用nc或ncat调用ncat命令。

速度测试

speedtest工具测试您与Internet提供商的连接速度。本指南中的FCC建议12-25mbit/s大约是家庭使用的平均值。 

请注意,上传速度比下载速度慢很多并不少见。互联网提供商明白,大多数人下载的数据比上传的要多得多。速度测试 工具将突出显示任何差异。在下面的测试中,下载速度几乎是上传速度的9倍。


    $ speedtest

   Speedtest by Ookla

     Server: Winchester Wireless - Winchester, VA (id = 21859)
        ISP: Shentel Communications
    Latency:    25.86 ms   (0.96 ms jitter)
   Download:    10.34 Mbps (data used: 10.7 MB)
     Upload:     1.00 Mbps (data used: 1.1 MB)
Packet Loss:     0.0%
 Result URL: https://www.speedtest.net/result/c/bb2e002a-d686-4f9c-8f36-f93fbcc9b752

    

命令结果在不同的测试中会有所不同。

您也可以通过浏览器使用speedtest,方法是 speedtest.net(注:下载的免费speedtest副本仅供个人非商业用途。有关详细信息,请参阅EULA(使用协议)

快速的

您还可以安装一个名为fast的工具,它会多次检查您的下载速度,然后报告平均值。它只显示下载速度并使用Netflix速度测试服务。


    $ fast
$   10.08 Mbps
    

可以使用以下命令安装fast工具:


    $ wget https://github.com/ddo/fast/releases/download/v0.0.4/fast_linux_amd64
$ sudo install fast_linux_amd64 /usr/local/bin/fast
$ which fast
/usr/local/bin/fast

    

网猪

nethogs命令采用了与上述命令完全不同的方法。它按进程对带宽使用情况进行分组,以帮助您确定可能导致网络流量减慢的特定进程。换句话说,它可以帮助你精确定位“网猪”,所以它的名字很贴切。


    NetHogs version 0.8.6
    PID USER     PROGRAM                    DEV         SENT      RECEIVED
 127832 nemo     /usr/lib/firefox/firefox   enp0s2     11.120     432.207 KB/sec
 413216 shs      sshd: shs@pts/1            enp0s2      0.246       0.059 KB/sec
    696 root     /usr/sbin/NetworkManager   enp0s2      0.000       0.000 KB/sec
      ? root     unknown TCP                            0.000       0.000 KB/sec

  TOTAL                                                 0.246     432.266 KB/sec

    

在显示的输出中,使用大部分带宽的过程非常明显。

总结

有许多工具可用于在Linux系统上测试连接性和连接速度。这篇文章中提到的只是其中的一部分,但是代表了一系列既易于使用又信息丰富的工具。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁

评论区

Protected with IP Blacklist CloudIP Blacklist Cloud