Hysen Labs
Open-source project
stevenjoezhang/luci-app-cloudflarespeedtest avatar
stevenjoezhang

luci-app-cloudflarespeedtest

A LuCI app for OpenWRT that schedules and runs CloudflareSpeedTest, automatically selecting and applying the fastest Cloudflare IPs to outbound proxy setups

40 stars8 forksShellGPL-3.0
DEEP OPEN-SOURCE ANALYSIS

luci-app-cloudflarespeedtest: a Cloudflare IP speed test app for OpenWrt

This LuCI application runs the CloudflareSpeedTest core on an OpenWrt router and writes the fastest Cloudflare IP into proxy and DNS plugins.

What the app does on an OpenWrt router

luci-app-cloudflarespeedtest is a LuCI application for OpenWrt that builds on the CloudflareSpeedTest core tool. The README explains that it automatically tests the latency and download speed of Cloudflare IP addresses, picks the best ones for your network, and updates them into proxy plugins such as SSR+ and Passwall. LuCI is the web interface used by OpenWrt, so the app gives router owners a graphical way to run and schedule those tests instead of typing commands on the shell. The README states the project is a fork of mingxiaoyu/luci-app-cloudflarespeedtest with significant refactoring and improvements, which means the code descends from an existing community effort and has been reworked by the current maintainer. A user who runs the tests gets a ranked view of which Cloudflare edge addresses respond fastest from their connection, and the app can then push the chosen address into the configured proxy or DNS tool. The README also points readers to a Chinese language documentation file and to the author's related Astra DNS project for those who want the selected IPs used directly in DNS resolution with ad filtering. The framing is about optimizing the Cloudflare edge a router reaches, not about providing proxy nodes themselves. The README also notes the project is a maintained fork and that the upstream CloudflareSpeedTest repository can be consulted to understand the core tool the app wraps.

Features exposed in the LuCI interface

The README lists several features the app provides through its interface. Auto speed test lets the app run Cloudflare IP tests on a schedule or on demand to find the best address. Proxy integration means the chosen IP is written automatically into SSR+, Passwall, MosDNS, astra-dns, and other proxy or DNS tools, so the user does not edit each configuration by hand. Visual charts show history for latency and download speed trends, which helps a user see whether the selected IP stays good over time. Auto core download is a design choice where the package itself does not bundle the CloudflareSpeedTest binary; instead the core is fetched automatically on first run, which keeps the installed package small. The README also notes an improved UI and log format compared with the original fork, with a redesigned status display and logs meant for better readability. Together these features turn a command line benchmarking tool into something a router owner can manage from the OpenWrt web panel, with scheduled runs and a visible history. The app is therefore positioned as a convenience and automation layer on top of the separate CloudflareSpeedTest core. The README's list of improvements over the original fork centers on the interface and log readability rather than on changing how the speed test itself operates.

How installation and updates work

The README gives installation steps that start with downloading the latest .ipk or .apk file from the project releases, which are the two package formats used by OpenWrt and its newer variants. After the package is placed on the router it can be installed through the normal OpenWrt package tooling, then enabled in the LuCI interface. Because the package does not ship the core binary, the first time the app runs it downloads the CloudflareSpeedTest core automatically, so an internet connection is needed at that moment even though later test runs only need to reach Cloudflare addresses. The README mentions the project carries a GitHub Actions build workflow and a release badge, which tells a user that new builds are produced automatically and tagged as releases. The project is licensed under GPL 3.0, a copyleft license, so anyone who distributes a modified version must also publish their source changes under the same terms. The README also links to a Chinese README for users who prefer that language and to the upstream CloudflareSpeedTest repository so readers can understand the core tool the app wraps. The author presents the work as a maintained fork rather than a one off script. The release workflow badge and the Chinese documentation show the project aims at an ongoing audience of OpenWrt users instead of a single release.

Relationship to proxy tooling and scope

The app's job is to measure Cloudflare edge addresses and write the fastest one into other programs, and the README names SSR+, Passwall, MosDNS, and astra-dns as the targets it updates. Those are separate proxy and DNS projects that a router owner configures; this app does not itself provide proxy servers, node lists, or credentials. It is a speed test and configuration writer that assumes the user already runs those plugins and wants the Cloudflare IP they use to be the lowest latency one available from their location. The README also suggests that users who want the chosen IPs applied at the DNS layer with ad blocking look at the author's Astra DNS and its LuCI plugin. Seen this way, the project is a CDN edge optimizer that happens to integrate with proxy plugins commonly found on OpenWrt routers. It does not distribute circumvention infrastructure of its own. Whether a reader considers it part of a proxy ecosystem depends on how they view the proxy plugins it targets, and that adjacency is noted here as a point of uncertainty rather than a determination that the project is itself a circumvention tool. The core function remains IP latency measurement and automated config updates.

Editorial conclusion

The project is written in Shell and published under the GPL 3.0 license. It is a fork of mingxiaoyu/luci-app-cloudflarespeedtest and installs as an .ipk or .apk package on OpenWrt.

DEEP OPEN-SOURCE ANALYSIS

Official sources

Community notes

Community notes