本文面向刚接触 Linux、Docker 和 systemd 的用户,重点覆盖 Ubuntu 22.04/24.04。Debian 类系统也可参考,但软件包名称可能有差异。
推荐架构:
- GPTGrok2API 主程序直接运行在 Linux 宿主机。
- Captcha Solver 直接运行在 Linux 宿主机,由 Xvfb 提供虚拟显示器。
- WARP、Privoxy、FlareSolverr 和 iCloud Privacy Mail 运行在 Docker。
- systemd 负责开机启动、异常重启和日志管理。
- 只将 GPTGrok2API 主程序通过 Nginx/HTTPS 对外提供,不公开 solver 和内部代理端口。
Ubuntu Server 不需要安装桌面环境,也不需要通过远程桌面一直打开浏览器窗口。Captcha Solver 仍会访问 xAI 实际页面,但 Chromium 画面由 Xvfb 提供的虚拟显示器承载。
macOS 用户请阅读 macOS 从零搭建手册。
| 服务 | 用途 | 监听地址 |
|---|---|---|
| GPTGrok2API | 管理后台、账号池、注册中心、统一 API | 127.0.0.1:8000 |
| Captcha Solver | Grok Turnstile 实页解题 | 127.0.0.1:8877 |
| WARP SOCKS5 | WARP 出口 | 127.0.0.1:40000 |
| Privoxy | HTTP 代理出口 | 127.0.0.1:40080 |
| FlareSolverr | Cloudflare clearance | 127.0.0.1:8191 |
| iCloud Privacy Mail | 本地邮箱 sidecar | 127.0.0.1:8788 |
| Nginx | 公网 HTTP/HTTPS 入口 | 0.0.0.0:80/443 |
不要将 8877、40000、40080、8191 或 8788 放行到公网。
推荐:
- Ubuntu Server 22.04 LTS 或 24.04 LTS。
- x86_64 或 arm64。
- 一个可使用
sudo的普通用户。 - 公网部署时需要域名解析到服务器 IP。
不建议长期使用 root 直接运行主程序和 Chromium。
| 用途 | 最低配置 | 推荐配置 |
|---|---|---|
| 单线程测试 | 2 vCPU / 4 GB RAM | 4 vCPU / 8 GB RAM |
| 2-3 并发 | 4 vCPU / 8 GB RAM | 8 vCPU / 16 GB RAM |
| 多 solver worker | 8 GB RAM 起 | 16-32 GB RAM |
磁盘建议至少预留 10 GB,因为 Docker 镜像、Chromium、日志和备份都会占用空间。
代码、本地 Captcha Solver、Xvfb、Docker 和 systemd 本身不按解题次数收费,但整套部署不一定是零成本:
- 本地 Turnstile 解题不需要向 YesCaptcha、2Captcha 等第三方打码平台按次付费。
- 已有 Ubuntu 电脑可以不新增服务器费用;云服务器/VPS 通常按月收费。
- 只通过 SSH 隧道自用时可以不购买域名;公网 HTTPS 通常需要域名,Let's Encrypt 证书本身免费。
- WARP 基础服务可免费使用,但住宅代理、移动代理或其他更稳定的出口一般收费。
- 外部邮箱 API、第三方账号、云流量和备份存储可能另外收费。
因此,“本地打码”可以免掉第三方打码平台的按次费用,不代表服务器、代理和邮箱资源全部永久免费。
更新系统:
sudo apt-get update
sudo apt-get upgrade -y安装基础工具:
sudo apt-get install -y \
git curl ca-certificates jq openssl build-essential \
unzip tar xvfb nginx ufw检查时间和时区:
timedatectl
sudo timedatectl set-timezone Asia/Shanghai时间严重不准会导致 token、Cookie 和 HTTPS 校验异常。
先检查:
docker --version
docker compose version如果尚未安装,可使用 Docker 官方安装脚本:
curl -fsSL https://get.docker.com -o /tmp/get-docker.sh
sudo sh /tmp/get-docker.sh
sudo usermod -aG docker "$USER"退出 SSH 后重新登录,或执行:
newgrp docker启用 Docker:
sudo systemctl enable --now docker
docker run --rm hello-world如果 docker 仍提示权限不足,检查:
id
getent group dockerUbuntu 自带的 Node.js 可能过旧。使用 NodeSource 安装 Node.js 22:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs检查:
command -v node
node --version
npm --versioncommand -v node 应返回 /usr/bin/node 或其他 systemd 可访问的系统路径。Grok Castle token 依赖 Node.js。
Ubuntu 22.04/24.04 默认 Python 版本可能低于项目要求,不要强行替换系统 Python。使用 uv 独立安装 Python 3.13:
curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.local/bin/env"
uv python install 3.13
uv --version如果重新登录后提示 uv: command not found,将下面一行加入 ~/.bashrc:
export PATH="$HOME/.local/bin:$PATH"本手册使用 /opt/gptgrok-stack:
sudo mkdir -p /opt/gptgrok-stack
sudo chown -R "$USER":"$(id -gn)" /opt/gptgrok-stack
cd /opt/gptgrok-stack本手册后续命令面向最终使用者。发布者先在自己的 Mac 上把功能源码提交并推送到 GitHub;使用者不需要也不应该接触发布者 Mac 上的运行目录、账号数据或密钥。
Mac 上只上传以下内容:
- GPTGrok2API 源码、前端源码和部署模板。
- 已内置的
captcha-solver/源码。 .env.example、README 和安装手册等不含真实密钥的示例文件。
下列内容必须留在 Mac 本机,不能提交到仓库,也不要通过 rsync 发给其他用户:
.venv/
captcha-solver/.venv/
node_modules/
web_dist/
.env
config.json
data/
logs/
*.log
其中 data/、.env 和 config.json 可能包含账号、Cookie、OAuth token、邮箱材料和管理密钥。当前仓库的 .gitignore 已排除这些内容;发布前仍应执行 git status 和密钥扫描确认。
使用者只从仓库获取干净源码,并在自己的 Ubuntu 上重新创建 .venv、.env、config.json 和 data/。
当前主仓库已经同时包含:
- GPTGrok2API 的“本地 Captcha Solver” provider 和代理透传。
captcha-solver/完整源码。- xAI 实页渲染和 callback token 采集修复。
克隆主仓库即可,不再需要另外下载 xai-grok-mass:
git clone https://github.com/AuuCoder/gptGrok2api.git chatgpt2api仓库已经公开,使用者直接执行上面的 HTTPS 克隆命令即可,不需要 Personal Access Token、SSH Key 或其他仓库凭据。
目录结构:
/opt/gptgrok-stack/
└── chatgpt2api/
├── captcha-solver/
├── services/
└── web-vue/
确认关键文件已经到位:
test -f /opt/gptgrok-stack/chatgpt2api/services/register/grok_protocol.py
test -f /opt/gptgrok-stack/chatgpt2api/deploy/systemd/chatgpt2api.service.example
test -f /opt/gptgrok-stack/chatgpt2api/captcha-solver/server.py
echo "source files ready"如果仓库中没有 captcha-solver/server.py,说明代码版本过旧,需要先更新主仓库。
cd /opt/gptgrok-stack/chatgpt2api
uv sync --python 3.13检查 Python:
.venv/bin/python --version构建前端:
cd /opt/gptgrok-stack/chatgpt2api/web-vue
npm ci
npm run build:server返回项目根目录:
cd /opt/gptgrok-stack/chatgpt2api生成随机管理密钥:
openssl rand -hex 24创建 config.json:
{
"auth-key": "替换为上一步生成的随机密钥"
}设置权限:
chmod 600 config.jsoncp .env.example .env
chmod 600 .env宿主机混合部署推荐值:
CHATGPT2API_PORT=8000
WARP_SOCKS_PORT=40000
PRIVOXY_PORT=40080
FLARESOLVERR_PORT=8191
ICLOUD_PRIVACY_MAIL_PORT=8788
ICLOUD_PRIVACY_MAIL_BASE_URL=http://127.0.0.1:8788
ICLOUD_PRIVACY_MAIL_PUBLIC_BASE_URL=http://127.0.0.1:8788
CHATGPT2API_HOST_PRIVOXY_URL=http://127.0.0.1:40080
CHATGPT2API_HOST_FLARESOLVERR_URL=http://127.0.0.1:8191
TZ=Asia/ShanghaiCHATGPT2API_AUTH_KEY 可以不写,此时使用 config.json 的 auth-key。
只启动 WARP、Privoxy、FlareSolverr 和 iCloud sidecar:
cd /opt/gptgrok-stack/chatgpt2api
docker compose -f docker-compose.warp.yml --profile local-icloud up -d \
warp-proxy privoxy flaresolverr icloud-privacy-mail不要直接执行不带服务名的 up -d,否则 Docker 版 app 也会启动,与宿主机 systemd 主程序重复。
检查:
docker compose -f docker-compose.warp.yml --profile local-icloud ps
curl -I http://127.0.0.1:8191/
curl -I http://127.0.0.1:8788/login
curl -x http://127.0.0.1:40080 https://www.cloudflare.com/cdn-cgi/tracecd /opt/gptgrok-stack/chatgpt2api/captcha-solver
uv venv --python 3.13 .venv
uv pip install --python .venv/bin/python -r requirements.txt安装 Chromium 常用系统库:
sudo .venv/bin/python -m playwright install-deps chromium检查依赖:
.venv/bin/python -c 'import cloakbrowser, fastapi, uvicorn; print("solver dependencies ok")'cd /opt/gptgrok-stack/chatgpt2api/captcha-solver
TURNSTILE_HEADLESS=0 xvfb-run -a \
--server-args='-screen 0 1920x1080x24' \
.venv/bin/python -m uvicorn server:app \
--host 127.0.0.1 --port 8877新开一个 SSH 终端测试:
curl http://127.0.0.1:8877/health返回 status: ok 后,在原终端按 Control+C 停止手动测试。
首次实际解题时,CloakBrowser 会下载自己的 Chromium。检查日志中是否出现:
Download complete
Checksum verified
Binary ready
下载缓存保存在运行 systemd 服务的用户主目录中,因此 systemd 模板会显式配置 HOME。
项目提供:
deploy/systemd/chatgpt2api.service.exampledeploy/systemd/captcha-solver.service.example
设置变量:
APP_DIR=/opt/gptgrok-stack/chatgpt2api
RUN_USER="$(id -un)"
RUN_GROUP="$(id -gn)"
RUN_HOME="$HOME"sed \
-e "s|__APP_DIR__|$APP_DIR|g" \
-e "s|__RUN_USER__|$RUN_USER|g" \
-e "s|__RUN_GROUP__|$RUN_GROUP|g" \
-e "s|__RUN_HOME__|$RUN_HOME|g" \
"$APP_DIR/deploy/systemd/chatgpt2api.service.example" \
| sudo tee /etc/systemd/system/chatgpt2api.service >/dev/nullsed \
-e "s|__APP_DIR__|$APP_DIR|g" \
-e "s|__RUN_USER__|$RUN_USER|g" \
-e "s|__RUN_GROUP__|$RUN_GROUP|g" \
-e "s|__RUN_HOME__|$RUN_HOME|g" \
"$APP_DIR/deploy/systemd/captcha-solver.service.example" \
| sudo tee /etc/systemd/system/captcha-solver.service >/dev/nullsudo systemd-analyze verify /etc/systemd/system/chatgpt2api.service
sudo systemd-analyze verify /etc/systemd/system/captcha-solver.service
sudo systemctl daemon-reload
sudo systemctl enable --now chatgpt2api
sudo systemctl enable --now captcha-solver检查:
sudo systemctl status chatgpt2api --no-pager
sudo systemctl status captcha-solver --no-pager
curl -I http://127.0.0.1:8000/
curl http://127.0.0.1:8877/health重启:
sudo systemctl restart chatgpt2api
sudo systemctl restart captcha-solver停止:
sudo systemctl stop chatgpt2api
sudo systemctl stop captcha-solver查看最近日志:
sudo journalctl -u chatgpt2api -n 100 --no-pager
sudo journalctl -u captcha-solver -n 100 --no-pager实时日志:
sudo journalctl -u chatgpt2api -f
sudo journalctl -u captcha-solver -f开机后确认是否自动启动:
systemctl is-enabled chatgpt2api
systemctl is-enabled captcha-solver浏览器打开 GPTGrok2API 后台,进入“注册中心”,选择 Grok(协议)。
| 字段 | 推荐值 |
|---|---|
| Turnstile 服务 | 本地 Captcha Solver |
| API Key | 留空 |
| API Base | http://127.0.0.1:8877 |
| HTTP 超时 | 30 |
| 解题超时 | 180 |
| 轮询间隔 | 3 |
必须保持:
real_page:true。TURNSTILE_HEADLESS=0。- 注册请求和 solver 使用同一代理/IP。
- Solver 日志中
method为real-page。
以下测试只获取 Turnstile token,不会提交注册表单:
curl -sS --max-time 130 \
-X POST http://127.0.0.1:8877/solve \
-H 'Content-Type: application/json' \
-d '{
"type": "turnstile",
"sitekey": "0x4AAAAAAAhr9JGVDZbrZOo0",
"url": "https://accounts.x.ai/sign-up?redirect=grok-com",
"real_page": true,
"timeout_s": 90,
"proxy": "http://127.0.0.1:40080"
}' | jq '{solved, method, elapsed, token_present: (.token | length > 0)}'期望返回:
{
"solved": true,
"method": "real-page",
"token_present": true
}小白每次只启用一个 provider。
确认 sidecar:
docker ps --filter name=chatgpt2api-icloud-privacy-mail
curl -I http://127.0.0.1:8788/login然后:
- 进入后台“iCloud 邮箱”页。
- 完成 Apple 登录和 2FA。
- 手动创建一个隐私邮箱。
- 在注册中心选择
iCloud 邮箱(本系统)。
宿主机模式使用 http://127.0.0.1:8788,不要使用 Docker 内部地址 http://icloud-privacy-mail:8787。
外部 iCloud API 需要单独的 API Base 和 API Key。出现 iCloud Privacy Mail 请求失败(Timeout) 时,先确认当前启用的是外部 API 还是本地 sidecar。
只导入少量数据做单次测试。确认能创建邮箱、能收件、能正确提取验证码后,再批量导入。
首次配置:
| 项目 | 值 |
|---|---|
| 注册数量 | 1 |
| 并发 | 1 |
| 邮箱 provider | 只启用一个 |
| Turnstile | 本地 Captcha Solver |
| 代理 | WARP/Privoxy 或一个已验证代理 |
正常日志顺序:
准备注册环境
获取注册邮箱
验证码已发送,等待邮件
邮箱验证完成,正在进行安全校验
安全校验完成,正在创建账号
注册成功
如果失败,不要连续点击重试。先根据时间查看主程序和 solver journal。
需要让注册成功的 OpenAI/Grok 账号自动上传到作者魔改 NovaApi(Sub2API)或 CPA 时,请先完成第 18 节,再开始批量任务。
systemd 主服务启动后会自动运行 Grok 账号探测,不依赖浏览器页面,也不需要手动启用。默认每 60 分钟执行一轮,每批 50 个账号;首次没有历史记录时立即执行。
调度器只处理已加入 Grok 运行池、保存 SSO 且未禁用的账号。它使用 Fast 配额探针,不发送 Console 对话;明确失效时使用已保存邮箱和密码重新登录,新 SSO 验证成功后再替换旧 SSO。未知状态不会触发登录,失败按指数退避重试,最长 24 小时。
Captcha Solver 使用共享动态并发限制器,不需要为了 Turnstile 并发启动多个 Uvicorn worker。注册中心的“注册解题并发”是注册任务和 Grok OAuth 共享的浏览器并发上限;程序不会暗中增加额外槽位。
推荐步骤:
- 先用注册并发
1。 - 连续成功后改为
2。 - 16 GB 以上服务器可尝试注册线程
3、注册解题并发3;需要同时承载更多注册和 OAuth 解题时再主动提高 solver 并发。
注意:
- 每个活跃槽位都可能启动独立 Chromium。
- 内存紧张时把注册线程和注册解题并发同时降为
2,OAuth 会与注册任务共享这两个槽位。 - 不建议设置
--workers 2+;多进程会拆散并发状态和/status数据,并放大内存占用。 - 注册成功后应立即出现“Grok OAuth 授权已进入即时上传队列”,随后显示 NovaApi/CPA 投递终态。
本系统支持:
- OpenAI 注册成功后自动同步到 NovaApi,并可同时上传到 CPA。
- Grok 每个账号注册成功后立即执行 xAI OAuth,并同时或分别上传到 NovaApi 和 CPA,不等待整批任务结束。
Sub2API 必须优先使用项目作者魔改版 AuuCoder/NovaApi。该仓库默认 Compose 仍可能引用普通上游镜像,因此不能只克隆仓库后直接启动。
从魔改源码构建镜像、添加 Sub2API/CPA 连接、选择远端分组、开启注册自动投递以及排查 401/404 的完整步骤见:
首次必须使用数量 1、并发 1 验证。确认 NovaApi 中出现对应 openai/xai OAuth 账号、CPA 中出现 OpenAI 的 codex-*.json 或 Grok 的 xai-*.json 后,再增加并发。
如果只在 SSH 隧道中使用,可以不配置公网 Nginx。公网部署时,先将域名 A/AAAA 记录解析到服务器。
创建 /etc/nginx/sites-available/gptgrok2api:
server {
listen 80;
listen [::]:80;
server_name api.example.com;
client_max_body_size 100m;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
}启用:
sudo ln -s /etc/nginx/sites-available/gptgrok2api \
/etc/nginx/sites-enabled/gptgrok2api
sudo nginx -t
sudo systemctl reload nginx安装 Certbot:
sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d api.example.com测试续期:
sudo certbot renew --dry-run只反向代理 8000,不要为 8877 配置公网 location。
使用 UFW:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status verbose确认没有为下列端口添加公网 allow 规则:
8000 8877 40000 40080 8191 8788
8000 也应保持绑定 127.0.0.1,公网通过 Nginx 80/443 进入。
查看模型:
curl https://api.example.com/v1/models \
-H 'Authorization: Bearer 你的API密钥'文本对话:
curl https://api.example.com/v1/chat/completions \
-H 'Authorization: Bearer 你的API密钥' \
-H 'Content-Type: application/json' \
-d '{
"model": "auto",
"messages": [
{"role": "user", "content": "你好"}
]
}'只在本机测试时,可以将域名换成 http://127.0.0.1:8000。
更多完整日志片段、判断依据和 NovaApi/CPA 投递错误见 日志错误示例与排查手册。
command -v node
sudo -u "$(systemctl show -p User --value chatgpt2api)" \
/usr/bin/env PATH=/usr/local/bin:/usr/bin:/bin command -v node确认 Node 安装在 /usr/bin/node 或 systemd unit 的 PATH 内。
sudo systemctl status captcha-solver --no-pager
sudo journalctl -u captcha-solver -n 150 --no-pager
command -v xvfb-run如果 Chromium 报缺少系统库,重新执行:
cd /opt/gptgrok-stack/chatgpt2api/captcha-solver
sudo .venv/bin/python -m playwright install-deps chromium检查:
- Solver 结果是否为
method: real-page。 TURNSTILE_HEADLESS=0是否生效。- systemd 是否通过
xvfb-run启动。 - 注册和 solver 是否使用同一代理/IP。
- token 是否在获取后立即提交。
普通 Ubuntu DNS 通常不需要关闭 SSRF 防护。只有明确使用 fake-IP 代理,公网域名被解析到 198.18.0.0/15 时,才在 solver unit 中加入:
Environment=SOLVER_ALLOW_PRIVATE=1修改后:
sudo systemctl daemon-reload
sudo systemctl restart captcha-solver只有 solver 绑定 127.0.0.1 时才能这样配置。
curl -I http://127.0.0.1:8788/login
docker logs --tail 150 chatgpt2api-icloud-privacy-mail宿主机主程序应访问 http://127.0.0.1:8788,不是 http://icloud-privacy-mail:8787。另外确认注册中心选择的是本地 iCloud 还是外部 iCloud API。
docker compose -f /opt/gptgrok-stack/chatgpt2api/docker-compose.warp.yml \
--profile local-icloud ps
docker logs --tail 150 chatgpt2api-warp-proxy
docker logs --tail 150 chatgpt2api-privoxy
docker logs --tail 150 chatgpt2api-flaresolverrsudo ss -lntp | grep -E ':(8000|8877|40000|40080|8191|8788)\b'确认是否同时启动了 Docker 版 app 和 systemd 版 app。不要在不知道进程用途时直接 kill -9。
cd /opt/gptgrok-stack/chatgpt2api
mkdir -p backups
tar -czf "backups/chatgpt2api-$(date +%Y%m%d-%H%M%S).tgz" \
config.json .env data
git diff > "backups/local-code-$(date +%Y%m%d-%H%M%S).patch"将备份复制到另一块磁盘或加密存储。备份可能含账号凭据和密钥,不要上传到公开 Git 仓库。
升级前先备份和查看本地改动:
cd /opt/gptgrok-stack/chatgpt2api
git status不要在存在未保存的本地定制代码时盲目覆盖。
更新主程序后:
uv sync --python 3.13
cd web-vue
npm ci
npm run build:server
sudo systemctl restart chatgpt2api更新 solver 后:
cd /opt/gptgrok-stack/chatgpt2api/captcha-solver
uv pip install --python .venv/bin/python -r requirements.txt
sudo systemctl restart captcha-solverSolver 与主项目使用同一仓库版本,不再单独更新 xai-grok-mass。
停止 systemd 服务:
sudo systemctl disable --now chatgpt2api
sudo systemctl disable --now captcha-solver停止 Docker 辅助服务:
cd /opt/gptgrok-stack/chatgpt2api
docker compose -f docker-compose.warp.yml --profile local-icloud down删除 systemd unit:
sudo rm /etc/systemd/system/chatgpt2api.service
sudo rm /etc/systemd/system/captcha-solver.service
sudo systemctl daemon-reload删除源码和 data/ 前必须先备份。
- GPTGrok2API 只监听
127.0.0.1:8000。 - Captcha Solver 只监听
127.0.0.1:8877。 - 公网只开放 SSH、HTTP 和 HTTPS。
- 管理密钥至少 24 字节且没有公开。
-
config.json和.env权限为600。 - Nginx 使用 HTTPS。
- 没有把
8877、40080、8191或8788公开到互联网。 -
SOLVER_ALLOW_PRIVATE=1只在明确需要且 solver 绑定回环时使用。 - 升级和批量操作前已备份。
-
docker run --rm hello-world成功。 -
node --version为 22.x 或兼容版本。 -
.venv/bin/python --version为 3.13.x 或更高。 -
systemctl status chatgpt2api为 active。 -
systemctl status captcha-solver为 active。 -
curl -I http://127.0.0.1:8000/返回 200。 -
curl http://127.0.0.1:8877/health返回status: ok。 - Privoxy 出口测试成功。
- FlareSolverr 和 iCloud sidecar 容器为 healthy。
- Grok 打码 provider 为
本地 Captcha Solver。 - Solver smoke test 返回
method: real-page。 - 首个注册任务使用数量
1、并发1。 - 单任务成功后再增加并发。
- 如启用 NovaApi 自动投递,实际镜像为作者魔改版且目标分组出现测试账号。
- 如启用 CPA 自动投递,CPA 中出现 OpenAI 的
codex-*.json或 Grok 的xai-*.json。
# 主程序
sudo systemctl status chatgpt2api --no-pager
sudo systemctl restart chatgpt2api
sudo journalctl -u chatgpt2api -f
# Captcha Solver
sudo systemctl status captcha-solver --no-pager
sudo systemctl restart captcha-solver
sudo journalctl -u captcha-solver -f
# HTTP 健康
curl -I http://127.0.0.1:8000/
curl http://127.0.0.1:8877/health
# Docker 辅助服务
cd /opt/gptgrok-stack/chatgpt2api
docker compose -f docker-compose.warp.yml --profile local-icloud ps
# 代理
curl -x http://127.0.0.1:40080 https://www.cloudflare.com/cdn-cgi/trace
# iCloud sidecar
curl -I http://127.0.0.1:8788/login
# 端口
sudo ss -lntp | grep -E ':(8000|8877|40000|40080|8191|8788)\b'故障排查时记录:错误时间、任务编号、完整错误文本、journalctl -u chatgpt2api -n 150、journalctl -u captcha-solver -n 150、当前启用的邮箱 provider、代理和 solver 配置。