793 字
4 分钟
generate_204:网络连通性检测服务汇总

什么是 generate_204#

generate_204 是一种用于检测网络联通性的轻量 HTTP 接口。设备连接到 Wi-Fi 后,操作系统会自动向预设 URL 发送 HTTP 请求,根据返回的状态码判断当前网络状态:

  • 返回 204 No Content200 OK → 网络畅通,可正常上网
  • 返回 302 重定向 → 可能处于需要认证的 Captive Portal(如酒店/机场 Wi-Fi 登录页)
  • 请求超时 / 无响应 → 网络不通或被封锁
NOTE

“204” 的含义是 HTTP 状态码 No Content(无内容),服务器返回空响应体,流量消耗极少,非常适合作为周期性心跳检测。


工作原理#

设备连接 Wi-Fi
发送 HTTP GET → http://www.gstatic.com/generate_204
┌───────────────────────────────────────┐
│ 返回 204 → 网络正常,无感知通过 │
│ 返回 302 → 弹出 Portal 登录界面 │
│ 超时/其他 → 显示"无互联网访问" │
└───────────────────────────────────────┘

各主流操作系统使用不同的检测地址:

系统 / 浏览器使用的检测 URL
Android (AOSP)http://connectivitycheck.gstatic.com/generate_204
Chrome / ChromeOShttp://www.gstatic.com/generate_204
Microsoft Edgehttp://edge-http.microsoft.com/captiveportal/generate_204
Windows (NCSI)http://www.msftconnecttest.com/connecttest.txt
macOS / iOShttp://captive.apple.com
Firefoxhttp://detectportal.firefox.com/canonical.html
MIUI (小米)http://connect.rom.miui.com/generate_204
HarmonyOS (华为)http://connectivitycheck.platform.hicloud.com/generate_204

服务地址汇总#

TIP

下表中的”体验评分”为粗略延迟测试(满分 10 分),实际结果因地区和时段而异,仅供参考。

国际服务#

服务提供者链接大陆体验境外体验HTTP / HTTPS 响应码IP 版本
Googlehttp://www.gstatic.com/generate_204510204 / 2044+6
Googlehttp://www.google.com/generate_204010204 / 2044+6
Googlehttp://connectivitycheck.gstatic.com/generate_204410204 / 2044+6
Googlehttp://connectivitycheck.android.com/generate_204310204 / 2044+6
Googlehttp://clients3.google.com/generate_204310204 / 2044+6
Googlehttp://play.googleapis.com/generate_204210204 / 2044+6
Googlehttp://www.google-analytics.com/generate_204610204 / 2044+6
Applehttp://captive.apple.com310200 / 2004+6
Apple 🔥http://www.apple.com/library/test/success.html710200 / 2004+6
Microsofthttp://www.msftconnecttest.com/connecttest.txt510200 / error4
Microsofthttp://edge-http.microsoft.com/captiveportal/generate_204510204 / 2044
Microsofthttp://www.msftncsi.com/ncsi.txt410200 / 2004
Cloudflare 🔥http://cp.cloudflare.com/410204 / 2044+6
Firefoxhttp://detectportal.firefox.com/success.txt510200 / 2004+6
Firefoxhttp://detectportal.firefox.com/canonical.html510200 / 2004+6
GNOMEhttp://nmcheck.gnome.org/check_network_status.txt28200 / 2004+6
V2EXhttp://www.v2ex.com/generate_204010204 / 3014+6

国内服务#

服务提供者链接大陆体验境外体验HTTP / HTTPS 响应码IP 版本
小米 / MIUI 🔥http://connect.rom.miui.com/generate_204104204 / 2044
华为 / HiCloudhttp://connectivitycheck.platform.hicloud.com/generate_204105204 / 2044
Vivohttp://wifi.vivo.com.cn/generate_204105204 / 2044
WARNING

国内服务(小米、华为、Vivo)在境外网络环境下延迟较高甚至不可达,不建议在海外服务器上使用。反之,Google 系地址在大陆网络中通常被封锁,大陆用户推荐使用 Apple、Cloudflare 或国内厂商地址。


常见使用场景#

1. 代理软件联通性测试#

主流代理工具(如 Clash、sing-box)的延迟测试(URL Test)默认使用 http://www.gstatic.com/generate_204,可根据需要替换为延迟更低的地址:

# Clash / Mihomo 示例
url-test:
url: "http://cp.cloudflare.com/" # 或使用 apple.com/library/test/success.html
interval: 300

2. 替换 Android 默认检测地址(去除感叹号)#

在 Android 设备(需 Root 或 ADB)中修改检测地址,可将 Google 服务替换为国内可访问的地址,解决 Wi-Fi 图标感叹号问题:

Terminal window
# 通过 ADB 修改(Android 7+)
adb shell settings put global captive_portal_http_url "http://connect.rom.miui.com/generate_204"
adb shell settings put global captive_portal_https_url "https://connect.rom.miui.com/generate_204"
CAUTION

修改系统检测地址可能影响 Captive Portal 的自动弹出功能(如机场/酒店 Wi-Fi 登录页),请根据实际需求谨慎操作。

3. 自建检测服务#

可以用 Nginx 快速搭建私有 generate_204 端点,适合企业内网或私有部署场景:

location /generate_204 {
return 204;
}

选择建议#

使用环境推荐地址
大陆用户,追求速度http://www.apple.com/library/test/success.html
大陆用户,Android 原生http://connect.rom.miui.com/generate_204
境外服务器 / 代理测速http://cp.cloudflare.com/
需要严格 204 状态码http://www.gstatic.com/generate_204(境外)
全球通用,兼容性佳http://cp.cloudflare.com/

体验评分仅为粗略延迟测试,大概率与实际不符,仅作参考。

这篇文章是否对你有帮助?

发现错误或想要改进这篇文章?

在 GitHub 上编辑此页
generate_204:网络连通性检测服务汇总
https://jk.sb/posts/generate-204/
作者
业余玩家
发布于
2025-10-27
许可协议
CC BY-NC-SA 4.0