Ubuntu22.04搭建DNS服务
准备工作
# 切换root用户,以下所有操作使用root用户执行
su -
# 关闭防火墙,linux服务默认开启防火墙,bind使用的端口为53,协议为TCP/UDP
# 查看ufw防火墙是否已启动
ufw status
# 关闭ufw
ufw disable
# 配置好静态ip
vim /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
ens33:
addresses:
- 192.168.8.30/24
nameservers:
addresses:
- 8.8.8.8
search: []
routes:
- to: default
via: 192.168.8.2
version: 2
# 重启网卡
netplan apply
# 配置好apt源
cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
# 将原始apt源修改为华为源
sed -i "s@http://.*archive.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
sed -i "s@http://.*security.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
apt update
安装bind9
apt -y install bind9
修改配置文件
# 安装后的配置文件目录:/etc/bind
cd /etc/bind/
# 修改主配置文件
vim named.conf.local
# 配置正向解析
zone "zuolaoshi.cn" {
type master;
file "/etc/bind/db.zuolaoshi.cn";
};
# 配置反向解析
zone "8.168.192.in-addr.arpa" {
type master;
file "/etc/bind/192.zone";
};
## 配置正向解析
cp db.local db.zuolaoshi.cn
vim db.zuolaoshi.cn
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA zuolaoshi.cn. root.zuolaoshi.cn. (
20240802 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1
@ IN A 192.168.8.30
ns1 IN A 192.168.8.30
www IN A 192.168.8.30
-
$TTL 604800:定义了区域数据的 Time To Live(TTL)为 604800 秒,即 172 小时。这意味着区域数据在缓存中的生存时间为 172 小时,过了这个时间后,缓存的数据将被清除。
-
$ORIGIN ckx.cn.:指定域名空间的根区域为 “zuolaoshi.cn”。
-
@ IN SOA zuolaoshi.cn. root.zuolaoshi.cn. ( 2006080401 ; Serial ) ; Serial:定义了区域配置的序列号(Serial),表示每次对该文件进行修改时,序列号应递增。这里设置的序列号为 2006080401。
-
604800 ; Refresh:刷新间隔时间为 604800 秒,即 172 小时。这意味着区域数据在每次更新后,刷新时间为 172 小时。
-
86400 ; Retry:定义了区域数据的重试时间为 86400 秒,即 24 小时。当区域数据更新失败时,重试时间为 24 小时。
-
2419200 ; Expire:定义了区域数据的过期时间为 2419200 秒,即 688 小时。过期时间表示区域数据在缓存中的最长生存时间。
-
604800 ) ; Negative Cache TTL:负缓存时间(Negative Cache TTL)为 604800 秒,即 172 小时。这意味着在查询失败时,负缓存时间用于防止错误的信息在缓存中传播。
-
@ IN NS ns1:定义了一个名为 “ns1” 的域名服务器,负责解析 “zuolaoshi.cn” 域名下的所有域名。
-
@ IN A 192.168.8.30:指定域名 “zuolaoshi.cn” 的 IP 地址为 192.168.8.30。
-
www IN A 192.168.8.30:将 “www” 域名解析为 IP 地址 192.168.8.30。
## 反向解析
cp db.127 192.zone
vim 192.zone
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA zuolaoshi.cn. root.zuolaoshi.cn. (
20240802 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.zuolaoshi.cn.
30 IN PTR ns1.zuolaoshi.cn.
30 IN PTR www.zuolaoshi.cn.
注意:域名后面一定要加一个“.”
几个参数的解释:
- @ IN NS ns1.zuolaoshi.cn. :定义域名解析服务器的名称,一定要对
- $TTL 604800 缓存时间
- 30 IN PTR ns1.zuolaoshi.cn. 将 IP 地址 30 解析为域名ns1.zuolaoshi.cn.
# 在文件中加入DNS解析服务器
vim /etc/bind/named.conf.options
# 解开//注释,设置转发DNS服务
forwarders
{
8.8.8.8;
};
dnssec-validation auto;
listen-on-v6 { any; };
# 下方添加权限设置
auth-nxdomain no;
listen-on port 53 { 192.168.8.30; };
allow-transfer { any; };
allow-query { any; };
# 重启验证
systemctl restart bind9
systemctl reload bind9
# 设置bind9开机启动
systemctl enable bind9
# 安装apache2用于验证
apt install apache2
echo "zuolaoshi 666" > /var/www/html/index.html
systemctl restart apache2
修改客户端系统的DNS配置
验证效果
使用如下命令进行测试:
nslookup www.zuolaoshi.cn
dig www.zuolaoshi.cn