You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

公网无法访问本地BIND9 DNS服务器解析的域名问题排查求助

公网无法访问本地BIND9 DNS服务器解析的域名问题排查求助

首先,我一眼就发现了导致公网无法解析你的域名的核心问题——你的NS记录指向了内网IP,这是公网DNS服务器根本无法访问的!下面我一步步给你拆解问题和解决方案:

1. 核心错误:NS记录使用内网IP

在你的db.mm-it.ro配置里,ns1的A记录是10.14.14.10,这是你的局域网私有IP,公网的递归DNS服务器根本无法路由到这个地址,自然会返回“没有有效NS响应”的错误。

修复方法:

修改db.mm-it.ro里的NS记录IP为你的公网IP:

ns1     IN      A       86.125.220.243

同时把区域的Serial号从6改成7(必须递增,否则BIND9不会同步更新),然后重启BIND9服务:

systemctl restart bind9

2. 检查域名注册商的NS设置

你提到在注册商那里设置了域名指向公网IP,但这里需要注意:

  • 注册商的域名管理面板里,必须把域名的NS服务器设置为ns1.mm-it.ro(如果需要冗余可以加ns2,但先搞定一个)
  • 确保注册商那边的NS记录已经正确关联到你的公网IP86.125.220.243,可以通过WHOIS查询工具确认这一点。

3. BIND9配置调整

你的named.conf.options里有几个需要调整的地方:

(1)允许公网查询

当前你的allow-query只包含了86.125.220.243; localhost; localnets; 10.14.14.0/24;,但公网用户的DNS查询经过PFsense转发后,源IP是用户的公网IP(不是你的WANIP),所以需要修改为允许所有公网查询:

allow-query { any; };
allow-query-cache { localnets; localhost; }; // 缓存只对内网开放即可
allow-recursion { localnets; localhost; }; // 递归查询也只对内网开放,避免被滥用

(2)确认监听接口

确保BIND9监听了10.14.14.10的53端口,当前配置已经包含,但可以用以下命令验证:

ss -tulpn | grep named

输出里应该能看到10.14.14.10:53的监听记录。

4. PFsense端口转发规则检查

DNS协议同时使用UDP和TCP(UDP用于常规查询,TCP用于大响应包或区域传输),你必须同时转发这两个协议的53端口:

  • 在PFsense的NAT规则里,创建两条规则(或者一条包含两种协议):
    • 源:任何,目标:WAN接口的53端口,协议:UDP,转发到10.14.14.10:53
    • 源:任何,目标:WAN接口的53端口,协议:TCP,转发到10.14.14.10:53
  • 同时确保PFsense的WAN防火墙规则允许这两个协议的53端口流量进入。

5. 测试步骤(按顺序来)

  1. 先在本地LAN测试:用dig @10.14.14.10 mm-it.ro NS,确认返回的ns1记录是你的公网IP
  2. 用公网环境的设备(比如手机开流量)测试:dig @8.8.8.8 mm-it.ro,看看是否能返回正确的A记录
  3. 直接查询你的DNS服务器:dig @86.125.220.243 mm-it.ro,如果这个返回正确结果,说明PFsense转发和BIND9配置没问题;如果返回超时,说明转发规则或防火墙有问题。

额外说明:反向解析的问题

你的db.10是内网的反向解析区域,公网的反向解析需要联系你的ISP来配置(因为公网IP段属于ISP),这个暂时不影响正向域名解析,可以先不用管,等正向解析正常后再处理。

备注:内容来源于stack exchange,提问作者Robert Murariu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:18:00