mrkeyoor.com_
Sat 26 Sept 10:51 UTC
Dev Toolsevaluationupdated 26 Aug 2026

CloudflareSpeedTest review

CloudflareSpeedTest is a Chinese-language command-line tool that samples CDN addresses, measures latency and download speed, and writes the best results to a CSV file. The project has no first-party English README, though its README links to an unofficial English-language fork.

+65stars / 7d
Verdict

Our CloudflareSpeedTest run installed 9 packages, built in 26 seconds, and completed go test in 4 seconds, but the test command exercised 0 tests. It is a focused, easy-to-build utility for Chinese-speaking operators who understand that results describe one connection at one moment. Skip it for WARP, unattended high-concurrency scanning, or any workflow that treats the first CSV row as a permanent network truth.

We ran it

Lab card: what happened when we ran CloudflareSpeedTestScreenshot of CloudflareSpeedTest (github.com/XIU2/CloudflareSpeedTest)
Install✓ · 9s9 packages
Build✓ · 26s
Tests✓ · 4s0 passed · 0 failed of 0 (go test)
Repo28 files~1,553 lines of source · 0.2 MB · 0 CI workflows

Answers from our run

Does CloudflareSpeedTest build from source?

Dependencies installed in 9 seconds (9 packages), and the build succeeded in 26 seconds. We cloned commit d9f0ced into a clean Debian container with 3 CPUs and no project-specific setup.

Do CloudflareSpeedTest's tests pass?

Yes: 0 of 0 passed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use CloudflareSpeedTest?

Anyone optimizing Cloudflare WARP: the README explicitly says the tool is for websites and does not support choosing WARP IPs.

What are the alternatives to CloudflareSpeedTest?

CFST English, Globalping, cloudflared. Our CloudflareSpeedTest run installed 9 packages, built in 26 seconds, and completed go test in 4 seconds, but the test command exercised 0 tests.

Setup4/59-second install and 26-second build, with prebuilt releases available
Docs4/5Detailed Chinese guide; no first-party English README
Community4/528,757 stars with issue and pull request activity in August
Maturity3/5v2.3.5 ships widely, but the repository has no measured tests

Who it’s for

Chinese-speaking operators comparing Cloudflare edge addresses from their own connection.
Router and homelab users who need a small Go binary across several CPU architectures.
CDN users who can provide a suitable download-test URL and interpret latency, loss, and region codes.
Operators who want CSV output for a separate DNS or routing workflow.

Who it’s NOT for

Anyone optimizing Cloudflare WARP: the README explicitly says the tool is for websites and does not support choosing WARP IPs.
Users who must keep a proxy enabled during measurement: the README warns that a proxy can produce misleadingly low latency and unusable results.
Server operators who cannot risk scan-like traffic: HTTPing at high concurrency may trigger temporary limits or a provider suspension, according to the usage warning.
English-only users who need maintained first-party instructions: the main documentation and release notes are Chinese, and the English version linked by the README is a separate fork.
Go users expecting a clean go install path: open issue 666 reports that v2 tags do not match the module path's missing /v2 suffix.

Setup reality

Our sandbox installed 9 Go packages in 9 seconds at commit d9f0ced. The build succeeded in 26 seconds, and go test succeeded in 4 seconds while running 0 tests: 0 passed and 0 failed. The 28-file checkout had no CI workflows, Dockerfile, or tests directory.

A prebuilt binary needs no account or API key. Default use reads bundled IP ranges, reaches candidate addresses, performs download tests, and writes result.csv. Testing another CDN needs its IP ranges and a suitable URL; automated DNS changes are a separate workflow.

The README covers Windows, Linux, macOS, routers, and phones, but platform details and help text are Chinese. Proxy routing can invalidate measurements. HTTPing is scan-like traffic, so concurrency must fit the network and hosting provider's rules.

CloudflareSpeedTest ranks IPs from one local connection

CloudflareSpeedTest takes a list of IPv4 or IPv6 ranges, probes sampled addresses, filters them by latency and loss, then performs download checks on promising candidates. The default output shows the fastest results and writes the complete set to result.csv. It is meant to answer a local operational question: which reachable CDN address behaves best from this network now? It does not establish a universally fastest Cloudflare address.

The repository at commit d9f0ced was small: 28 files, about 1,553 lines of source, and 0.2 MB checked out. GitHub identifies Go as the primary language. Our scan found no CI workflow files, Dockerfile, or tests directory. That compact footprint makes the code approachable, but the missing automated test surface matters because address sampling, filtering, CSV output, and platform behavior can change without a test suite visible in the checkout.

The Chinese README has no first-party English twin

The primary documentation, command help, warnings, and v2.3.5 release notes are written in Chinese. The repository root contains only README.md, with no English README beside it. Near the end, the author links an unofficial English-language fork maintained in another repository. English-only users can follow command flags and translated material, but they should know that fixes and release guidance originate in the Chinese project.

Documentation depth is otherwise a strength. The README explains the default 200 latency workers, 4 probes per address, 10 download candidates, and a 10-second per-download limit. It covers TCPing and HTTPing, custom ports, result limits, IP lists, region filters, debug output, and speed thresholds. Those are project defaults, not measurements from our lab, and operators should change them based on their network and provider policies.

What happened when we ran it

Our sandbox installed 9 Go packages in 9 seconds and built commit d9f0ced in 26 seconds. The checkout compiled cleanly in an unprivileged Debian container with 3 CPUs and 8 GB of RAM. That result supports the project's simple source-build story. It does not test whether a particular ISP, region, or Cloudflare route will produce useful candidates.

go test exited successfully after 4 seconds, but it ran 0 tests: 0 passed and 0 failed. This is a command-success result rather than evidence that filtering or network behavior was verified. The absence matches the repository signals: no tests directory and no CI workflows were found. A team embedding the CSV into DNS automation should add its own parser, fixture, and failure-mode checks before making network changes from the output.

Proxy traffic can make the numbers wrong

The README warns that average latency around 0.xx can mean the test went through a proxy. It tells users to disable proxy software or exclude the tool, including when it runs on a router. That caveat is central. The tool measures the path its traffic actually takes, so a transparent proxy, VPN, tunnel, or policy route can turn a clean-looking result into the wrong answer for direct client traffic.

HTTPing brings another constraint. The documented maximum is 1,000 latency workers, but the README advises lowering concurrency on servers because HTTP probes can look like network scanning. It says an operator or CDN may apply a temporary restriction, and a strict hosting vendor may suspend service. The default of 200 workers is therefore a software setting, not permission to use that load from every VPS or corporate network.

Custom CDNs need an IP list and test URL

Cloudflare ranges are the obvious use case, yet the tool can measure other CDNs or a hostname with multiple resolved addresses. For another CDN, the operator supplies ranges through a file or -ip and chooses a download URL. Region extraction supports several providers when their HTTP response exposes a recognized code. A bad, blocked, or unrepresentative URL can yield 0.00 download results even when the address itself is reachable.

The tool stops after enough candidates meet the requested download threshold or after the queue is exhausted. With -sl set too high, it may keep testing every queued address while the visible qualifying count barely moves. Debug mode returns error details and, in some failure cases, shows results that did not meet the filter. That behavior helps diagnosis, but it also means an automation should distinguish a completed search from a search that found the requested 10 qualifying results.

v2.3.5 widened binaries while module packaging remains awkward

Release v2.3.5 was published April 29, 2026. Its notes say connections are released faster after HTTPing and download checks, and Linux archives switched to a more compatible tar format for reduced systems such as OpenWrt. Assets cover current and older macOS or Windows paths plus several Linux CPU architectures. The notes also warn that old-system builds use Go 1.20 and will not receive separate fixes for every compatibility problem.

GitHub showed 28,757 stars, 30 combined open issues and pull requests, and a last push on August 23, 2026. Pull request 648 about IPv6 sampling was updated August 25, while issue 666 reported a go install module-version mismatch. That dated activity shows maintenance after v2.3.5. It also supports using release archives or a normal source checkout instead of assuming Go's versioned install command is the smoothest path.

Use the CSV as input, not as a permanent verdict

CloudflareSpeedTest does one job with a small binary and a large Chinese manual. Our 35-second install-and-build result makes it cheap to trial, while the 0-test run argues for restraint around automation. Network conditions, sampling, proxy routes, chosen URLs, and concurrency all influence the list. The top row is evidence from that run, not a durable routing guarantee.

Use it to compare candidates, repeat checks from the client network, and feed a reviewed DNS process. Do not use it for Cloudflare WARP, which the README explicitly excludes. Avoid aggressive HTTPing from infrastructure where scan-like traffic breaches policy. Teams that cannot read Chinese should either use the linked English fork carefully or choose a measurement platform whose primary documentation and support channel match their working language.

Alternatives

ProjectWhat it isPick it when
CFST EnglishAn unofficial English-language variant of CloudflareSpeedTest.pick this instead when English terminal text and instructions matter more than following the original repository directly.
GlobalpingA distributed network measurement platform for probes from many locations.pick this instead when worldwide external measurements matter more than selecting an IP from one local connection.
cloudflared gh↗Cloudflare's client for Tunnel, DNS over HTTPS, and related network functions.pick this instead when you need an official Cloudflare connectivity client rather than an edge-IP ranking utility.

What people are saying

  1. [github-trending] XIU2/CloudflareSpeedTest

Sources

  1. CloudflareSpeedTest README
  2. CloudflareSpeedTest repository activity
  3. CloudflareSpeedTest v2.3.5 release
  4. Go install module path issue 666

More dev tools reviews

just · docker_practice · microservices-demo · Claude-Code-Usage-Monitor · pyxel · dust · the whole board →