The Complete 2026 VPS Benchmark Script Collection: One-Click Speed Tests, Return-Route Tracing, and IP Quality Checks
You just spun up a VPS — but how do you actually tell whether it’s any good? And when a provider promises “CN2 GIA” routing into China, how do you confirm it’s the real deal and not marketing fluff?
This guide rounds up the most complete, current collection of VPS benchmark scripts for 2026 — from raw performance and return-route tracing to IP reputation and streaming-unlock checks. If you’re deploying services that need to reach users across borders (China included), this is the toolkit that tells you what the spec sheet won’t. One article, everything you need.
1. What You’ll Get Out of This
- Grasp the basics of VPS benchmarking
- Know how to use the common speed-test scripts
- Read the results and judge a VPS’s quality for yourself
2. The Plan / How to Think About It
What should you look at when benchmarking a VPS?
| Dimension | Why it matters | Test |
|---|---|---|
| Basic performance | CPU/RAM/disk decide what services you can run | bench.sh, YABS |
| Network quality | The return route decides access speed from China | Return-route tracing |
| IP quality | Affects whether you can reach certain services | IP quality check |
| Streaming unlock | Some users need Netflix etc. unlocked | Streaming check |
| Three-carrier speed | Real-world speed on China Telecom/Unicom/Mobile | Three-carrier speed test |
Sorting the scripts
I split the common scripts into 5 buckets, from basic to advanced:
1 | 1. Comprehensive performance → learn the hardware basics |
3. Step-by-Step
3.1 Comprehensive Performance Tests
bench.sh (the classic)
The simplest all-in-one test — one line and you’re done:
1 | wget -qO- bench.sh | bash |
What it tests:
- System info (CPU model, RAM, disk)
- I/O speed test
- Network speed test (multiple nodes)
Reading the results:
1 | -------------------- A Bench.sh Script By Teddysun ------------------- |

Key metric:
| Metric | Excellent | Pass | Poor |
|---|---|---|---|
| I/O Speed | >500MB/s | 200-500MB/s | <200MB/s |
SuperBench.sh (China speed-test edition)
An improved fork of bench.sh that swaps in domestic (China) speed-test nodes, so it’s better for measuring speeds back to China:
1 | wget -qO- git.io/superbench.sh | bash |

How it differs from bench.sh:
- bench.sh tests against global nodes
- SuperBench.sh tests against China Telecom / Unicom / Mobile nodes
Best for: when you need the real-world speed from the VPS back to China.
ZBench (the all-in-one, recommended)
Merges bench.sh and SuperBench.sh, adds Ping and route tracing, and can generate a web report you can share:
1 | # Chinese version |

It hung for me here, so I didn’t go further.
What it tests:
- System info + I/O test
- Domestic + international speed tests
- Ping test
- Route tracing
- Generates a web report (shareable)
Rating: ⭐⭐⭐⭐
The standout feature: it spits out a web link, which makes sharing your results easy.
YABS (with GeekBench scores)
A more detailed test that includes GeekBench scores and an fio disk test:
1 | curl -sL yabs.sh | bash |


What it tests:
- System info
- fio disk test (4K random R/W)
- GeekBench 6 score
- iperf3 network speed test
Note: the GeekBench test takes a while (around 5–10 min) and hogs resources.
Reading the results:
1 | Geekbench 6 Benchmark Test: |
GeekBench 6 reference:
| Score | Level | Typical config |
|---|---|---|
| Single-core >1500 | Excellent | High-frequency CPU |
| Single-core 1000-1500 | Good | Mainstream config |
| Single-core <1000 | Mediocre | Heavily oversold or old CPU |
LemonBench
A comprehensive all-in-one test with a friendly UI, originally built by a Chinese developer:
1 | wget -qO- https://raw.githubusercontent.com/LemonBench/LemonBench/main/LemonBench.sh | bash -s -- --full |

What it tests:
- System info
- Network info
- Streaming unlock
- CPU performance test
- Memory performance test
- Disk performance test
UnixBench (CPU-only)
A veteran script dedicated to CPU performance; its scores are widely recognized:
1 | wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh |

Note: this one runs long (30+ minutes), and it only tests the CPU — no network.
Best for: when you need a detailed read on CPU performance to compare compute across VPS providers.
The Fusion benchmark (spiritLHLS/ecs)
An absurdly complete script (Chinese-built) that bundles in just about every test there is:
1 | curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh |
Or use the mirror:
1 | bash <(wget -qO- bash.spiritlhl.net/ecs) |


What it tests:
- Basic system info
- CPU/RAM/disk tests
- Streaming-unlock check
- IP quality check
- Return-route tracing
- Three-carrier speed test
- …
Rating: ⭐⭐⭐⭐⭐
It does so much that if you only run one script, run this one.
Menu options: When you launch it you get a menu; the ones you’ll use most:
0- Full test (takes a while)1- Basic system info4- Three-carrier speed test + return route7- IP quality check8- Streaming unlock
3.2 Return-Route Tracing
Return routing decides the network quality from the VPS back to China.
Why the return route matters more than the outbound
- Outbound: the route from you to the VPS (small amount of data)
- Return: the route the VPS uses to send data back to you (large amount of data)
When we browse, we download far more than we upload — so the return route is what really counts.
Common routes compared
| Route | AS number | IP signature | Notes | Latency | Price |
|---|---|---|---|---|---|
| CN2 GIA | AS4809 | 59.43.x.x (end-to-end) | China Telecom’s best route | Low | Pricey |
| CN2 GT | AS4809 | 59.43 (intl leg) + 202.97 (domestic leg) | Telecom’s runner-up | Lower | Mid-high |
| 163 backbone | AS4134 | 202.97.x.x | Telecom’s ordinary route | High | Cheap |
| 9929/CUPM | AS9929 | 218.105.x.x | Unicom optimized route | Low | Pricey |
| 4837 | AS4837 | 219.158.x.x | Unicom ordinary route | Higher | Cheap |
| CMIN2 | AS58807 | 223.120.x.x | Mobile optimized route | Lower | Mid-high |
| CMI | AS58453 | 223.118/119.x.x | Mobile ordinary route | Average | Cheap |
How to tell which route you’re on (important)
Look at the IP signatures in the route:
1 | 59.43.x.x → CN2 line (China Telecom premium) |
Telling CN2 GIA apart from CN2 GT:
- CN2 GIA: 59.43.x.x the whole way, no 202.97
- CN2 GT: 59.43 on the international leg, switching to 202.97 once inside China
backtrace (quick verdict, recommended)
1 | curl https://raw.githubusercontent.com/zhanghanyun/backtrace/main/install.sh -sSf | sh |
Reading the results:
1 | Beijing Telecom 219.141.147.210 testing Telecom CN2 GIA |
Read the route type in the last column:
Telecom CN2 GIA→ bestUnicom 9929→ Unicom’s bestMobile CMIN2→ Mobile optimizedTelecom 163/Unicom 4837→ ordinary routes
mtr_trace (three-carrier return-route test)
1 | curl https://raw.githubusercontent.com/zhucaidan/mtr_trace/main/mtr_trace.sh | bash |

This script traces the return route to multiple cities across China Telecom, Unicom, and Mobile.
testrace.sh (detailed route tracing)
1 | wget https://raw.githubusercontent.com/nanqinlang-script/testrace/master/testrace.sh |

After launching, you can pick which city to trace to.
NextTrace (even more detail)
1 | # Install |
Strength: shows latency and AS number for every hop, so you can see the full path.
BestTrace (GUI)
Great for Windows users — it has a GUI and lets you trace the route from your own machine to the VPS.
Download: https://www.ipip.net/product/client.html
3.3 IP Quality Checks
IP quality affects:
- Whether you can reach services like Google and ChatGPT
- Whether mail you send gets flagged as spam
- Whether the IP is flagged as high-risk by security services
IP.Check.Place (recommended)
1 | bash <(curl -Ls IP.Check.Place) |


Reading the results:
1 | ------------------------------- |
Key metrics:
| Metric | Notes |
|---|---|
| Scamalytics Score | <30 excellent, 30-50 average, >50 poor |
| Blacklist | Ideally all “Not Listed” |
ipcheck.ing
1 | bash <(curl -sL ipcheck.ing) |

Friendlier interface, more intuitive results.
3.4 Streaming-Unlock Checks
Checks whether Netflix, Disney+, ChatGPT and similar services work from your VPS:
RegionRestrictionCheck (recommended)
1 | bash <(curl -L -s check.unlock.media) |

Sample output:
1 | ============[ Multination ]============ |
Common results:
Yes (Region: XX)— unlocked, region XXNo— lockedOriginals Only— only original content unlocked
MediaUnlockTest
1 | bash <(curl -Ls unlock.moe) |

Same idea, but it checks more platforms.
3.6 Pre-Purchase Testing (no VPS required)
Haven’t bought a VPS yet? Here’s how to test in advance.
Method 1: Ping the test IP
Providers usually publish a test IP — ping it first to check latency and packet loss:
1 | # Windows |
Key metrics:
- Latency: US West <200ms, Japan <100ms, Hong Kong <50ms counts as normal
- Packet loss: <5% acceptable, >10% a problem
Method 2: Outbound route tracing
Trace the route from your own machine to the VPS (the outbound path):
Windows: download BestTrace — GUI, very intuitive.
Mac/Linux:
1 | # Install mtr |
Method 3: Looking Glass
A lot of VPS providers offer a Looking Glass page where you can:
- Ping from the VPS to you
- See the return route
- Download test files
How to find a Looking Glass:
- Look for “Looking Glass” or “Network Test” on the provider’s site
- Google “
Looking Glass”
Method 4: Download a test file
Providers usually host test files — just download one in your browser and watch the speed:
1 | Common test-file paths: |
Tip: testing during peak hours (8–10 PM) is more telling.
3.5 Three-Carrier Speed Test
Measures real-world speeds across China’s three carriers (Telecom, Unicom, Mobile):
AutoSpeed three-carrier speed test
1 | bash <(curl -sL bash.icu/speedtest) |
Speedtest CLI (official)
1 | # Install |
Reading the results:
1 | Download: 940.22 Mbps |
| Metric | 1Gbps reference | 100Mbps reference |
|---|---|---|
| Download | >800Mbps | >80Mbps |
| Upload | >100Mbps | >10Mbps |
| Latency | <50ms excellent | <100ms acceptable |
4. Wrap-Up
My benchmarking workflow
1 | Before you buy: |
Route quality cheat sheet
| Route | Telecom | Unicom | Mobile | Price |
|---|---|---|---|---|
| CN2 GIA | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ | $$$ |
| CN2 GT | ⭐⭐⭐ | ⭐ | ⭐ | $$ |
| 9929/CUPM | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ | $$$ |
| CMIN2 | ⭐⭐ | ⭐⭐ | ⭐⭐⭐ | $$ |
| 163/4837/CMI | ⭐ | ⭐ | ⭐ | $ |
Buying advice
- Know your use case first: dev environments want low latency, production wants stability
- Test during peak hours: 8–10 PM results are more representative
- Verify the provider’s claims: if they say CN2 GIA, run a return-route trace and check
- Run it more than once: a single run can mislead — average several runs
Benchmark script cheat sheet
Comprehensive performance
| Script | Strength | Command |
|---|---|---|
| bench.sh | Classic, global speed test | wget -qO- bench.sh | bash |
| SuperBench | China-node speed test | wget -qO- git.io/superbench.sh | bash |
| ZBench ⭐ | All-in-one, generates a report | wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench-CN.sh && bash ZBench-CN.sh |
| YABS | GeekBench scores included | curl -sL yabs.sh | bash |
| LemonBench | Friendly UI, Chinese-built | wget -qO- https://raw.githubusercontent.com/LemonBench/LemonBench/main/LemonBench.sh | bash -s -- --full |
| Fusion ecs ⭐⭐ | Most complete | bash <(wget -qO- bash.spiritlhl.net/ecs) |
| UnixBench | CPU-only | wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh && bash unixbench.sh |
Return-route tracing
| Script | Strength | Command |
|---|---|---|
| backtrace ⭐ | Quick route verdict | curl https://raw.githubusercontent.com/zhanghanyun/backtrace/main/install.sh -sSf | sh |
| mtr_trace | Multi-city, three carriers | curl https://raw.githubusercontent.com/zhucaidan/mtr_trace/main/mtr_trace.sh | bash |
| testrace | Detailed route tracing | wget https://raw.githubusercontent.com/nanqinlang-script/testrace/master/testrace.sh && bash testrace.sh |
| NextTrace | Visual route tracing | curl nxtrace.org/nt | bash |
Other tests
| Script | Strength | Command |
|---|---|---|
| IP quality | IP risk scoring | bash <(curl -Ls IP.Check.Place) |
| Streaming unlock | Netflix / Disney+ etc. | bash <(curl -L -s check.unlock.media) |
| Three-carrier speed test | Telecom / Unicom / Mobile | bash <(curl -sL bash.icu/speedtest) |
Route quality cheat sheet
| Route | Telecom | Unicom | Mobile |
|---|---|---|---|
| CN2 GIA | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
| CN2 GT | ⭐⭐⭐ | ⭐ | ⭐ |
| 9929/CUPM | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| CMIN2 | ⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
| Plain BGP | ⭐ | ⭐ | ⭐ |
Pre-purchase advice
Most VPS providers offer a Looking Glass or a test IP. Before you buy:
- Ping test:
ping TEST_IPto check latency - Route test: use BestTrace to trace from your machine to the target IP
- Download test: pull a test file from the Looking Glass to gauge speed
5. Troubleshooting Log
Scripts won’t run
Problem: some scripts need root.
Fix:
1 | sudo bash <(curl -sL SCRIPT_URL) |
Speed-test results vary wildly
Problem: the same VPS gives very different numbers across runs.
Cause:
- Network fluctuation
- The VPS is oversold, so resources are unstable
- The speed-test node is congested
Tip: run it several times and average the results; test at different times of day.
GeekBench won’t run
Problem: on a small-RAM VPS, GeekBench runs out of memory (OOM).
Fix:
1 | # Create swap (temporary) |
Return-route test fails
Problem: backtrace or another routing script won’t run.
Fix:
1 | # Install dependencies |
6. FAQ
Q: Will these benchmark scripts leak my info?
A: These scripts are all open source — you can read the code. They only test VPS performance and don’t upload anything sensitive. Still, I’d recommend:
- Get them from trusted sources like GitHub
- If you’re unsure, download and read the code before running
Q: Why are my speed-test results so different from someone else’s?
A: A lot of things affect it:
- Time of day (peak vs off-peak)
- Your local network (which carrier you’re on)
- The VPS’s current load
- The state of the speed-test node
Test during the evening peak (8–10 PM) for numbers that actually mean something.
Q: The provider claims CN2 GIA — how do I verify it?
A: Run a return-route trace (backtrace) and read the output:
- Real CN2 GIA: 59.43.x.x the whole way, no 202.97
- Fake CN2 GIA (actually GT): 59.43 on the international leg, 202.97 on the domestic leg
- Not CN2 at all: 202.97 the whole way
Q: What I/O speed counts as normal?
A: Reference values:
- SSD: 500MB/s and up
- Ordinary cloud disk: 200–500MB/s
- HDD or heavily oversold: <200MB/s
Q: Do I need to run every single script?
A: Nope. Recommended flow:
- Start with the Fusion script (ecs.sh) or ZBench — one script covers most of it
- If you want to dig into the route, run backtrace
- If you care about IP quality, run IP.Check.Place
Q: How long does testing take?
A: Rough timings:
- bench.sh: 2–3 minutes
- SuperBench / ZBench: 5–10 minutes
- YABS (with GeekBench): 10–15 minutes
- Fusion full test: 15–30 minutes
- UnixBench: 30+ minutes
What’s Next
Common VPS traps and how to dodge them — the pitfalls I’ve hit, including bad IPs, fake route labels, hidden fees, and more.
Last updated: January 2026





