for i in `seq 1 2`; do speedtest-cli; done
Retrieving speedtest.net configuration...
Testing from ***...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by *** ms
Testing download speed................................................................................
Download: *** Mbit/s
Testing upload speed......................................................................................................
Upload: *** Mbit/s
Retrieving speedtest.net configuration...
Testing from ***...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by *** ms
Testing download speed................................................................................
Download: *** Mbit/s
Testing upload speed......................................................................................................
Upload: *** Mbit/s
#!/bin/bash
date | tee -a /home/speedtest/log.txt
# testing upload
iperf3 -c speedtestserver.domain.tld | tee -a /home/speedtest/log.txt
# testing download
iperf3 -c speedtestserver.domain.tld -R | tee -a /home/speedtest/log.txt
这是一个已知问题,我不得不在 3 周内多次与我的 ISP 交谈,以说服他们连接出现问题。我的解决方案是自动化速度测试,以便它们使用Henry Whitacker制作的 docker 容器每 30 分钟运行一次。设置在树莓派、旧笔记本电脑或 NAS 上,并让它运行一周。之后,您就有了一个很好的测量数据基础来展示您的 ISP。它甚至以任何正常人都可以理解的方式呈现,因此您无需找到比上次更胜任的人。
要设置它,请按照GitHub 页面上的说明进行操作,我建议使用 docker-compose,因为它比其他任何东西都容易。如果你想先看一下,Henry Whitacker 的个人网站上有一个正在运行的演示版本。
我将把这个问题作为一个 XY 问题来回答,而不是回答你的问题,因为这里已经有一个很好的答案可以解决你的问题。
理论
当 ISP 告诉您根据您的订阅应该获得某个速度时,这确实是您应该被允许平均获得的速度。
但对于消费者而言,互联网的运作方式如下:许多用户与许多家庭共享带宽,这就是所谓的超额预订。这个想法是大多数家庭不会同时用完整个带宽,因此可以在必要时提供速度,但这也意味着可能会发生很多人同时尝试上传或下载的情况时间导致拥塞,这可能会稍微降低速度。
由于上一段中的最后一句话,ISP 会告诉您您支付的速度是平均速度,并且在大多数情况下您应该获得该速度。
不幸的是,当没有经验的员工得到解释时,他们不了解技术,他们听到的只是:这是一个平均水平,因此有时可以预期速度会降低。
您的连接能力已大幅下降至 10-20%,这远远超过通常超额预订会导致的情况,这表明您的线路存在实际问题。
需要注意的一点是:如果 up 或 download 完全饱和,另一个也会受到影响。因此,如果您有 1 MBit 的上传和 1000 MBit 的下载,但您充分利用了 1 MBit 的上传,那么下载速度也会变慢。这样做的原因是因为每一个up或者download的序列都会发回一个数据包来确认对方收到了,如果这个数据包不能发回而是排队等待,对方会等待发送剩下的给你数据,因此连接速度显着减慢。
这也意味着,如果由于某种原因您的上传量低于您应该得到的,接近 0.1mbit,您可以打赌您的下载量会波动很大并且也会很慢,因为确认数据包的发送速度也很慢。
使故障排除更容易的操作
ISP 总是希望排除任何本地网络问题,因此建议使用 LAN 电缆直接从调制解调器连接到笔记本电脑或 PC(如果它是调制解调器/路由器组合)或连接到其后面的路由器并执行速度测试然后。确保所有其他设备均已拔下。如果这很慢,请致电您的 ISP,因为这是您所处的理想状态,但它也不起作用。
此外,ISP 想要排除的另一件事是调制解调器内部挂起的服务,因此请始终关闭调制解调器,等待 10 秒钟然后再次打开,看看是否能解决您的问题。当您打电话给他们时,您可以告诉他们您已经执行了这些操作。它会告诉他们你知道你在做什么,他们会更认真地对待你。
您可以要求 ISP 从其末端测量线路,并告诉他们您只使用 LAN 电缆连接到调制解调器的一个设备执行速度测试,这应该会产生最佳结果。
如果 ISP 说他们无法测量线路,请要求转给更有经验的人,或者如果他们拒绝给他们的主管。
如果 ISP 测量了线路,但他们声称线路工作正常,他们可能不得不派机械师过来。
有一个类似于 speedtest.net 的命令行工具,名为
speedtest-cli
:https ://github.com/sivel/speedtest-cli 。它支持多种输出格式,例如 csv 或 json 或默认的详细人类可读格式。您可以speedtest-cli
从终端循环运行多次:完成后,您可以将所有这些输出发送到 ISP 作为可能连接不良的证明。
如果您有可用的 linux 机器或 windows 上的 wsl(或 windows 本身,但自动化脚本更繁琐),我会选择 iperf3。
这里有一些服务器可以使用,可能会测试其中的一些或找到你自己的。
(在本例中,脚本保存在 下
/home/speedtest/speedtest.sh
)做一个 cronjob
*/30 * * * * /bin/bash /home/speedtest/speedtest.sh
您可以使用此站点轻松微调您的执行计划