v0.0.7 — 上游同步、dnsproxy v0.81.10 集成与发行语义延续
本版本是 distribution / integration 发行:在 v0.0.6 基础上同步 AdGuard Home 上游(约 v0.107.76 能力区间),并将内置 DNS 运行时对齐至 github.com/fcchbjm/dnsproxy v0.81.10。标签 v0.0.7 指向 bed991cb。
架构边界: 本仓库负责 打包、发版与更新语义;传输与 DNS 运行时行为由 dnsproxy fork 定义。DoH/DoQ/TCP/TLS、PPv2、并发与缓存等细节以 dnsproxy v0.81.10 发行说明 为准。
亮点
- 上游集成:GLiNET 鉴权路径遍历修复、关闭 DNSSEC 时的 DNS 缓存行为修正、查询日志
reason筛选及相关 API 文档;YAML 时长支持d(天)。 - 运行时对齐:依赖
github.com/fcchbjm/dnsproxy@v0.81.10(自 v0.81.9 升级);Go 1.26.3。 - 发行语义(自 v0.0.6 延续):模块路径
github.com/fcchbjm/AdGuardHome;v*标签触发本仓库 Release / GHCR;Release 二进制默认检查本仓库version.json;Docker 不嵌入 fork 更新索引。 - 质量:Codecov v5;macOS CI
TestConfigFilePath路径规范化修复(bed991cb)。
行为变更(经本发行集成)
以下变更通过 dnsproxy v0.81.10 或上游 AGH 进入本发行版;运维影响详见 dnsproxy 发行说明与本节「运维说明」。
| 主题 | 说明 |
|---|---|
| DNS 缓存 / DO 位 | 带/不带 DNSSEC DO 的请求不再共用同一缓存项(上游 #8384) |
| DoQ 空闲超时 | QUIC 空闲超时 5m → 30s(上游默认,经 dnsproxy 集成) |
| 查询日志 API | GET /control/querylog 新增 reason;response_status 已弃用 |
| 配置时长 | YAML 支持 d 单位;回退至更旧上游版本前须改回小时 |
| 安全 | GLiNET 模式鉴权路径遍历修复(AG-54304) |
Fork 发行语义(distribution layer)
本 fork 的定位是 集成与发版,以下为 v0.0.7 的定义行为。
模块与依赖
- Go 模块:
github.com/fcchbjm/AdGuardHome - DNS 运行时:
github.com/fcchbjm/dnsproxy@v0.81.10(须与上者配套使用)
自 v0.0.6 延续、本版未改
- PPv2:DNS-over-TCP / DoT 入站 PPv2 及
trusted_proxies严格语义(见 README_zh.md) - 更新索引:Release 二进制 → 本仓库
releases/latest/download/version.json - 容器:
ghcr.io/fcchbjm/adguardhome;升级以docker pull为准 - 传输 / 并发 / 缓存:与 dnsproxy v0.81.10 一致(DoH3 串行化、DoQ
streamOpenMu、PPv2 等见 dnsproxy 文档)
相对 v0.0.6 的本版增量
- 上游同步至约 v0.107.76
- dnsproxy v0.81.9 → v0.81.10
- Go 1.26.2 → 1.26.3;Codecov v5
运维说明
| 主题 | 操作者需知 |
|---|---|
| DoQ 长连接 | 空闲超时 30s;防火墙 / LB 超时建议对齐 |
| DNS 缓存 | 排查命中时注意 DO 位是否一致 |
| DoH3 吞吐 | 单 DoH3 upstream 实例 HTTP/3 路径串行;高并发用多实例或其它协议(见 dnsproxy v0.81.10) |
| PPv2 | 与 v0.0.6 相同;仅 trusted_proxies 内来源可改写客户端地址 |
| 更新源 | 使用本仓库 Release / GHCR,勿与 AdguardTeam 发行物混用更新流 |
升级说明
- 自 v0.0.6:多数部署可直接替换二进制或
docker pull;PPv2 与 YAML 配置无需变更。 - 配置回退:若已使用
d单位,回退到不支持该单位的旧版前须改回小时。 - 二次开发:
go.mod须同时声明fcchbjm/AdGuardHome与fcchbjm/dnsproxy@v0.81.10;发布分支勿提交临时replace。 - 运行时细节:DoH3 Mutex、DoQ
streamOpenMu、缓存 DO 分离等以 dnsproxy v0.81.10(9b12982) 为权威语义。
维护(CI 与测试)
- Codecov:v5,
slug: fcchbjm/AdGuardHome,files: ./cover.out - macOS:
TestConfigFilePath对workDir/otherDir做EvalSymlinks规范化(evalErr避免 shadow 告警)
自 v0.0.6 以来(参考)
| 范围 | 说明 |
|---|---|
| 上游集成 | 路径遍历、缓存 DO、querylog reason、配置 d 单位、Go 1.26.3 |
| 运行时 | dnsproxy v0.81.10 |
| 发行 | 模块路径统一、Codecov v5、macOS CI 测试修复 |
| 未变 | PPv2、version.json / GHCR 发版语义 |
完整变更: v0.0.6...v0.0.7
DNS 运行时: fcchbjm/dnsproxy@v0.81.9...v0.81.10
获取
https://github.com/fcchbjm/AdGuardHome/releases/tag/v0.0.7
docker pull ghcr.io/fcchbjm/adguardhome:v0.0.7
v0.0.7 — Upstream sync, dnsproxy v0.81.10 integration, release semantics continued
Tag v0.0.7 → commit bed991cb. Distribution/integration release: upstream AdGuard Home (~v0.107.76) plus github.com/fcchbjm/dnsproxy v0.81.10.
Boundary: This repo owns packaging, release, and update semantics. Transport and DNS runtime behavior is defined by the dnsproxy fork — see dnsproxy v0.81.10 release notes.
Highlights (EN)
- Upstream: GLiNET path-traversal fix, DNS cache when DNSSEC disabled, query-log
reason, YAMLddurations, Go 1.26.3. - Runtime:
fcchbjm/dnsproxy@v0.81.10(from v0.81.9). - Distribution (unchanged intent since v0.0.6):
fcchbjm/AdGuardHomemodule,v*→ this repo’s Releases/GHCR,version.jsonupdate index, Docker without embedded index. - Quality: Codecov v5; macOS
TestConfigFilePathfix (bed991cb).
Behavior changes (EN)
| Topic | Summary |
|---|---|
| DNS cache / DO | Separate cache entries with/without DO (#8384) |
| DoQ idle | 5m → 30s (via dnsproxy) |
| Query log API | reason added; response_status deprecated |
| Config | d duration unit; convert to hours before downgrade |
| Security | GLiNET auth path traversal (AG-54304) |
Fork distribution semantics (EN)
- Module:
github.com/fcchbjm/AdGuardHome - Runtime pin:
github.com/fcchbjm/dnsproxy@v0.81.10 - Unchanged since v0.0.6: PPv2, update index, GHCR
ghcr.io/fcchbjm/adguardhome - Transport/concurrency/cache: per dnsproxy v0.81.10 (
9b12982authoritative for DoH3 semantics)
Operational notes (EN)
- DoQ idle 30s — align middlebox timeouts.
- Cache debugging: account for DO bit.
- DoH3: same-instance serialization; scale with multiple upstreams or other protocols (dnsproxy notes).
- PPv2: same as v0.0.6;
trusted_proxiesonly. - Use this fork’s release/update artifacts, not AdguardTeam’s.
Upgrade notes (EN)
- From v0.0.6: drop-in for most deployments; no PPv2/config migration.
- Downgrade: convert
dback to hours if needed. - Custom builds: pin both fcchbjm modules; no committed
replaceon release branches. - Runtime authority: dnsproxy v0.81.10 /
9b12982.
Maintenance (EN)
- Codecov v5,
slug: fcchbjm/AdGuardHome,./cover.out - macOS test:
EvalSymlinkscanonicalization withevalErr(no shadow)
Full changelog: v0.0.6...v0.0.7
Runtime: fcchbjm/dnsproxy@v0.81.9...v0.81.10
https://github.com/fcchbjm/AdGuardHome/releases/tag/v0.0.7
docker pull ghcr.io/fcchbjm/adguardhome:v0.0.7
Full Changelog: v0.0.6...v0.0.7