适用场景: iStoreOS / OpenWrt 使用 dnsmasq 作为 DNS 服务时,某个公司域名需要解析到 10.x.x.x172.16.x.x192.168.x.x 等内网 IP,但 DNS 查询结果被拦截。

为方便文档留存,以下使用 example.com 作为脱敏示例,实际操作时替换成自己的域名。

一、问题现象

使用:

nslookup stg.office.example.com

无法获取 IP,但该域名实际应解析到内网地址,如:

10.10.17.177

二、原因

iStoreOS 的 dnsmasq 开启了「DNS 重绑定保护」,会拦截公网 DNS 返回的 10.x.x.x172.16.x.x192.168.x.x 等内网 IP。

三、解决方法

推荐不要关闭重绑定保护,而是将公司域名加入白名单。

执行:

uci set dhcp.@dnsmasq[0].rebind_protection='1'
uci add_list dhcp.@dnsmasq[0].rebind_domain='example.com'
uci commit dhcp
/etc/init.d/dnsmasq restart

example.com 替换为实际公司域名。

四、验证

nslookup stg.office.example.com

能够返回:

Address: 10.10.17.177

即表示成功。

五、图形界面

网络 → DHCP/DNS → 常规设置

  • 重绑定保护:开启

  • 重绑定域名/域名白名单: 添加 example.com

  • 保存并应用

总结:域名解析到内网 IP 失败 → 检查「DNS 重绑定保护」→ 给公司域名加白名单。