# 🐛 今日问题记录 — 2026年4月28日

---

## 1️⃣ Docker代理配置不生效

**现象**：`docker pull soulter/astrbot-t2i-service:latest` 返回 `EOF` 错误，直连Docker Hub失败。

**尝试的方案**：
| 方案 | 结果 |
|:---|:---:|
| systemd proxy.conf | ❌ 配置写入但systemctl被限制，无法重启Docker |
| daemon.json proxies | ❌ 镜像源+代理都配了，仍然EOF |
| daocloud镜像加速 | ❌ T2I镜像不在daocloud白名单 |
| 直接改镜像源为国内源 | ❌ 部分源失效，部分没有该镜像 |

**当前状态**：未解决。改用裸机直接部署T2I绕过了这个问题。

**可能的根因**：
- Docker daemon没有正确读取proxies配置
- 代理mihomo对Docker Hub的CONNECT请求有限制
- 容器内网络环境与宿主机代理不通

---

## 2️⃣ mihomo代理导致SSH通道中断

**现象**：SSH插件频繁报 `error: Channel not open for sending`，需要重启SSH插件才能恢复。

**原因**：mihomo的透明代理（tun模式）劫持了SSH连接，导致SSH会话被中断。

**解决**：在zashboard中暂时关闭代理，重启SSH插件后恢复。

**教训**：操作mihomo配置时要注意SSH通道的稳定性，避免把自己锁在外面。

---

## 3️⃣ Playwright Chromium安装失败

**现象**：`python3 -m playwright install --with-deps chromium` 下载167MB文件超时。

**尝试的方案**：
| 方案 | 结果 |
|:---|:---:|
| 直连Google CDN | ❌ 超时（30秒timeout） |
| PLAYWRIGHT_DOWNLOAD_HOST=国内镜像 | ❌ 404（镜像没有对应版本） |
| apt install chromium-browser | ❌ snap源也超时 |
| 指定系统已有Chromium路径 | ❌ 系统根本没装Chromium |

**解决**：直接用curl下载，耗时9分39秒拉完218MB。

**教训**：大文件下载在有代理的服务器上可能要等很久，直接裸下载反而更快。

---

## 4️⃣ systemd服务文件格式问题

**现象**：`systemctl enable --now t2i` 报 `bad unit file setting`，所有配置行都提示 `Assignment outside of section`。

**原因**：用cat写入时漏写了 `[Unit]` `[Service]` `[Install]` 三个section头部。

**解决**：重写service文件，加上section头部。

**教训**：创建systemd服务文件时要检查section头部是否存在，用 `systemctl status` 查看具体错误信息。

---

## 5️⃣ Chromium路径配置无效

**现象**：修改 `src/render.py` 中 `chromium.launch(executable_path="/usr/bin/chromium-browser")` 后T2I仍然报错找不到Playwright内置Chromium。

**原因**：`executable_path` 参数是Playwright v1.58的headless shell专用参数，设置后仍然需要Playwright内置Chromium的依赖库。系统安装的Chromium不是Playwright需要的headless shell版本。

**解决**：下载Playwright专用的Chromium headless shell到cache目录，恢复默认launch调用。

---

## 6️⃣ GitHub推送代理拦截

**现象**：`git push github master` 报 `Connection closed by 198.18.0.25 port 22`。

**原因**：mihomo虚拟网络接口劫持了SSH到GitHub的22端口连接。

**解决**：配置 `~/.ssh/config` 让github.com走443端口（`ssh.github.com`）。

---

## 7️⃣ 容器内无法使用宿主机代理

**现象**：在AstrBot容器内通过 `host.docker.internal:7890` 访问mihomo代理时，CONNECT请求被abort。

**原因**：mihomo配置 `allow-lan: false`，禁止局域网连接。

**当前状态**：未解决。后续需要在mihomo配置中开启 `allow-lan: true` 并设置用户认证。
