目前使用的服务器地址:10.6.6.90,掩码:255.255.255.0,网关:10.6.6.254。
使用的DNS软件:以bind9为例。(还有PowerDNS、CoreDNS等)。
网络环境优化:默认转发至 Cloudflare (1.1.1.1) 与 Google (8.8.8.8)。
搭建步骤:
第一步:安装Bind9软件
sudo apt update
sudo apt install bind9 bind9utils -y
第二步:配置全局转发与安全策略
1、打开named.conf.options(sudo nano /etc/bind/named.conf.options)。
2、清空文件里的默认内容,把下面这段完整贴进去:
options {

    directory "/var/cache/bind";
    // 1. 允许所有人(局域网内的其他设备)向这台服务器发起 DNS 查询
    allow-query { any; };
    // 2. 海外转发器:优先使用 Cloudflare 和 Google 的高速 DNS
    forwarders {
            1.1.1.1;
            8.8.8.8;
            8.8.4.4;
    };
    // 3. 强制只进行转发,不向全球根服务器迭代查询(解决海外园区网由于根服务器被墙导致的报错)
    forward only;
    // 4. 关闭内网/测试环境下的 DNSSEC 验证,防止海外部分网络环境下解析报错
    dnssec-validation no;
    // 5. 监听 IPv6 地址
    listen-on-v6 { any; };

};
3、保存退出:按 Ctrl + O -> 回车(Enter) -> 按 Ctrl + X
第三步:注册你的本地私有域名区域我们要告诉DNS系统,test.local这个域名由我们自己这台服务器说了算。
1、打开区域配置文件:named.conf.local(sudo nano /etc/bind/named.conf.local)。
2、直接把光标移到最底下空行处,追加以下内容:
zone "test.local" {
type master; file "/etc/bind/db.test.local";
};
3、保存退出:按 Ctrl + O -> 回车 -> 按 Ctrl + X。
第四步:制作域名解析A记录表,建立真正的映射,把域名指向对应的IP。
1、在etc/bind/里面新建db.test.local并打开。
2、删除里面所有内容并复制已下内容;
; BIND data file for test.local
;
$TTL 604800
@ IN SOA ns1.test.local. admin.test.local. (

                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL

;
@ IN NS ns1.test.local.

ns1 IN A 10.6.6.90
; 具体的本地域名 A 记录解析
@ IN A 10.6.6.90
www IN A 10.6.6.90
3、保存退出:按 Ctrl + O -> 回车 -> 按 Ctrl + X
第五步:语法安全检查与服务启动,在让服务生效前,检查有没有手误敲错代码。
1、sudo named-checkconf (验证后没有任何输出是对的)。
2、sudo named-checkzone test.local /etc/bind/db.test.local(后面出现OK是对的)。
3、激活并重启 DNS 服务:
sudo systemctl restart bind9
sudo systemctl enable bind9
4、检查服务状态(确认看到绿色的 active (running)):
sudo systemctl status bind9
5、如果系统开了防火墙,放行 53 端口:
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
6、本地自测

测试内网私有解析(结果应该秒回 10.6.6.90)

dig @127.0.0.1 www.test.local

测试外网转发(结果应该返回正常的公网 IP,且 Query time 为 1 msec 级别)

dig @127.0.0.1 google.com
7、局域网自测:nslookup www.google.com

发表评论