Hermes
f10ac5591e
fix: detect zone name collisions with named.conf main config
...
创建 zone 时只检查 BIND_CONF_LOCAL 里的重复声明,遗漏了用户在
named.conf 主配置里手动声明的同名 zone —— 后果是 named reload
时直接报 'zone already exists' 错误,named 起不来。
新增 parse_all_managed_zones(),通过 named-checkconf -p 拿到 named
当前加载的所有 zone,区分 source=local(Web UI 管理的)和 source=main
(用户在 named.conf 主配置里写的)。
zone_create() 在写入新声明前检查这两个来源:
- 同名在 BIND_CONF_LOCAL:拒绝并提示
- 同名在 named.conf 主配置:拒绝并提示用户先去主配置里注释掉
回归测试在 dev 环境通过:识别 4 个 builtin zone (source=main) +
3 个 web UI zone (source=local)。
2026-07-22 17:56:41 +08:00
Hermes
ab8d472b7b
fix: prefer RHEL paths in BIND path detection to avoid ambiguity
...
之前的探测顺序优先 Debian 路径 (/etc/bind/named.conf.local),
在某些混合/历史场景下会选错:当两个 named.conf.local 都存在时
(RHEL 默认 /etc/named.conf.local + 之前手动 touch 的 /etc/bind/named.conf.local),
named 实际只读其中一个,但代码会写到另一个,导致 zone 写出来了
但 named 不加载。
调整候选顺序,把 RHEL 路径(/etc/named.conf.local、/etc/named.conf)
放在 Debian 路径前面:
BIND_CONF_LOCAL: /etc/named.conf.local -> /etc/bind/named.conf.local
BIND_CONF_OPTIONS: /etc/named.conf -> /etc/bind/named.conf.options
Dev 环境(Debian)行为不变(/etc/bind/named.conf.options 和
/etc/bind/named.conf.local 实际存在,依然命中 Debian 路径)。
README '配置 BIND' 一节明确两套发行版的差异,并强调 named 主配置
必须 include 对应的 named.conf.local 文件,否则 zone 文件存在但
named 不会加载。
2026-07-22 17:47:52 +08:00
Hermes
3d417421ff
feat: auto-detect BIND paths via os.path.exists fallback chain
...
环境变量 > 自动探测 > 内置默认值。自动探测按发行版常见路径顺序
回退(Debian/Ubuntu / RHEL/CentOS/Rocky / AlmaLinux / FreeBSD),
大多数情况下无需任何配置。
新增探测函数 _detect_bind_path() 与候选路径字典 _BIND_PATH_CANDIDATES,
覆盖以下发行版默认布局:
BIND_CONF_DIR: /etc/bind -> /etc -> /etc/named
BIND_ZONES_DIR: /etc/bind/zones -> /var/named -> /var/named/data
BIND_CONF_LOCAL: /etc/bind/named.conf.local -> /etc/named.conf.local
BIND_CONF_OPTIONS: /etc/bind/named.conf.options -> /etc/named.conf
BIND_RNDC_KEY: /etc/bind/rndc.key -> /etc/rndc.key -> /var/named/key
环境变量仍然作为最高优先级入口,用于非标准路径或多实例场景。
README 第 5 节改名为'路径优先级',列出三层优先级与探测顺序。
2026-07-22 17:31:52 +08:00
Hermes
1b15592f4d
feat: make BIND paths configurable via env vars (RHEL/CentOS support)
...
默认路径仍为 Debian/Ubuntu 的 /etc/bind/*。通过环境变量可在 RHEL/CentOS
(默认 /var/named + /etc/named.conf)上运行:
BIND_CONF_DIR, BIND_ZONES_DIR, BIND_CONF_LOCAL,
BIND_CONF_OPTIONS, BIND_RNDC_KEY, BIND_SERVICE
README 增加 RHEL/CentOS 安装步骤、systemd Environment 示例,
并提示覆盖 BIND_CONF_LOCAL 后必须在 named.conf 里 include。
Motivation: 同一项目在 CentOS 7 上 zone 文件写不到 /var/named,
Web 端新增域名后 rndc reload 找不到 zone。
2026-07-22 17:29:26 +08:00
cnbugs
3ef5926f75
add python3.6
2026-07-14 15:17:46 +08:00
AI Agent
0a18b94d84
feat: BIND DNS Web Manager - Web interface for managing BIND9 DNS server
...
- Flask + SQLite web app with user authentication
- Zone management: create/delete zones, edit raw zone files
- Record management: add/delete A/AAAA/CNAME/MX/TXT/NS/PTR/SRV/CAA records
- Service control: start/stop/restart/reload BIND via systemctl/rndc
- Configuration editor: edit named.conf.options/local with syntax validation
- DNS query testing: online dig tool
- Audit log: all operations logged with user/timestamp
- BIND9 backend, listening on port 53
2026-07-09 17:24:44 +08:00