我尝试在家庭服务器上设置 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表示从互联网到终端的流量。
所以感觉我无法按照最初计划的那样去做。