VPS 网络测试与长期监测

对于一台服务器,优质的线路能确保机器与本地网络连通的上限,由于网络环境的不同,同一台服务器的表现可能有明显差别,因此想要最好的体验,必须在本地进行 网络测试 、综合比较之下才能肯定,网络测试可以分为两类:

  1. 瞬时的测试,包含延迟、丢包、Jitter(抖动)、上下行带宽
  2. 长期的测试,可以从日、月、年的周期查看网络情况,包含延迟、丢包、Jitter(抖动)

下面是衡量网络情况的主要指标。

  • 带宽(Bandwidth),指的是在特定时间范围内,从一点到另一点所能传输数据的最大速率,通常以比特每秒(bps)计量。较高的带宽意味着可以传输更多的数据,对于数据密集型服务尤为重要。
  • 吞吐量(Throughput),指在单位时间内成功传输的数据量,它受限于网络的带宽和其它因素(比如错误率,指的是传输过程中由于噪声、干扰等原因造成的错误数据包比率)。

上下行带宽可以使用 iperf3 测试,或者使用操作更简单的 LibreSpeed


  • 延迟(Latency),延迟表示数据从源头传送到目的地所需的时间,常以毫秒(ms)来度量。较低的延迟对于需要实时反应的应用(如在线游戏、语音或视频通话等)至关重要。
  • 往返时间(Round Trip Time, RTT),往返时间是一个数据包从发送者发送到接收者,再从接收者返回发送者所需的总时间。
  • 丢包率(Packet Loss Rate),丢包率是指从发送端到接收端过程中丢失的数据包比例。高丢包率可能导致网络连接不稳定,影响数据传输的完整性。
  • 抖动(Jitter),指延迟的变化量,即数据包到达时间的不一致性。
  • 可用性(Availability),指网络能够正常工作并提供服务的时间比率。高可用性意味着网络服务更加可靠,减少了停机时间。

延迟、丢包、抖动还是长期的数据更有价值,可以查看网络情况在一天中高峰期和低谷期的表现变化。可以使用 SmokePing 实现这一点。

根据具体的应用场景和需求,某些指标可能会比其他指标更加重要。例如,对于实时通讯,延迟和抖动的重要性要高于带宽;而对于文件传输,带宽和吞吐量则显得更为重要。

iPerf3

iPerf3 是专业的网络测试工具,它基于 TCP/IP 和 UDP/IP 协议,用以测量两个网络节点之间 TCP 和 UDP 端口的网络带宽,还能提供网络延迟、丢包率等统计信息。

iPerf 常用的版本有 iPerf2 和 iPerf3。 iPerf3 在 iPerf2 的基础上新增了一些功能,例如发送方/接收方角色互换,以 JSON 格式输出结果,零拷贝方式传输数据等等。也去掉了 iPerf2 中所支持少许功能,例如双向测试等。它们的命令名称也不一样,iPerf3 为 iperf3,iPerf2 为 iperf。

iPerf3 在工作时,测试的两端一方作为 Server,另一方为 Client。程序启动的命令相同,通过不同的参数来区别以哪种工作方式运行。通常情况下先启动 Server 端,使 iPerf 监听在某个固定端口。然后在 Client 端执行相应的命令开始测试。

安装

在需要测试的两台机器上分别安装 iperf3。

所有平台的下载地址: iPerf – Download iPerf3 and original iPerf pre-compiled binaries

Windows 版的 iPerf 下载、解压后可以直接在命令提示符下运行。

Linux

sudo apt-get install -y iperf3

会询问,是否要作为守护进程,选否

这种命令在熟悉基本工作原理之后,不用搜索资料,直接看参数说明就够用

iperf3 --help

iPerf3 服务端使用

启动 iperf3 服务

iperf3 --server -i 10 -p 19302
  • -s, --server: 启动iperf3以作为服务器端运行
  • -i 10: 设置报告间隔为10秒,每10秒输出一次测试结果
  • -p 19302: 指定使用的端口号为 19302。可以根据需要更改此端口号

不能同时为多个客户端测

在后台运行,断开 SSH 也可以使用

iperf3 --server -D -i 10 -p 19302 --logfile ./iperf.log
  • -D, --daemon: 在后台以守护进程(daemon)模式运行iperf3
  • --logfile ./iperf.log: 将iperf3的输出日志记录到指定路径下的文件./iperf.log

iPerf3 客户端使用

运行 iperf3 ,上传数据到服务器进行测试,运行60秒

iperf3 --client 192.168.1.51 -p 19302 -t 60 -f M -P 1 --get-server-output
  • -c, --client 192.168.0.18: 连接到IP地址为192.168.0.18的服务器。
  • -p 19302: 指定使用的端口号为19302。
  • -t 60: 设置测试持续时间为60秒。
  • -f M: 将带宽单位设置为兆字节(Mbps)。
  • -P 1: 使用1个并发连接进行测试。
  • --get-server-output: 获取服务器端的输出信息。

实际使用中,我习惯先配置变量,再测试,这样方便更改服务端 IP 和端口

server_ip=52.16.84.15
server_port=19302
iperf3 -c ${server_ip} -p ${server_port} -t 60 -f M -P 1    # 上传到服务端

这个命令与第一个命令类似,但是通过添加-R参数,它执行反向测试,即从服务器向客户端进行上传速度测试。

iperf3 -c ${server_ip} -p ${server_port} -t 60 -f M -P 1 -R   # 从服务端下载
  • -R: 反向测试,即从服务器向客户端进行上传速度测试。相当于 客户端 下载时的速度

LibreSpeed

使用浏览器检测当前网络与VPS之间的下载速度、上传速度、ping、Jitter(抖动),任何有浏览器的设备都可以使用。

GitHub: librespeed/speedtest: Self-hosted Speedtest for HTML5 and more. Easy setup, examples, configurable, mobile friendly. Supports PHP, Node, Multiple servers, and more (github.com)

DockerHub:adolfintel/speedtest – Docker Image | Docker Hub ,根据上面项目构建的

需要提前安装 Docker,然后运行下面命令即可:

docker run -d -e MODE=standalone -p 88:80 -it --name speedtest adolfintel/speedtest:latest

访问 http://ip_addr:88 通过浏览器测本机网络与服务器网络的连接质量,将 ip_addr 替换为监控服务器的地址。

image.png

测试完后,停止容器,然后删除容器和镜像(478MB,为什么这么大 (〝▼皿▼) )

docker stop speedtest && docker rm speedtest && docker rmi adolfintel/speedtest

SmokePing

SmokePing 是一款强大而灵活的网络延迟监测工具,且可在网页查看结果图。AhFei 在「随身服务器」上安装使用,不管去哪里,都能检测当前网络与 VPS 的网络状况。

官网: SmokePing – About SmokePing (oetiker.ch)
GitHub: oetiker/SmokePing: The Active Monitoring System (github.com)

linuxserver 构建的 Docker 镜像:

image.png

image.png

不止是 Ping,SmokePing 实际能用很多工具测试网络,下面是常用的:

  1. FPing: 也就是 ping,用于测量ICMP Echo请求的延迟,是最常见和默认的probe。
  2. EchoPingHttp: 与FPing类似,但它还可以测量HTTP请求的延迟。
  3. SSH: 用于通过SSH连接到远程服务器,并测量连接的延迟。SSH 也可能被阻断,有时候 SSH 连不上,用的不是 22 端口,但网页可以流畅打开。
  4. DNS: 用于测量DNS解析的延迟。
  5. SMTP: 用于测量发送SMTP邮件的延迟。
  6. TCP: 用于测量TCP端口的可用性和响应时间。
  7. cURL:HTTP、HTTPS、FTP等,且有更多自定义设置,请求头等。
  8. FPing6: IPv6。

单机模式

安装步骤: 网络延迟监测工具 SmokePing 的安装与配置 – 技焉洲 (vfly2.com)

主从模式

主从模式下,从端不启动网页界面,可以同步主端的配置,在主端可以看到从端的测试结果

使用说明: 基于 LinuxServer 镜像的 SmokePing 主从模式指南 – 技焉洲 (vfly2.com)

下面第二个 from Home to vfly2 就是部署在家庭服务器上的从 smokeping 监测的数据

smartping

首先用的这个项目监测延迟,但是已经不更新了,而且查看几十天的 ping 的可视图容易卡住,显示天数跟 CPU 性能有关(或许是内存),已经不再使用。

官网: http://smartping.org/
GitHub: https://github.com/smartping/smartping


原文链接: https://yanh.tech/2023/07/vps-network-testing-long-term-monitoring/

版权声明:本博客所有文章除特別声明外,均为 AhFei 原创,采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 技焉洲 (yanh.tech)

保持更新 ٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ 清晰恒益的实用技能,欢迎使用 RSS 订阅,或在支持 ActivityPub 的平台关注 @vfly2tech@yanh.tech 接收新文章的推送,如果能留言互动就更好了。

可在 Telegram 群组 https://t.me/vfly2 交流依文章步骤遇到的问题。


所谓「随身服务器」,就是一个机顶盒(如 UNT403A )刷成的 Armbian,4h2g,14g 存储,功耗 2-3W,可惜没有 WiFi,网口百兆,如下:

unt304a_compressed.webp

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇