Linux一件测速脚本大全

我觉得这个测速脚本应该是所有测速脚本里面最全的了,作者在GitHub开源了,特别好用,可以按线路,地域测速。

开源地址

仓库:GitHubREADME

多功能测速脚本

兼容 speedtest-clispeedtest-golibrespeed-cliiperf3,脚本自带丰富的测试项目任君挑选,使用者还能自定义想要的测试项目。

使用方法

bash <(curl -sL bash.icu/speedtest)

bash <(curl -sL https://raw.githubusercontent.com/i-abc/Speedtest/main/speedtest.sh)

基本功能

脚本自带丰富的测试项目

  1. 自定义测速节点
  2. 大陆三网+教育网 多线程 IPv4
  3. 大陆三网 单线程 IPv4
  4. 大陆教育网 IPv6
  5. IPV4 UDP 可用测试
  6. 各大洲 128线程 IPV4
  7. 大陆教育网 IPv4
  8. 大陆电信 多线程 IPv4
  9. 大陆电信 单线程 IPv4
  10. 大陆移动 多线程 IPv4
  11. 大陆移动 单线程 IPv4
  12. 大陆联通 多线程 IPv4
  13. 大陆联通 单线程 IPv4
  14. 各大洲 单线程 IPV4
  15. 各大洲 八线程 IPV4
    持续更新中……
  • 大陆三网+教育网 多线程 IPv4

高级功能

自定义自己想要的测试项目,很简单的。

我们会有两张表,节点表 (必需)、节点集合表 (非必需)

节点表 (必需)

节点表分为四个区域,分别是提示语区、测试类型区、节点名区、测试参数区,如下图所示:

  • 1区:提示语区 (可选)

提示语位于节点表开头,可以在这里写上任何话,比如使用说明、备注、自家广告等,当然也可以不写。

  • 3区:节点名区

显而易见,这里就是写对应节点的名字。

由于中英文字符编码很难处理,所以如果想要输出美观还得麻烦大家敲空格对齐,当然不对齐对测试无影响。

提示语区、节点名区会直接反映到输出,它们在输出、节点表之间的关系如下图所示:

  • 2区:测试类型区

我们有四种类型,分别是speedtest-clispeedtest-golibrespeed-cliiperf3,选一种即可,每种都有不同的特点,具体说明请往下看。

这部分加空格对齐不是必须的,不加对输出无任何影响,当然像我一样的强迫症可以加空格对齐。

  • 4区:测试参数区

我们脚本兼容 speedtest-clispeedtest-golibrespeed-cliiperf3,我挑选了部分对测试有用的参数应用到了脚本里,大家可以按需使用。

  1. speedtest-cli

speedtest-cli

speedtest.net 官方 CLI,功能单一。参数作用示例-s value通过 id 指定节点-s 36646-o value通过域名指定节点-o 5gtest.shangdu.com

-s 和 -o 二选一,-o 后面参数为纯域名,不含 http(s)、端口号。

节点 id、域名可在 https://www.speedtest.net/api/ios-config.php 查阅。

例如:<server url="http://5gtest.shangdu.com:8080/speedtest/upload.php" lat="34.3287" lon="109.0337" name="Zhengzhou" sponsor="China Unicom HeNan 5G" id="36646"/>,则 id 为 36646,域名为 5gtest.shangdu.com

  1. speedtest-go

speedtest-go

针对 speedtest.net 开发的,功能较多,能实现指定线程、禁用某方向测速,但当服务器与测速节点相距较远时结果不如 speedtest.net 官方 CLI。参数作用示例-s value通过 id 指定节点-s 36646–custom-url value通过链接指定节点–custom-url http://5gtest.shangdu.com:8080/speedtest/upload.php-t value设置并发连接数-t 8-m启用多服务器模式-m–no-download禁用下载测试–no-download–no-upload禁用上传测试–no-upload–force-http-ping使用 HTTP 进行强制 Ping,而不是 ICMP–force-http-ping

-s 和 --custom-url 二选一,--custom-url 后面参数为完整链接。

--force-http-ping 推荐加上。

节点 id、链接可在 https://www.speedtest.net/api/ios-config.php 查阅。

例如:<server url="http://5gtest.shangdu.com:8080/speedtest/upload.php" lat="34.3287" lon="109.0337" name="Zhengzhou" sponsor="China Unicom HeNan 5G" id="36646"/>,则 id 为 36646,链接为 http://5gtest.shangdu.com:8080/speedtest/upload.php

  1. librespeed-cli

librespeed-cli参数作用示例–server-json远程 JSON 的服务端列表–server-json https://jihulab.com/i-abc/speedtest/-/raw/node/china-education.json–local-json本地 JSON 的服务端列表–local-json /root/librespeed.json–server通过 JSON 中的 ID 指定服务端–server 1-4仅使用 IPv4 (默认 false)-4-6仅使用 IPv6 (默认 false)-6–no-download禁用下载测试 (默认 false)–no-download–no-upload禁用上传测试 (默认 false)–no-upload–no-icmp不使用 ICMP Ping。ICMP 在 Linux 下工作不稳定 (默认 false)–no-icmp–duration测试的持续时间 (秒) (默认 15)–duration 20

--no-icmp 推荐加上。

现成的、优质的 librespeed 服务端较少,而且需要自己写服务端列表 JSON,JSON 写法参照 官方;如果是个人搭建测速、个人使用,推荐 iperf3.

  1. iperf3

iperf3参数作用示例-c ip/host指定服务端-c 103.239.244.210-p value指定服务端端口-p 22222-P value设置并发连接数-P 8-t value测试的持续时间 (秒) (默认 10)-t 20-O value前 N 秒的数据不计入最终结果-O 3-R反向模式,服务器发送、客户端接收-R-4仅使用 IPv4-4-6仅使用 IPv6-6-uUDP测试-u–up-and-down双向测试 (自创选项)–up-and-down

当服务端端口为默认的 5201 时,-p 可不加;-p 除了 -p 22222 指定一个端口,还能 -p 5200-5209 指定一个范围内的端口。

iperf3 默认是客户端发送、服务端接收,也就是测上传;想测下载可加 -R 开启反向模式;但 iperf3 只支持单向,所以脚本里自创了 --up-and-down 选项,加上后可测双向;--up-and-down 与 -R 二选一,且 --up-and-down 在本脚本以外的地方不可用,非官方选项。

现成的、优质的 iperf3 服务端很多,可在 iPerf3 Server List查阅;自建 iperf3 服务端也简单,用包管理器就行了。

节点集合表 (非必需)

当你有很多节点表时可以组一个节点表合集,如下图所示,当然这不是必需的。

  • 示例

1. 节点示例 /root/GitHub/speedtest/node-template-1.txt 2. 示例1 /root/GitHub/speedtest/node-template-01.txt 3. 示例2 /root/GitHub/speedtest/node-template-02.txt

每两行为一组,每组中的第一行以序号加英文点 . 开头,第二行为节点表链接,链接可为远程 http 或本地绝对路径。

节点集合表与输出之间的关系如下图所示:

使用自定义的表

我们现在有了节点表、节点集合表,那么该如何使用呢?

只需选择时输入序号 0,然后填写链接或本地绝对路径即可;链接为节点表就立即开始测试,链接为节点集合表就还会出现选择节点的提示。


出处:nodeseek


阅读量:0