Dynadot 搬瓦工 腾讯云

测评脚本网络质量体检脚本 bash <(curl -Ls Net.Check.Place)

Sider GigsGigsCloud

本文继续转载一个测评脚本,用来测评网络质量的,脚本为 bash <(curl -Ls Net.Check.Place),与之前的脚本《IP 质量体检脚本 # bash <(curl -sL IP.Check.Place)》属于同一个系列的。

系列脚本:

  1. NodeQuality:VPS 一键测试脚本,IP 质量/网络质量/一键分享
  2. IP 质量体检脚本 # bash <(curl -sL IP.Check.Place)

原贴链接:https://www.nodeseek.com/post-287967-1

因为完善的功能、美观的输出、高度的鲁棒性往往和Shell这种极端古老的语言(甚至不能叫语言,而是一种命令行解释器)互斥,外加我对于脚本自身“清洁”的高度执着,比如(除依赖外)严禁读写硬盘、尽量只使用包管理器、第三方应用只使用具有良好口碑的如speedtest官方cli,这一切都导致编写过程极度痛苦,持续的加班熬夜是日常现象。举个例子,在做三网延迟的部分,因为检测结果不完美、检测时间过长等原因,先后写了ping/hping3/nping/mtr四个方案,每次都是完全写好了,只因为很小的问题,彻底推倒重写,这对于做公益事情来讲是难以想象的。说心里话,要不是出于自身兴趣,以及对开源社区的回馈,即便给我20w也不会去做这么辛苦麻烦的事情。在无数个辛苦爆肝的日夜之后,网络体检脚本和各位见面了,脚本不以其他任何脚本作为竞争目标,只是单纯出于对于社区的回馈,做参考级网络测评脚本,希望各位能够喜欢。

省流简介

  • 努力做市面最好的网络质量检测类脚本
  • 中英文双语言支持
  • 支持IPv4/IPv6双栈查询
  • 精美排版,直观显示,多终端单屏优化展示
  • 支持json输出便于大数据分析
  • BGP信息、本地策略、接入信息、三网TCP大包延迟、三网回程路由、国内测速、国际互连七大模块
  • 支持延迟模式、低数据模式、跳过任意章节,多种测试方式可根据需求弹性选择

脚本运行(单次运行时间6-8分钟):

  • 交互界面
bash <(curl -Ls Check.Place) -N
  • 默认检测
bash <(curl -sL Net.Check.Place)

GitHub项目地址(欢迎Star关注): https://github.com/xykt/NetQuality

网络质量体检脚本 – Network Quality Check Script (EN)

支持OS/Platform:Ubuntu | Debian | Linux Mint | Fedora | Red Hat Enterprise Linux (RHEL) | CentOS | Arch Linux | Manjaro | Alpine Linux | AlmaLinux | Rocky Linux | macOS | Anolis OS | Alibaba Cloud Linux | SUSE Linux | openSUSE | Void Linux

  • 中英文双语言支持
  • 支持IPv4/IPv6双栈查询
  • 精美排版,直观显示,多终端单屏优化展示,便于截图分享
  • BGP信息、本地策略、接入信息、三网TCP大包延迟、三网回程路由、国内测速、国际互连七大模块
  • 基础数据源自BGP.TOOLSBGP.HE.NET数据库
  • 上游及接入信息直观展示
  • 中国大陆地区31个省/市/自治区电信/联通/移动三网回程延迟
  • 基于SPEEDTEST.NET的中国大陆(含大湾区)三网网速测试
  • 全球五大洲网速及延迟测试
  • 延迟模式、低数据模式、跳过任意章节,多种测试方式弹性选择
  • Json输出便于大数据分析

屏幕截图

IPv4测试结果 IPv6测试结果
IPv4 IPv6
延迟模式测试结果 完整路由模式测试结果
Ping Route

使用方法

便捷模式:交互界面

Net

bash <(curl -Ls Check.Place) -N

高级模式:参数运行

Help

默认双栈检测:
bash <(curl -Ls Net.Check.Place)
只检测IPv4结果:
bash <(curl -Ls Net.Check.Place) -4
只检测IPv6结果:
bash <(curl -Ls Net.Check.Place) -6
延迟模式:
bash <(curl -Ls Net.Check.Place) -P
完整路由模式(TCP大包):
bash <(curl -Ls Net.Check.Place) -R [大陆地区省级行政区名称或中/英文简称]

缺省状态默认检测北京、上海、广东三地

bash <(curl -Ls Net.Check.Place) -R

指定参数可检测任意大陆省级行政区(以下任选其一)

bash <(curl -Ls Net.Check.Place) -R 桂
bash <(curl -Ls Net.Check.Place) -R 广西
bash <(curl -Ls Net.Check.Place) -R 广西壮族自治区
bash <(curl -Ls Net.Check.Place) -R GX
bash <(curl -Ls Net.Check.Place) -R gx
低数据模式:
bash <(curl -Ls Net.Check.Place) -L
跳过任意章节:
bash <(curl -Ls Net.Check.Place) -S 1234567
中英文双语支持:
bash <(curl -Ls Net.Check.Place) -l cn|en
Json输出:
bash <(curl -Ls Net.Check.Place) -j
跳过检测系统及安装依赖:
bash <(curl -Ls Net.Check.Place) -n
自动安装依赖:
bash <(curl -Ls Net.Check.Place) -y
报告展示完整IP地址:
bash <(curl -Ls Net.Check.Place) -f

脚本更新

2025/04/21 00:00 修复macOS兼容性问题,提升脚本鲁棒性

2025/04/20 21:00 修复大陆IP无法正常获取脚本资源的问题

2025/03/28 00:50 增加-R完整路由模式,增加低数据模式的国际互连延迟测试,修复bugs

2025/03/13 22:40 增加-n参数,跳过OS检测及安装依赖

2025/03/12 17:00 脚本发布

附录

脚本分享示例
********************************************************************************
                          网络质量体检报告:45.89.*.*
                        bash <(curl -sL Net.Check.Place)
                       https://github.com/xykt/NetQuality
            报告时间:2025-03-12 15:22:15 CST  脚本版本:v2025-03-11
********************************************************************************
一、BGP信息(BGP.TOOLS & HE.NET)
注册信息:          RIPE, AS3258, xTom Tokyo, Prefix/24
注册/修改日期:     2024-12-13 / NoRecord
地区:              [JP]Japan, Eastern Asia, Asia
地址:              Dummy address for ORG-XJCL1-RIPE
活跃邻居:          Prefix/24  15 / 256 
二、本地策略
NAT类型:         开放网络无NAT 
TCP拥塞控制算法:bbr          TCP接收缓冲区(rmem):4096 212992 16777216
队列调度算法:   fq           TCP发送缓冲区(wmem):4096 212992 16777216
三、接入信息(*=Tier1 *=非Tier1 *=上游)
互联网交换点接入数:0         上游数量:1         对等互联数量:24
AS174   AS701  AS1299  AS2914 AS3257 AS3320 AS3356 AS3491 AS5511 AS6453 AS6461 
Cogent Verizon Arelion   NTT    GTT   DTAG   Lumen  PCCW  Orange  TATA   Zayo  
AS6762  AS6830  AS7018 AS12956 AS17676  
Sparkle Liberty  AT&T  Telxius SoftBank 
四、三网TCP大包延迟(依次为电信|联通|移动 ⠂=80ms)    京⣀⣀⣀⣀⣀55 ⣀⣀⣀⣀⣀57 ⣀⣀⣀⣀⣀59 
津⣀⣀⣀⣀⣀54 ⣀⣀⣀⣀⣀59 ⣀⣀⣀⣀⣀56  冀⣀⣀⣀⣀⣀59 ⣀⣀⣀⣀⣀51 ⣀⣀⣀⣀⣀63  晋⣀⣀⣀⣀⣀57 ⣀⣀⣀⣀⣀59 ⣀⣀⣀⣀⣀60 
蒙⣀⣀⣀⣀⣀60 ⣀⣀⣀⣀⣀56 ⣀⣀⣀⣀⣀65  辽⣀⣀⣀⣀⣀68 ⣀⣀⣀⣀⣀59 ⣀⣀⣀⣀⣀77  吉⣀⣀⣀⣀⣀67 ⣀⣀⣀⣀⣀76 ⣀⣀⣀⣀⣀74 
黑⣀⣀⣀⣀⣀75 ⣀⣀⣀⣀⣀71 ⣀⣀⣀⣀⣀73  沪⣀⣀⣀⣀⣀32 ⣀⣀⣀⣀⣀41 ⣀⣀⣀⣀⣀35  苏⣀⣀⣀⣀⣀41 ⣀⣀⣀⣀⣀40 ⣀⣀⣀⣀⣀44 
浙⣀⣀⣀⣀⣀40 ⣀⣀⣀⣀⣀35 ⣀⣀⣀⣀⣀37  皖⣀⣀⣀⣀⣀39 ⣀⣀⣀⣀⣀50 ⣀⣀⣀⣀⣀46  闽⣀⣀⣀⣀⣀53 ⣀⣀⣀⣀⣀66 ⣀⣀⣀⣀⣀53 
赣⣀⣀⣀⣀⣀52 ⣀⣀⣀⣀⣀39 ⣀⣀⣀⣀⣀52  鲁⣀⣀⣀⣀⣀56 ⣀⣀⣀⣀⣀47 ⣀⣀⣀⣀⣀51  豫⣀⣀⣀⣀⣀55 ⣀⣀⣀⣀⣀58 ⣀⣀⣀⣀⣀61 
鄂⣀⣀⣀⣀⣀60 ⣀⣀⣀⣀⣀49 ⣀⣀⣀⣀⣀51  湘⣀⣀⣀⣀⣀64 ⣀⣀⣀⣀⣀49 ⣀⣀⣀⣀⣀54  粤⣀⣀⣀⣀⣀55 ⣀⣀⣀⣀⣀58 ⣀⣀⣀⣀⣀77 
桂⣀⣀⣀⣀⣀64 ⣀⣀⣀⣀⣀61 ⣀⣀⣀⣀⣀68  琼⣀⣀⣀⣀⣀62 ⣀⣀⣀⣀⣀65 ⣀⣀⣀⣀⣀76  渝⣀⣀⣀⣀⣀64 ⣀⣀⣀⣀⣀53 ⣀⣀⣀⣀⣀63 
川⣀⣀⣀⣀⣀60 ⣀⣀⣀⣀⣀66 ⣀⣀⣀⣀⣀65  贵⣀⣀⣀⣀⣀65 ⣀⣀⣀⣀⣀74 ⣀⣀⣀⣀⣀65  云⣀⣀⣀⣀⣀70 ⣀⣀⣀⣀⣀60 ⣀⣀⣀⣀⣀71 
藏⣀⣀⣀⣀⣀60 ⣤⣤⣤⣤⣤89 ⣤⣤⣤⣤⣤91  陕⣀⣀⣀⣀⣀56 ⣀⣀⣀⣀⣀57 ⣀⣀⣀⣀⣀58  甘⣀⣀⣀⣀⣀62 ⣀⣀⣀⣀⣀57 ⣀⣀⣀⣀⣀68 
青⣀⣀⣀⣀⣀60 ⣀⣀⣀⣀⣀60 ⣤⣤⣤⣤⣤81  宁⣀⣀⣀⣀⣀69 ⣀⣀⣀⣀⣀61 ⣀⣀⣀⣀⣀70  新⣤⣤⣤⣤⣤97 ⣤⣤⣤⣤⣤88 ⣤⣤⣤⣤⣤95 
五、三网回程路由(线路可能随网络负载动态变化)
北京TCP:电信     xTom->CTGGIA || 联通     xTom->9929   || 移动     xTom->CTGGIA
北京UDP:电信     xTom->CTGGIA || 联通     xTom->9929   || 移动     xTom->CTGGIA
上海TCP:电信     xTom->CTGGIA || 联通     xTom->9929   || 移动     xTom->CTGGIA
上海UDP:电信     xTom->CTGGIA || 联通     xTom->9929   || 移动     xTom->CTGGIA
广州TCP:电信     xTom->CTGGIA || 联通     xTom->9929   || 移动     xTom->CTGGIA
广州UDP:电信     xTom->CTGGIA || 联通     xTom->9929   || 移动     xTom->CTGGIA
六、国内测速   发送  延迟    接收  延迟||单位:ms Mbps  发送  延迟    接收  延迟
苏州电信       1035    35     974   103||杭州电信        964    39     985   130
上海联通        328    32     481    48||北京联通         64   727     813   462
成都移动        541   155     998   228||福州移动        508   121     945   142
七、国际互连   延迟 发送 重传 接收 重传||单位:ms Mbps  延迟 发送 重传 接收 重传
香港      ⣀⣀⣀⣀⣀⣀ 53   716 74k   943  14||东京      ⣀⣀⣀⣀⣀⣀  1  1043 80k   999  16
新加坡    ⣀⣀⣀⣀⣀⣀ 78   706 22k    36   7||悉尼      ⣶⣶⣶⣶⣶⣶182   221 29k   302   0
洛杉矶    ⣤⣤⣤⣤⣤⣤120   575  8k   538   0||纽约      ⣶⣶⣶⣶⣶⣶166   121   0   103 323
法兰克福  ⣿⣿⣿⣿⣿⣿255    78   0    71   0||伦敦      ⣿⣿⣿⣿⣿⣿245   270   0   223  11
阿姆斯特丹⣶⣶⣶⣶⣶⣶239   295   0   225   0||圣保罗    ⣿⣿⣿⣿⣿⣿273   240   0   186   1
================================================================================
今日网络检测量:6;总检测量:6。感谢使用xy系列脚本! 

还要麻烦酒神如果有时间的话,抽空考虑做一下等宽字体适配,哈哈

Json输出示例
{
  "Head": [
    {
      "IP": "45.89.*.*",
      "Command": "bash <(curl -sL Net.Check.Place)",
      "GitHub": "https://github.com/xykt/NetQuality",
      "Time": "报告时间:2025-03-12 15:22:15 CST",
      "Version": "脚本版本:v2025-03-11"
    }
  ],
  "BGP": [
    {
      "ASN": "3258",
      "Organization": "xTom Tokyo",
      "Prefix": 24,
      "RIR": "RIPE",
      "RegDate": "2024-12-13",
      "ModDate": "null",
      "Country": "Japan",
      "IntermediateRegion": "null",
      "SubRegion": "Eastern Asia",
      "Region": "Asia",
      "Address": "Dummy address for ORG-XJCL1-RIPE",
      "GeoFeed": "null",
      "IPinTotal": 256,
      "IPActive": 15,
      "NeighborinTotal": null,
      "NeighborActive": null,
      "IXCount": 0,
      "UpstreamsCount": 1,
      "PeersCount": 24
    }
  ],
  "Local": [
    {
      "NAT": "0x000001",
      "NATDescribe": "开放网络无NAT",
      "TCPCongestionControl": "bbr",
      "QueueDiscipline": "fq",
      "TCPReceiveBuffer": "4096 212992 16777216",
      "TCPSendBuffer": "4096 212992 16777216"
    }
  ],
  "Connectivity": [
    {
      "ID": 1,
      "ASN": 3258,
      "Org": "xTom",
      "IsTarget": true,
      "IsTier1": false,
      "IsUpstream": false
    },
    {
      "ID": 2,
      "ASN": 174,
      "Org": "Cogent",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 3,
      "ASN": 701,
      "Org": "Verizon",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 4,
      "ASN": 1299,
      "Org": "Arelion",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 5,
      "ASN": 2914,
      "Org": "NTT",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 6,
      "ASN": 3257,
      "Org": "GTT",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 7,
      "ASN": 3320,
      "Org": "DTAG",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 8,
      "ASN": 3356,
      "Org": "Lumen",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 9,
      "ASN": 3491,
      "Org": "PCCW",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 10,
      "ASN": 5511,
      "Org": "Orange",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 11,
      "ASN": 6453,
      "Org": "TATA",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 12,
      "ASN": 6461,
      "Org": "Zayo",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 13,
      "ASN": 6762,
      "Org": "Sparkle",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 14,
      "ASN": 6830,
      "Org": "Liberty",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 15,
      "ASN": 7018,
      "Org": "AT&T",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 16,
      "ASN": 12956,
      "Org": "Telxius",
      "IsTarget": false,
      "IsTier1": true,
      "IsUpstream": false
    },
    {
      "ID": 17,
      "ASN": 17676,
      "Org": "SoftBank",
      "IsTarget": false,
      "IsTier1": false,
      "IsUpstream": true
    }
  ],
  "Delay": [
    {
      "Code": "BJ",
      "Name": "京",
      "CT": {
        "Average": "55",
        "1": "55.18",
        "2": "54.98",
        "3": "55.05",
        "4": "55.04",
        "5": "55.02",
        "6": "55.07",
        "7": "55.51",
        "8": "54.99",
        "9": "54.62",
        "10": "55.04"
      },
      "CU": {
        "Average": "57",
        "1": "57.90",
        "2": "57.87",
        "3": "57.89",
        "4": "57.92",
        "5": "57.91",
        "6": "57.90",
        "7": "57.87",
        "8": "57.89",
        "9": "57.92",
        "10": "57.84"
      },
      "CM": {
        "Average": "59",
        "1": "58.86",
        "2": "58.90",
        "3": "59.02",
        "4": "58.91",
        "5": "58.84",
        "6": "59.35",
        "7": "58.87",
        "8": "58.90",
        "9": "58.90",
        "10": "59.72"
      }
    },
    {
      "Code": "TJ",
      "Name": "津",
      "CT": {
        "Average": "54",
        "1": "54.19",
        "2": "54.11",
        "3": "54.26",
        "4": "54.13",
        "5": "54.22",
        "6": "54.21",
        "7": "54.24",
        "8": "54.17",
        "9": "54.16",
        "10": "54.66"
      },
      "CU": {
        "Average": "59",
        "1": "59.02",
        "2": "59.00",
        "3": "59.12",
        "4": "59.03",
        "5": "59.01",
        "6": "59.19",
        "7": "59.00",
        "8": "59.05",
        "9": "59.07",
        "10": "59.05"
      },
      "CM": {
        "Average": "56",
        "1": "56.44",
        "2": "56.40",
        "3": "56.40",
        "4": "56.36",
        "5": "56.47",
        "6": "56.42",
        "7": "56.39",
        "8": "56.46",
        "9": "56.44",
        "10": "56.40"
      }
    },
后面省略太长了。。。
Dynadot Hostwinds
赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《测评脚本网络质量体检脚本 bash <(curl -Ls Net.Check.Place)
文章链接:https://oldtang.com/14165.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。