DNS 服务器 bind9 无法从外部网络访问,但在 LAN 中似乎可以正常工作

DNS 服务器 bind9 无法从外部网络访问,但在 LAN 中似乎可以正常工作

我尝试在家庭服务器上设置 DNS,以便为家庭 LAN 之外的其他计算机提供一些可读地址。我认为我能够安装和设置 bind9 服务器,至少我获得了正确的 IP dig,但只有当我尝试在家庭 LAN 网络中执行此操作时,当我尝试从外部访问我的 DNS 时,DNS 才会响应。我想咨询有关如何使 DNS 在我的网络之外也可见的建议。

以下是我想要做的事情以及我已经做的事情的详细信息。

我为我的家庭服务器使用动态 DNS,它提供三级域名,假设它是 myserver.exampledyndns.com,本地网络中的服务器地址是 XX.XX.XX.XX。我希望能够为家庭网络之外的某些计算机评估名称,例如 pc1.myserver.exampledyndns.com、pc2.myserver.exampledyndns.com 等。我安装了 bind9,以下是它的配置文件

命名的.conf.选项

options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

         forwarders {
                8.8.8.8;
                8.8.4.4;
         };

        //=====================================================================>
        // If BIND logs error messages about the root key being expired,
// you will need to update your keys.  See https://www.isc.org/bind-keys
        //=====================================================================>
    dnssec-validation no;

//    listen-on-v6 port 53 {any;};

    listen-on port 53 {any;};

    auth-nxdomain yes;            # conform to RFC1035
    allow-query { any; };         # allow anyone to issue queries
    allow-recursion { any; };
    allow-query-cache { any; };
    recursion no;                 # disallow recursive queries
};

命名的.conf.本地

zone "myserver.exampledyndns.com" in{
   type master;
   file "/var/lib/bind/db.myserver.exampledyndns.com ";
};

*/var/lib/bind/db.myserver.exampledyndns.com*

GNU nano 6.2              /var/lib/bind/db.myserver.exampledyndns.com             
;
; BIND data file for local loopback interface
;
$TTL    604800 ;
@       IN      SOA     myserver.exampledyndns.com. root.localhost. (
                     2403310917         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.myserver.exampledyndns.com .
ns      IN      A       YY.YY.YY.YY
pc1  IN      A       YY.YY.YY.YY

解析配置文件

nameserver 127.0.0.1
nameserver 127.0.0.53
search wlan  myserver.exampledyndns.com
options edns0 trust-ad
search  myserver.exampledyndns.com
domain  myserver.exampledyndns.com

ufw 中的端口 53 已为 tcp 和 udp 开放。服务器位于路由器后面,在路由器上,我将端口 53 从 WAN 转发到服务器的端口 53(已禁用 NAT 环回)

当我在 LAN 内部时,我 dig @XX.XX.XX.XX pc1.myserver.exampledyndns.com +short 会得到 YY.YY.YY.YY 地址,正如我希望的那样。但是,如果我这样做, dig @myserver.exampledyndns.com pc1.myserver.exampledyndns.com +short 我什么也得不到。如果我允许路由器上的 NAT 环回,那么 LAN 内部 dig @myserver.exampledyndns.com pc1.myserver.exampledyndns.com +short 也会返回 YY.YY.YY.YY 地址。在我的 LAN 外部,我无法得到任何东西。

我的问题是:我做错了什么,导致我的 DNS 在 LAN 之外无法工作?

提前感谢您的任何帮助或建议。

答案1

我觉得我的问题出在提供商的防火墙设置上。根据他们网页上的描述

对于固定宽带连接,从公共网络到连接的 IP 流量受到限制。这些限制对应于例如通信监管局的规定。这些限制不会消除对信息安全服务(如防火墙和防病毒软件)的需求。流量限制如下:阻止端口(IPv4 和 IPv6)

 25 UL (TCP)
 53 DL (UDP)
 7547 UL/DL (TCP)
 1900 DL (UDP)

上面的UL表示从终端到互联网的流量,DL表示从互联网到终端的流量。

所以感觉我无法按照最初计划的那样去做。

相关内容