Linux自建DNS服务(Bind)
Linux自建DNS服务(Bind)
主域名服务器地址是abcdabcde.com,解析www到192.168.0.2该怎么配置?
环境:Ubuntu 22.04.3 LTS
步骤一:安装DNS软件包
Ubuntu默认使用bind9
作为DNS服务器软件。要安装它,请打开终端并输入以下命令:
sudo apt install bind9
center os 应该是bind
步骤二:配置DNS服务器
1.配置区域文件
- 打开您的 BIND 区域文件,通常位于
/etc/bind/named.conf.local
。 - 添加以下内容到区域文件:
zone "abcdabcde.com" {
type master;
file "/etc/bind/db.abcdabcde.com";
allow-update { any; };
};
zone "192.168.0.0" {
type master;
file "/etc/bind/db.192.168.0";
allow-update { any; };
};
-
创建名为
/etc/bind/db.abcdabcde.com
的区域文件,并添加以下内容:正向解析,即根据域名查ip
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.abcdabcde.com. root.abcdabcde.com. (
2023040202 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
3600 ; minimum
)
@ IN NS ns1.abcdabcde.com.
; 这里是将所有www域名都映射到192.168.0.2
www IN CNAME ns1
; 这里是将所有子域名都映射到192.168.0.2
* IN A 192.168.0.2
-
创建名为
/etc/bind/db.192.168.0
的区域文件,并添加以下内容:逆向解析,即根据ip查域名
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.abcdabcde.com. root.abcdabcde.com. (
2023040202 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
3600 ; minimum
)
@ IN NS ns1.abcdabcde.com.
1 IN PTR ns1.abcdabcde.com.
2. 配置主配置文件
-
打开 BIND 主配置文件,通常位于
/etc/bind/named.conf
。找不到option那就看
named.conf.options
文件参考
named.conf
include 了的文件 -
添加:
options {
//add configs
listen-on port 53 { any; };
allow-query { any; };
};
3. 重启 DNS 服务
- 重启 BIND DNS 服务以应用新配置:
sudo systemctl restart bind9
步骤三:修改系统dns服务器设置
1. 临时修改(不建议)
重启
systemctl restart systemd-resolved
后就会失效
- 打开
/etc/resolv.conf
文件:sudo vi /etc/resolv.conf
# 添加`nameserver 192.168.0.2`到第一行
nameserver 192.168.0.2
nameserver 8.8.8.8
nameserver 192.168.0.1
search .
2. 永久修改
方法一:使用Systemd-resolved
- 创建
/etc/systemd/resolved.conf
文件:
sudo vi /etc/systemd/resolved.conf
- 添加以下内容,保存并退出文件。
[Resolve]
#首选的
DNS=192.168.0.2
#其他的
DNS=8.8.8.8
- 重启系统服务:
sudo systemctl restart systemd-resolved
方法二:使用Netplan
- 编辑
/etc/netplan/01-netcfg.yaml
文件:
sudo vi /etc/netplan/01-netcfg.yaml
- 添加以下内容到文件末尾:
nameservers:
addresses:
- 192.168.0.2
- 8.8.8.8
- 保存并退出文件。
- 运行以下命令应用更改:
sudo netplan apply
步骤四:验证
-
Ping一下
root@localhost:~# ping www.abcdabcde.com PING www.abcdabcde.com (192.168.0.2) 56(84) bytes of data. 64 bytes from 192.168.0.2 (192.168.0.2): icmp_seq=1 ttl=64 time=0.036 ms ^C --- www.abcdabcde.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.036/0.036/0.036/0.000 ms