买了VPS或者安装Linux服务器后,有时候需要检查带宽网速情况,在Windows下有各种图形化客户端,也可以用浏览器打开测速网站进行测速。但装的Linux往往是没有视窗的,此时需要借助一些终端shell测速工具来完成。

常规下载工具测速

比如wget或者curl这种工具,下载某个网络上的文件来测速网络速度。

1
2
3
4
5
Saving to: `lnmp1.4-full.tar.gz'

100%[===========================================>] 488,716,790 48.5M/s in 8.9s

2017-11-15 13:11:59 (52.4 MB/s) - `lnmp1.4-full.tar.gz' saved [488716790/488716790]

Speedtest

speedtest是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行。它基于Speedtest.net的基础架构来测量网络的上/下行速率。
安装speedtest也不难:

1
2
3
4
wget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py
chmod a+rx speedtest.py
mv speedtest.py /usr/local/bin/speedtest
chown root:root /usr/local/bin/speedtest

执行以上几个命令就安装好了,然后运行的时候只要输入speedtest。如果你想分享测试结果,你可以使用参数–-share,它将会把你的测试结果上传到Speedtest.net服务器并以图形的方式分享给其他人。

一键测试脚本bench.sh

这个脚本个人很喜欢,测速结果也很详尽,几乎全面适用于各种 Linux 发行版的网络(下行)和 IO 测试:

  1. 显示当前测试的各种系统信息
  2. 取自世界多处的知名数据中心的测试点,下载测试比较全面
  3. 支持 IPv6 下载测速
  4. IO 测试三次,并显示平均值

配合 unixbench.sh 脚本测试,即可全面测试 VPS 的性能。

使用方法:

1
2
3
wget -qO- bench.sh | bash
#或者下面这命令下载执行
curl -Lso- bench.sh | bash

bench.sh 既是脚本名,同时又是域名,所以不要怀疑写错了或者你看错了
下载地址:https://github.com/teddysun/across/blob/master/bench.sh

bench测速结果

iperf测速网络性能

iperf分为server和client,支持TCP测速和UDP测速,个人建议局域网使用UDP测速会比较准确,对于丢包率和延迟都能反映的比较明显,而TCP由于重传机制,真实的带宽会不准。

服务端监听UDP命令: iperf -s -u
客户端使用UDP测试命令:iperf -u -c 服务端IP -b 1000M -t 60 -i 10

iperf命令行的参数可以iperf -help查看,罗列一下参数:

1
2
3
4
5
6
-s server
-c client + server IP
-u udp
-b bandwidth #这个是用来表示使用多大带宽进行发包,根据真实环境进行调整
-t time #发包多长时间,单位是秒
-i interval #结果输出间隔时间,如果不加这个参数,那么就等到全部测试完成才给结果

iftop查看单个IP耗费的流量

安装后直接iftop命令,然后就看到效果了。