公网测速-speedtest-cli
Centos7示例:
# 安装speedtest-cli
pip3 install speedtest-cli
# 查看是否可执行
which speedtest-cli
#创建软链接--如果找不到speedtest-cli命令时执行.
ln -s /usr/local/bin/speedtest-cli /usr/local/sbin/speedtest-cli
# 更新所有的测速点
speedtest-cli --list
# 测速
speedtest-cli --share
# 查看所有测速点
speedtest-cli --list
# 指定测速点
speedtest-cli --server=29071 --share
iperf3测速服务器搭建
系统版本声明:Centos8
本文也适用于Centos7
安装iperf3
# Ubuntu安装iperf3
sudo apt install iperf3 -y
# Centos安装
yum install iperf3 -y
# 检查iperf3是否安装成功
which iperf3
启动服务端
iperf3的默认端口
是5201
-s 以服务器模式启动
-D 以守护进程模式运行
-p 定义端口号;
-i 设置每次报告之间的时间间隔,单位为秒,如果设置为非零值,就会按照此时间间隔输出测试报告,默认为0
# 启动iperf3服务端
## -s 以服务器模式启动
iperf3 -s
# iperf3 –s –u # 3.1.7版本已经不需要-u参数,-s默认启动的tcp和udp
## -D 以守护进程模式运行
iperf3 -s -D
#服务端使用自定义端口
## -s 以服务器模式启动
## -p 定义端口号;
## -D 以守护进程模式运行
iperf3 –s –p 55 -D
iperf3客户端测速
https://www.nixops.me/articles/iperf-check-bandwidth.html
参数 解释
-c 指定服务器地址
-p 表示服务器的端口号;
-u 使用udp协议;
-b 指定客户端通过UDP协议发送信息的带宽,默认值为1Mbit/s
-n 指定传输的字节数
-t 指定Iperf测试时间,默认10秒
-i 设置每次报告之间的时间间隔,单位为秒,如果设置为非零值,就会按照此时间间隔输出测试报告,默认值为零;
-F 传输或接收特定的文件
-P 客户端到服务器的连接数,默认值为1
-T 指定ttl值
-w 设置套接字缓冲区为指定大小,对于TCP方式,此设置为TCP窗口大小,对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值.
–logfile 参数可以将输出的测试结果储存至文件中.
-J 来输出JSON格式测试结果.
-R 反向传输(测试下载速度)
上传测速
# 默认是测试的上传速度
## -c 表示服务器的IP地址;
iperf3 -c 测速服务器IP
# (-P)多线程
## -P 线程数
iperf3 -c 47.108.52.5 -t 60 -P 2
#客户端UDP测速(上传)
#UDP测速默认只有1M,需要准确测速需要加-b参数指定最大带宽
## -c 表示服务器的IP地址;
## -u 使用udp协议;
## -b 指定客户端通过UDP协议发送信息的带宽,默认值为1Mbit/s
## -t 持续时间60s
iperf3 –c 171.220.227.80 -u -b 1000M -t 60
下载测速
# 测试下载测速
## -R 下载
iperf3 -c 47.108.52.5 -R
#客户端UDP测速(下载-R)
## -u 使用udp协议;
## -b 指定客户端通过UDP协议发送信息的带宽,默认值为1Mbit/s
## -R 下载
iperf3 -c 47.108.52.5 -u -b 1000M -R
# 客户端持续60s(下载-R)
## -u 使用udp协议;
## -p 指定端口
## -b 指定客户端通过UDP协议发送信息的带宽,默认值为1Mbit/s
## -R 下载
iperf3 -c 47.108.52.5 -u –p 55 -b 1000M –t 60 -R
# (-P)多线程下载
## -u 使用udp协议;
## -b 指定客户端通过UDP协议发送信息的带宽,默认值为1Mbit/s
## -t 持续事件
## -P 线程数
## -R 下载
iperf3 -c 47.108.52.5 -u -b 100M -t 60 -P 2 -R
Windows下iperf3测速不准原因
中断合并(interrupt coalescence) 也叫中断调整 (interrupt Moderation)
需要服务器和客户端网卡都开启中断调整(interrupt moderation),不开启大流量测速时网速可能不准.
不是所有网卡都有中断调整(interrupt moderation)选项
使用systemd设置iperf3开机自启
https://gist.github.com/auipga/64be019018ef311deba2211ced316f5e
服务器创建iperf3服务用户,配置bash为nologin
# 创建iperf3服务用户,配置bash为nologin
## -M 不建立用户目录
## -s 指定shell
useradd -M -s /sbin/nologin iperf3
iperf3.service
文件
Centos7
的service
目录/usr/lib/systemd/system/iperf3.service
Ubuntu
的service
目录/lib/systemd/system/iperf3.service
[Unit]
Description=iperf3 server
After=network.target
[Service]
Type=simple
User=iperf3
Group=iperf3
ExecStart=/usr/bin/iperf3 -s
ExecStop=/usr/bin/pkill iperf3
Restart=always
# 最大运行秒数(7天自动重启)
RuntimeMaxSec=604800
RestartSec=2s
[Install]
WantedBy=multi-user.target
设为开机自启
# 重载改动过的服务
systemctl daemon-reload
# 设为开机自启
systemctl enable --now iperf3
# 查看服务状态
systemctl status iperf3
用supervisor设置iperf3开机自启服务
# 安装supervisor
yum install -y supervisor
# 设置supervisord为开机自启并现在启动服务
sudo systemctl enable --now supervisord
服务器创建iperf3服务用户,配置bash为nologin
# 创建iperf3服务用户,配置bash为nologin
## -M 不建立用户目录
## -s 指定shell
useradd -M -s /sbin/nologin iperf3
配置ini文件
创建日志保存目录
# 创建日志保存目录
mkdir -p /var/log/supervisord.log
在/etc/supervisord.d/
目录中添加iperf3.ini
文件
配置内容如下
[program:iperf3]
command=/usr/bin/iperf3 -s
autostart=true
autorestart=true
user=iperf3
startsecs=1
startretries=3
redirect_stderr=true
stdout_logfile=/var/log/supervisord.log/access_iperf3.log
stderr_logfile=/var/log/supervisord.log/error_iperf3.log
启动iperf3后台服务器
iperf3的默认端口是5201
# 更新supervisor配置文件
supervisorctl update
# 重新加载supervisor配置文件
supervisorctl reload
# 查看supversiord管理的服务运行状态
[cesu-c8 root ~]# supervisorctl status
iperf3 RUNNING pid 36155, uptime 0:00:06
# 查看iperf3服务器是否启动
[cesu-c8 root ~]# supervisorctl status iperf3
iperf3 RUNNING pid 36155, uptime 0:00:48
# 查看端口是否处于监听状态
[cesu-c8 root ~]# ss -tunlp|grep 5201
tcp LISTEN 0 128 *:5201 *:* users:(("iperf3",pid=36155,fd=3))
公共测速服务器
https://iperf.fr/iperf-servers.php#public-servers
https://blog.csdn.net/oujiangping/article/details/78260172
————————————————
原文链接:https://blog.csdn.net/omaidb/article/details/120478171