
sq4ind/adguardhome-lancache-dns一个生产就绪的同步工具,用于更新AdGuard Home中的DNS重写规则,将特定服务指向您的LanCache服务器。专为在局域网中运行本地DNS服务器(AdGuard Home)且希望利用LanCache优势而无需运行额外DNS服务的用户设计。
bashdocker run --name adguard-lancache-dns -d \ -e ADGUARD_USERNAME='admin' \ -e ADGUARD_PASSWORD='password' \ -e LANCACHE_SERVER='192.168.1.100' \ -e ADGUARD_API='[***] \ -e CRON_SCHEDULE='0 0 * * *' \ -e ALL_SERVICES='true' \ adguardhome-lancache-dns
| 变量 | 是否必需 | 默认值 | 描述 | 示例 |
|---|---|---|---|---|
ADGUARD_USERNAME | 是 | - | AdGuard Home用户名 | admin |
ADGUARD_PASSWORD | 是 | - | AdGuard Home密码 | password123 |
LANCACHE_SERVER | 是 | - | LanCache服务器IP或主机名 | 192.168.1.100 |
ADGUARD_API | 是 | - | AdGuard Home API URL(包含协议和端口) | [***] |
CRON_SCHEDULE | 否 | 0 0 * * * | 定期更新的Cron调度(默认每天午夜运行) | 0 */6 * * * |
ALL_SERVICES | 否 | false | 启用所有可用服务(true/false) | true |
SERVICE_NAMES | 否 | - | 要启用的服务逗号分隔列表 | wsus,steam,epicgames,xboxlive |
LOG_LEVEL | 否 | INFO | 日志级别(DEBUG、INFO、WARNING、ERROR) | DEBUG |
MAX_WORKERS | 否 | 3 | 并发下载工作进程数 | 5 |
BATCH_SIZE | 否 | 100 | 进度日志之间的重写规则数量 | 50 |
CACHE_FILE | 否 | - | DNS重写规则缓存文件路径(启用缓存) | /var/cache/dns_rewrites.json |
注意:必须指定ALL_SERVICES=true或SERVICE_NAMES,不能两者都不指定。
该工具支持cache-domains仓库中的所有服务,包括:
arenanet, blizzard, bsg, cityofheroes, cod, daybreak, epicgames, frontier, neverwinter, nexusmods, nintendo, origin, pathofexile, renegadex, riot, rockstar, sony, square, steam, teso, test, uplay, warframe, wargaming, wsus, xboxlive
yamlversion: '3.8' services: adguard-lancache-dns: image: adguardhome-lancache-dns:latest container_name: adguard-lancache-dns restart: unless-stopped environment: - ADGUARD_USERNAME=admin - ADGUARD_PASSWORD=your_password - LANCACHE_SERVER=192.168.1.100 - ADGUARD_API=[***] - CRON_SCHEDULE=0 0 * * * - ALL_SERVICES=true - LOG_LEVEL=INFO - MAX_WORKERS=3 - BATCH_SIZE=100 - CACHE_FILE=/var/cache/dns_rewrites.json volumes: - dns_cache:/var/cache volumes: dns_cache:
启用缓存以加快故障恢复速度:
bash-e CACHE_FILE=/var/cache/dns_rewrites.json
启用后,DNS重写规则将在下载后保存。适用于:
对于DNS解析有问题的较慢网络:
bashdocker run ... \ -e MAX_WORKERS=2 \ -e LOG_LEVEL=DEBUG \ adguardhome-lancache-dns
对于网络速度快且连接稳定的环境:
bashdocker run ... \ -e MAX_WORKERS=10 \ -e BATCH_SIZE=500 \ adguardhome-lancache-dns
在Docker Compose中添加健康检查:
yamlhealthcheck: test: [ "CMD", "python", "/app/UpdateAdGuardDNSRewrites.py" ] interval: 6h timeout: 30s retries: 2 start_period: 30s
yamlapiVersion: batch/v1 kind: CronJob metadata: name: adguard-lancache-dns spec: schedule: "0 0 * * *" jobTemplate: spec: template: spec: containers: - name: sync image: adguardhome-lancache-dns:latest env: - name: ADGUARD_USERNAME valueFrom: secretKeyRef: name: adguard-credentials key: username - name: ADGUARD_PASSWORD valueFrom: secretKeyRef: name: adguard-credentials key: password - name: LANCACHE_SERVER value: "192.168.1.100" - name: ADGUARD_API value: "[***]" - name: ALL_SERVICES value: "true" restartPolicy: OnFailure
0:执行成功1:配置错误或运行时故障如果看到NameResolutionError消息:
验证容器DNS配置:
bashdocker run --dns=8.8.8.8 ... adguardhome-lancache-dns
检查AdGuard Home DNS设置:
bashdocker exec adguard-lancache-dns nslookup raw.githubusercontent.com
通过查看日志增加重试尝试:
bashdocker logs -f adguard-lancache-dns
启用调试日志:
bashdocker run ... -e LOG_LEVEL=DEBUG adguardhome-lancache-dns
调整并发设置:
bashdocker run ... -e MAX_WORKERS=5 adguardhome-lancache-dns
我们欢迎贡献!请:
git checkout -b feature/improvementgit commit -am 'Add improvement'git push origin feature/improvement本项目基于MIT许可。您可以自由Fork、修改和以任何方式使用。
如有问题、疑问或建议,请在GitHub上提交issue。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务