Ubuntu安装bind9,自建内网DNS服务器
这么一个情况:在有些开发工作的时候,用IP访问非常麻烦。并且希望在外网走外网的服务器,内网走内网的测试服务器,用同一个域名来访问。
就是想自定义域名,又不想改host的文件。那就只有通过dns来解决了。 可以在‘网络适配器-本地连接’中固定dns或者在路由器中统一修改dns就可以了。
1、开始安装
sudo apt-get install bind9
sudo apt-get install bind9-host dnsutils
sudo systemctl enable bind9
2、配置
# 打开named.conf.options
sudo vim /etc/bind/named.conf.options
# 在后面追加
version "not currently available";
recursion yes;
allow-recursion {127.0.0.1; 192.168.0.0/24; 10.10.10.0/24;};
querylog yes;
# 检查配置文件的语法
sudo named-checkconf
# 重新启动bind9
sudo systemctl restart bind9
# 开放端口
sudo ufw allow in from 192.168.0.0/24 to any port 53
需要注意allow-recursion的配置,要包含服务器的本地地址。
3、测试bind9配置
在另外一台电脑上,查询某域名的A记录
dig A dev-tang.com @192.168.0.190
; <<>> DiG 9.11.5-P4 <<>> A dev-tang.com @192.168.0.190
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 24330
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 909156cb6f23cce7010000006160f003c1ddcfecda936b69 (good)
;; QUESTION SECTION:
;dev-tang.com. IN A
;; Query time: 1 msec
;; SERVER: 192.168.0.190#53(192.168.0.190)
;; WHEN: 周六 10月 09 09:27:33 2021
;; MSG SIZE rcvd: 69
4、解析一个域名
解析一个自定义域名jizhong.tang
# 编辑named.conf.local文件
sudo vim /etc/bind/named.conf.local
# 加入以下内容
zone "jizhong.tang" IN {
type master;
file "/etc/bind/jizhong.tang";
};
# 在创建一个/etc/bind/jizhong.tang文件
sudo vim /etc/bind/jizhong.tang
# 加入以下域名解析内容
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1
@ IN A 192.168.0.124
将jizhong.tang的A记录解析到了192.168.0.124。我们可以在另外一台电脑上做测试。
dig A jizhong.tang @192.168.0.190
; <<>> DiG 9.11.5-P4 <<>> A jizhong.tang @192.168.0.190
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26492
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 5d01536cd4938a44010000006160f28f31b0ab1d0f853a8a (good)
;; QUESTION SECTION:
;jizhong.tang. IN A
;; ANSWER SECTION:
jizhong.tang. 604800 IN A 192.168.0.124
jizhong.tang. 604800 IN A 127.0.0.1
;; Query time: 0 msec
;; SERVER: 192.168.0.190#53(192.168.0.190)
;; WHEN: 周六 10月 09 09:38:24 2021
;; MSG SIZE rcvd: 101
可以看到解析生效了。这样就可以直接用域名访问192.168.0.124上的服务了。不过还是需要记得修改‘网络适配器中-本地连接’中的dns为dns服务器的ip,或者在路由器中做修改也是可以的。