树莓派3B+,系统为Debian GNU/Linux 13 (trixie)。
使用 sudo apt install bind9 安装时提示建议同时安装另外三个包,故执行以下命令:
x$ sudo apt install bind9 bind9-doc resolvconf ufw安装完成后启动named服务:
x
$ sudo service named start使用以下命令查看DNS端口53是否开放:
xxxxxxxxxx$ ss -ltpnbind9的配置文件位于 /etc/bind/ 目录下:
named.conf
此文件中有效语句只有三条引用:
include "/etc/bind/named.conf.options";include "/etc/bind/named.conf.local";include "/etc/bind/named.conf.root-hints";注释中建议将zones加入到 /etc/bind/named.conf.local 中。
named.conf.local
此文件初始为空,添加以下内容建立一个zone:
xxxxxxxxxxzone "dapeng.li" { type master; file "/etc/bind/db.dapeng.li";};type 关键字用于定义此zone的类型:
| 类型 | 中文名 | 角色 | 数据来源 | 典型用途 |
|---|---|---|---|---|
master | 主区域 | 老板 | 自己编辑的文件( 如本例中的 file "/etc/bind/db.dapeng.li" ) | 管理自己的网站、邮箱域名 |
slave | 从区域 | 员工 | 从 Master 服务器同步 | 备份、负载均衡、高可用 |
forward | 转发区域 | 邮差 | 指定的转发器 | 内网解析、强制走特定 DNS |
hint | 根提示 | 地图 | 根服务器列表文件 | 让服务器知道如何上网查域名 |
name.conf.options
选项文件,默认为空。根据网上某些文章提示添加以下内容:
xxxxxxxxxxoptions { directory "/var/cache/bind"; recursion yes; forwarders { 202.96.128.86; 8.8.8.8; }; listen-on-v6 { none; };};named.conf.root-hints 和 rndc.key
暂时用不到
由于添加了zone,需要自己创建 db.dapeng.li 文件
xxxxxxxxxx$TTL 86400@ IN SOA ns.dapeng.li. root.dapeng.li. ( 20260226; 3600; 1800; 604800; 86400;)@ IN NS ns.dapeng.li.ns IN A 192.168.0.35abc IN A 192.168.0.56def IN A 192.168.0.106@ IN A 54.167.95.37@ IN MX 10 dapeng.li.2025022601 改为 2025022602),从服务器(Slave)才会重新加载数据。完成配置文件后,使用以下命令检查主配置文件语法:
xxxxxxxxxx$ sudo named-checkconf如果没有报错,说明配置文件正常。
然后检查区域文件语法:
x
$ sudo named-checkzone dapeng.li /etc/bind/db.dapeng.li如果返回 OK ,说明区域文件没有问题。
然后启动bind9服务:
xxxxxxxxxx$ sudo service named restart注意,对配置文件的任何修改,都需要重启 named 服务。
如果需要反向解析区域,可在 named.conf.local 中添加以下内容:
xxxxxxxxxxzone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192.168.0";};并创建对应的 db.192.168.0 文件:
xxxxxxxxxxIN PTR www.example.com.IN PTR mail.example.com.使用 dig 命令进行测试:
xxxxxxxxxxdig @localhost www.example.com# 或者查询你的服务器 IPdig @你的服务器IP mail.example.com