[Question]: 官方 Docker 在办公网 NAT 下 grok.com 被 CF challenge,Build/Web 应先走哪条出口?
Author: YSheldonCreated Sep 12, 2026Updated Sep 20, 2026
Labelsstale
环境
- 官方镜像
ghcr.io/chenyme/grok2api:latest(VERSIONv3.1.5) - 按 README 使用
docker compose,端口只绑127.0.0.1:8000 - 宿主机:WSL2 Ubuntu,
linux/amd64,办公网 NAT 出口(CHINANET) - 未导入任何 Grok 账号,未启用 WARP / FlareSolverr / quality-guard
已确认能工作的部分
- 容器
healthy,GET /healthz返回{"ok":true} - 管理端可登录
GET /readyz为not_ready:grok_web/grok_console提示「当前没有可用于已启用路由的账号」。这点符合预期- 容器内访问
https://api.x.ai/v1/models返回 401 JSON(TLS/HTTP 通,只是没有官方 Key)
被 Cloudflare 拦住的部分
容器内访问 https://grok.com/ 返回 403,响应头包含 cf-mitigated: challenge。这和宿主机上直接 curl https://grok.com/ 的结果一致,所以不像是 Docker 网络单独坏了,而是当前出口打网页通道会被挑战。
想确认的问题
- 在这种办公网 NAT / 非家宽出口上,Grok Web / Console 是否预期必须走文档里的独立出口(WARP 或自备代理),即使还没导入 SSO?
- 同一出口下,Grok Build 的 Device OAuth 是否可以不经过 grok.com 的 Cloudflare 挑战完成接入?如果可以,服务器部署是否应优先 Build?
- README 里的 FlareSolverr 是「已有 Web 账号之后刷新 Clearance」用的,还是「容器刚起来、网页 403 challenge 时」也需要先开?
不需要绕过 Cloudflare 的实现细节。只要官方推荐的部署顺序:先 Build、先换出口,还是先开 Clearance。
复现
git clone https://github.com/chenyme/grok2api.git
cd grok2api
cp config.example.yaml config.yaml
# 填入 secrets / bootstrapAdmin
docker compose pull
docker compose up -d
curl -sS http://127.0.0.1:8000/healthz
docker exec grok2api wget -qS -O /dev/null https://grok.com/
docker exec grok2api wget -qS -O /dev/null https://api.x.ai/v1/modelsSource: chenyme/grok2api