XIU2/CloudflareSpeedTest · warning
CFST 测速结果 IP 数量为 0,跳过下面步骤...
Error message
CFST 测速结果 IP 数量为 0,跳过下面步骤...
What it means
Informational guard in the CFST Windows DDNS batch script: after `echo.|cfst.exe -o "result_ddns.txt"` runs, the script checks `if not exist result_ddns.txt` and prints this message before jumping to :END. CFST only writes the -o output file when at least one Cloudflare IP passed all latency/speed filters, so a missing file means the speed test found zero usable IPs. This is a deliberate early-exit, not a crash — the DNS record is simply left untouched for this run.
Source
Thrown at script/cfst_ddns.bat:16
:: --------------------------------------------------------------
:: 项目: CloudflareSpeedTest 自动更新域名解析记录
:: 版本: 1.0.6
:: 作者: XIU2
:: 项目: https://github.com/XIU2/CloudflareSpeedTest
:: --------------------------------------------------------------
@echo off
Setlocal Enabledelayedexpansion
:: 这里可以自己添加、修改 CFST 的运行参数,echo.| 的作用是自动回车退出程序(不再需要加上 -p 0 参数了)
echo.|cfst.exe -o "result_ddns.txt"
:: 判断结果文件是否存在,如果不存在说明结果为 0
if not exist result_ddns.txt (
echo.
echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
goto :END
)
for /f "skip=1 tokens=1 delims=," %%i in (result_ddns.txt) do (
Echo %%i
if "%%i"=="" (
echo.
echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
goto :END
)
:: API 密钥方式(全局权限)
curl -X PUT "https://api.cloudflare.com/client/v4/zones/域名ID/dns_records/域名解析记录ID" ^
-H "X-Auth-Email: 账号邮箱" ^
-H "X-Auth-Key: 前面获取的 API 密钥" ^
-H "Content-Type: application/json" ^
--data "{\"type\":\"A\",\"name\":\"完整域名\",\"content\":\"%%i\",\"ttl\":1,\"proxied\":true}"
:: API 令牌方式(自定义权限),如果要使用这种方式,可以把上面的删除或注释,然后把下面的行首 "::" 注释符删除即可。
:: curl -X PUT "https://api.cloudflare.com/client/v4/zones/域名ID/dns_records/域名解析记录ID" ^
View on GitHub (pinned to 1da0c025d7)
Solutions
- Run `cfst.exe -o result_ddns.txt` manually in the same folder and watch stdout — if it prints 0 usable IPs, relax the filters (lower -sl, raise -tl) in the `echo.|cfst.exe ...` line.
- Confirm cfst.exe exists in the script's working directory and is not quarantined by antivirus.
- Provide a fresh pool: download a new ip.txt / ipv6.txt and add `-f ip.txt` to the cfst command line.
- Check basic reachability of the speed-test URL (default uses a Cloudflare-hosted file) from that machine/browser.
- If filtering is intentional, accept the skip: rerun on a schedule (Task Scheduler) so a later run with a working pool updates DNS.
Example fix
:: before
echo.|cfst.exe -o "result_ddns.txt"
if not exist result_ddns.txt (
echo.
echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
goto :END
)
:: after — explicit args and a fallback second attempt with looser speed limit
echo.|cfst.exe -f ip.txt -tl 250 -sl 2 -o "result_ddns.txt"
if not exist result_ddns.txt (
echo.|cfst.exe -f ip.txt -tl 250 -o "result_ddns.txt"
)
if not exist result_ddns.txt (
echo.
echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
goto :END
) Defensive patterns
Strategy: validation
Validate before calling
:: Pre-flight for cfst_ddns.bat
@echo off
if not exist cfst.exe (
echo cfst.exe not found in current directory & exit /b 1
)
for %%A in (ip.txt) do if %%~zA EQU 0 (
echo ip.txt is empty - refresh the IP pool & exit /b 1
)
:: dry run to confirm at least one IP passes current filters
cfst.exe -f ip.txt -tl 250 -sl 2 -o probe.txt >nul 2>&1
if not exist probe.txt (
echo Filters too strict: 0 IPs passed - lower -sl or raise -tl & exit /b 1
) Prevention
- Keep the speed lower limit (-sl) modest (1-5 MB/s) so ordinary networks still yield results.
- Refresh ip.txt/ipv6.txt periodically; pools go stale as Cloudflare ranges shift.
- Set scheduled-task 'Start in' to the script folder so result_ddns.txt is created where the .bat reads it.
- Exclude cfst.exe from antivirus or sign your own build to avoid silent quarantine.
- Treat this message as a skip, not a failure: schedule frequent runs so the next successful round updates DNS.
When it happens
Trigger: cfst.exe runs but writes no result_ddns.txt because: every IP in the default IP pool failed the latency test (-tl threshold), the download-speed filter (-sl, e.g. -sl 5) rejected all survivors because the test URL was slow/unreachable, IP versions mismatched (testing an ipv6.txt pool without -f or on a network without IPv6), or cfst.exe itself never executed (missing exe, AV quarantine, not in the working directory).
Common situations: Users raising -sl/-tl too high for their region; a stale or exhausted built-in IP pool after CF routing shifts; running the .bat from a different working directory so the file lands elsewhere; antivirus silently removing cfst.exe; ISP throttling the speed-test download making all IPs fall below the lower limit.
Related errors
- CFST 测速结果 IP 数量为 0,跳过下面步骤...
- CFST 测速结果 IP 数量为 0,跳过下面步骤...
- [错误] 缺少配置项 [FOLDER] !
- [错误] 缺少配置项 [ZONE_ID] !
- [错误] 缺少配置项 [DNS_RECORDS_ID] !
AI-assisted analysis of XIU2/CloudflareSpeedTest@1da0c025d7 (2026-08-15).
Data as JSON: /api/errors/80ad2d49b33b4f06.
Report an issue: GitHub.