仓库 
融合怪测评项目
(GO版本除非必须的环境安装使用shell外无额外shell文件依赖,环境安装只是为了测的更准,极端情况下无环境依赖也可全测项目)
如有问题请 issues 反馈。
Go 版本:https://github.com/oneclickvirt/ecs
Shell 版本:https://github.com/spiritLHLS/ecs
适配系统和架构 
编译与测试支持情况 
| 编译支持的架构 | 测试支持的架构 | 编译支持的系统 | 测试支持的系统 | 
|---|---|---|---|
| amd64 | amd64 | Linux | Linux | 
| arm64 | arm64 | Windows | Windows | 
| arm | MacOS(Darwin) | MacOS | |
| 386 | FreeBSD | ||
| mips,mipsle | Android | ||
| mips64,mips64le | |||
| ppc64,ppc64le | |||
| s390x | s390x | ||
| riscv64 | 
功能 
- 系统基础信息查询,IP基础信息并发查询:basics、gostun
 - CPU 测试:cputest,支持 sysbench(lua/golang版本)、geekbench、winsat
 - 内存测试:memorytest,支持 sysbench、dd
 - 硬盘测试:disktest,支持 dd、fio、winsat
 - 流媒体解锁信息并发查询:netflix-verify 等逻辑,开发至 CommonMediaTests
 - 常见流媒体测试并发查询:UnlockTests,逻辑借鉴 RegionRestrictionCheck 等
 - IP 质量/安全信息并发查询:二进制文件编译至 securityCheck
 - 邮件端口测试:portchecker
 - 三网回程测试:借鉴 zhanghanyun/backtrace,二次开发至 oneclickvirt/backtrace
 - 三网路由测试:基于 NTrace-core,二次开发至 nt3
 - 网速测试:基于 speedtest.net 和 speedtest.cn 数据,开发至 oneclickvirt/speedtest
 - 三网 Ping 值测试:借鉴 ecsspeed,二次开发至 pingtest
 - 支持root或admin环境下测试,也支持非root或非admin环境下测试,半支持离线环境下进行测试,未支持无DNS环境下进行测试
 
本项目初次使用建议查看说明:跳转
使用说明 
Linux/FreeBSD/OpenBSD/MacOS 
一键命令 
一键命令将默认安装依赖,默认更新包管理器,默认非互动模式
国际用户无加速:
bashexport noninteractive=true && curl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh && ./goecs.sh env && ./goecs.sh install && goecs国际/国内使用 CDN 加速:
bashexport noninteractive=true && curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh && ./goecs.sh env && ./goecs.sh install && goecs国内用户使用 CNB 加速:
bashexport noninteractive=true && curl -L https://cnb.cool/oneclickvirt/ecs/-/git/raw/main/goecs.sh -o goecs.sh && chmod +x goecs.sh && ./goecs.sh env && ./goecs.sh install && goecs
详细说明 
详细说明中的命令可控制是否安装依赖,是否更新包管理器,默认互动模式可进行选择
下载脚本
国际用户无加速:
bashcurl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh国际/国内使用 CDN 加速:
bashcurl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh国内用户使用 CNB 加速:
bashcurl -L https://cnb.cool/oneclickvirt/ecs/-/git/raw/main/goecs.sh -o goecs.sh && chmod +x goecs.sh更新包管理器(可选择)并安装环境
bash./goecs.sh env非互动模式:
bashexport noninteractive=true && ./goecs.sh env安装
goecsbash./goecs.sh install升级
goecsbash./goecs.sh upgrade卸载
goecsbash./goecs.sh uninstall帮助命令
bash./goecs.sh -h唤起菜单
bashgoecs
命令参数化 
Usage: goecs [options]
  -backtrace
        Enable/Disable backtrace test (in 'en' language or on windows it always false) (default true)
  -basic
        Enable/Disable basic test (default true)
  -comm
        Enable/Disable common media test (default true)
  -cpu
        Enable/Disable CPU test (default true)
  -cpum string
        Set CPU test method (supported: sysbench, geekbench, winsat) (default "sysbench")
  -cput string
        Set CPU test thread mode (supported: single, multi) (default "multi")
  -disk
        Enable/Disable disk test (default true)
  -diskm string
        Set disk test method (supported: fio, dd, winsat) (default "fio")
  -diskmc
        Enable/Disable multiple disk checks, e.g., -diskmc=false
  -diskp string
        Set disk test path, e.g., -diskp /root
  -email
        Enable/Disable email port test (default true)
  -h    Show help information
  -l string
        Set language (supported: en, zh) (default "zh")
  -log
        Enable/Disable logging in the current path
  -memory
        Enable/Disable memory test (default true)
  -memorym string
        Set memory test method (supported: sysbench, dd, winsat) (default "sysbench")
  -menu
        Enable/Disable menu mode, disable example: -menu=false (default true)
  -nt3
        Enable/Disable NT3 test (in 'en' language or on windows it always false) (default true)
  -nt3loc string
        Specify NT3 test location (supported: GZ, SH, BJ, CD for Guangzhou, Shanghai, Beijing, Chengdu) (default "GZ")
  -nt3t string
        Set NT3 test type (supported: both, ipv4, ipv6) (default "ipv4")
  -security
        Enable/Disable security test (default true)
  -speed
        Enable/Disable speed test (default true)
  -spnum int
        Set the number of servers per operator for speed test (default 2)
  -upload
        Enable/Disable upload the result (default true)
  -ut
        Enable/Disable unlock media test (default true)
  -v    Display version informationWindows 
- 下载带 exe 文件的压缩包:Releases
 - 解压后,右键以管理员模式运行。
 
Docker 
国际镜像地址:https://hub.docker.com/r/spiritlhl/goecs
请确保执行下述命令前本机已安装Docker
特权模式+host网络
docker run --rm --privileged --network host spiritlhl/goecs:latest -menu=false -l zh非特权模式+非host网络
docker run --rm spiritlhl/goecs:latest -menu=false -l zh使用Docker执行测试,硬件测试会有一些偏差和虚拟化架构判断失效,还是推荐直接测试而不使用Docker测试。
国内阿里云镜像加速
请确保执行下述命令前本机已安装Docker
特权模式+host网络
docker run --rm --privileged --network host crpi-8tmognxgyb86bm61.cn-guangzhou.personal.cr.aliyuncs.com/oneclickvirt/ecs:latest -menu=false -l zh非特权模式+非host网络
docker run --rm crpi-8tmognxgyb86bm61.cn-guangzhou.personal.cr.aliyuncs.com/oneclickvirt/ecs:latest -menu=false -l zh实际上还有CNB镜像地址 https://cnb.cool/oneclickvirt/ecs/-/packages/docker/ecs 但很可惜组织空间不足无法推送了,更推荐使用阿里云镜像加速
从源码进行编译 
- 克隆仓库的 public 分支(不含私有依赖)
 
git clone -b public https://github.com/oneclickvirt/ecs.git
cd ecs- 安装 Go 环境(如已安装可跳过)
 
选择 go 1.24.5 的版本进行安装
curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritLHLS/one-click-installation-script/main/install_scripts/go.sh -o go.sh && chmod +x go.sh && bash go.sh- 编译
 
go build -o goecs- 运行测试
 
./goecs -menu=false -l zh支持的编译参数:
- GOOS:支持 linux、windows、darwin、freebsd、openbsd
 - GOARCH:支持 amd64、arm、arm64、386、mips、mipsle、s390x、riscv64
 
跨平台编译示例:
# 编译 Windows 版本
GOOS=windows GOARCH=amd64 go build -o goecs.exe
# 编译 MacOS 版本
GOOS=darwin GOARCH=amd64 go build -o goecs_darwinQA 
Q: 为什么默认使用sysbench而不是geekbench 
A: 比较二者特点 
| 比较项 | sysbench | geekbench | 
|---|---|---|
| 适用范围 | 轻量级,几乎可在任何服务器上运行 | 重量级,小型机器无法运行 | 
| 测试要求 | 无需网络,无特殊硬件需求 | 需联网,IPV4环境,至少1G内存 | 
| 开源情况 | 基于LUA,开源,可自行编译各架构版本 | 官方二进制闭源代码,不支持自行编译 | 
| 测试稳定性 | 核心测试组件10年以上未变 | 每个大版本更新测试项,分数不同版本间难以对比(每个版本对标当前最好的CPU) | 
| 测试内容 | 仅测试计算性能 | 覆盖多种性能测试,分数加权计算,但部分测试实际不常用 | 
| 适用场景 | 适合快速测试,仅测试计算性能 | 适合综合全面的测试 | 
且goecs测试使用何种CPU测试方式可使用参数指定,默认只是为了更多用户快速测试的需求
Q: 为什么使用Golang而不是Rust重构 
A: 因为网络相关的项目目前以Golang语言为趋势,大多组件有开源生态维护,Rust很多得自己手搓,我懒得搞我没那个技术力 
Q: 为什么不继续开发Shell版本而是选择重构 
A: 因为太多千奇百怪的环境问题了,还是提前编译好测试的二进制文件比较容易解决环境问题(泛化性更好) 
Q: 每个测试项目的说明有吗? 
A: 每个测试项目有对应的维护仓库,自行点击查看仓库说明 
Q: 测试进行到一半如何手动终止? 
A: 按ctrl键和c键终止程序,终止后依然会在当前目录下生成goecs.txt文件和分享链接,里面是已经测试到的信息。 
Q: 非Root环境如何进行测试? 
A: 手动执行安装命令,实在装不上也没问题,直接在release中下载对应架构的压缩包解压后执行即可,只要你能执行的了文件。或者你能使用docker的话用docker执行。 
致谢 
感谢 he.net bgp.tools ipinfo.io maxmind.com cloudflare.com ip.sb scamalytics.com abuseipdb.com ip2location.com ip-api.com ipregistry.co ipdata.co ipgeolocation.io ipwhois.io ipapi.com ipapi.is ipqualityscore.com bigdatacloud.com dkly.net virustotal.com 等网站提供的API进行检测,感谢互联网各网站提供的查询资源
感谢
提供的免费托管支持本开源项目的共享测试结果存储
同时感谢以下平台提供编辑和测试支持


