🗣 Wd提问: 搭建dns解析服务器
🤖 Ai回答: 搭建DNS解析服务器是一个涉及网络配置和域名管理的系统工程。以下是基于 BIND(Berkeley Internet Name Domain) 的完整指南,适用于 Linux 系统(如 CentOS/RHEL 或 Ubuntu)。BIND 是最广泛使用的开源 DNS 服务器软件。
🌐 一、准备工作
1、系统要求
操作系统:CentOS 7/8、Ubuntu 20.04/22.04 等
网络:确保服务器有公网 IP 或内网可访问
权限:root 或 sudo 用户权限
🔧 二、安装 BIND DNS 服务器
在 CentOS/RHEL 上安装:
bash
安装 BIND
sudo yum install bind bind-utils -y
或者使用 dnf(适用于 CentOS 8+)
sudo dnf install bind bind-utils -y
在 Ubuntu/Debian 上安装:
bash
sudo apt update
sudo apt install bind9 bind9utils bind9-doc -y
📂 三、配置 DNS 服务器
1、主配置文件:`/etc/named.conf`(CentOS)或 `/etc/bind/named.conf`(Ubuntu)
编辑主配置文件:
bash
sudo vim /etc/named.conf
示例配置(基本结构):
conf
options {
directory /var/named;
listen-on port 53 { any; }; 监听所有接口
allow-query { any; }; 允许任何客户端查询
recursion yes; 支持递归查询
forwarders {
8.8.8.8; 使用 Google DNS 作为转发器
1.1.1.1; 或者使用 Cloudflare
};
dnssec-validation auto;
};
zone 65.hk IN {
type master;
file 65.hk.zone;
allow-update { none; };
};
zone 1.168.192.in-addr.arpa IN {
type master;
file 192.168.1.rev;
allow-update { none; };
};
✅ `65.hk` 是你的域名,`192.168.1.rev` 是反向解析文件名。
2、创建区域文件(正向解析)
创建区域文件:
bash
sudo vim /var/named/65.hk.zone
示例内容:
zone
$TTL 86400
@ IN SOA ns1.65.hk、admin.65.hk、(
2025040501 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ; Minimum TTL
)
@ IN NS ns1.65.hk.
@ IN A 192.168.1.100
www IN A 192.168.1.100
mail IN A 192.168.1.101
ns1 IN A 192.168.1.100
✅ `ns1.65.hk.` 是你的 DNS 服务器主机名。
3、创建反向解析文件
bash
sudo vim /var/named/192.168.1.rev
示例内容:
zone
$TTL 86400
@ IN SOA ns1.65.hk、admin.65.hk、(
2025040501 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ; Minimum TTL
)
@ IN NS ns1.65.hk.
100 IN PTR ns1.65.hk.
101 IN PTR mail.65.hk.
✅ 注意:IP 地址顺序是倒序的(如 192.168.1.100 → 100.1.168.192)
4、设置文件权限
bash
sudo chown root:named /var/named/65.hk.zone
sudo chown root:named /var/named/192.168.1.rev
sudo chmod 640 /var/named/65.hk.zone
sudo chmod 640 /var/named/192.168.1.rev
🔁 四、启动并启用服务
CentOS/RHEL:
bash
sudo systemctl start named
sudo systemctl enable named
sudo systemctl status named
Ubuntu/Debian:
bash
sudo systemctl start bind9
sudo systemctl enable bind9
sudo systemctl status bind9
🔍 五、测试 DNS 解析
使用 `dig` 测试:
bash
dig @127.0.0.1 65.hk
dig @127.0.0.1 www.65.hk
dig @127.0.0.1 -x 192.168.1.100
使用 `nslookup`:
bash
nslookup 65.hk 127.0.0.1
使用 `host`:
bash
host www.65.hk 127.0.0.1
🛡️ 六、防火墙配置
CentOS/RHEL:
bash
sudo firewall-cmd permanent add-service=dns
sudo firewall-cmd reload
Ubuntu/Debian:
bash
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw reload
🌐 七、客户端配置 DNS
在客户端(如 Windows、Linux、手机)设置 DNS 为你的服务器 IP:
bash
Linux
echo nameserver 192.168.1.100 | sudo tee /etc/resolv.conf
或修改 NetworkManager 配置
🛠️ 八、高级功能(可选)
| 功能 | 说明 |
| 主从 DNS | 使用 `type slave` 实现主从同步 |
| DNSSEC | 提升安全性,防止 DNS 欺骗 |
| 动态更新 | 允许客户端动态更新记录(需配置 ACL) |
| 日志记录 | 在 `options` 中添加 `log-file` 和 `statistics-file` |
| 监控工具 | 使用 `named-checkzone`, `named-checkconf` 验证配置 |
✅ 九、验证配置
bash
检查配置语法
sudo named-checkconf
sudo named-checkzone 65.hk /var/named/65.hk.zone
sudo named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.rev
📌 十、注意事项
1、防火墙开放 53 端口
2、确保服务器 IP 不会变化
3、域名注册商设置 DNS 服务器为你的服务器 IP
4、测试前关闭 SELinux(临时)或配置策略
5、生产环境建议使用主从架构
🔄 十一、域名注册与 DNS 服务器设置
1、登录你的域名注册商(如阿里云、腾讯云、GoDaddy)
2、修改域名的 DNS 服务器为你的服务器 IP:
ns1.65.hk 192.168.1.100
ns2.65.hk 192.168.1.101
3、等待 DNS 生效(通常几分钟到 48 小时)
🧩 十二、常见问题排查
| 问题 | 解决方法 |
| `connection refused` | 检查防火墙、服务是否启动 |
| `zone not loaded` | 检查文件权限、路径是否正确 |
| `SERVFAIL` | 检查 `named-checkzone` 报错 |
| `dig returns NXDOMAIN` | 检查区域文件是否正确 |
📚 参考资料
[BIND 官方文档](https://www.isc.org/bind/)
[BIND 配置指南](https://bind9.readthedocs.io/)
[DNS 基础教程](https://www.dns.com/dns-tutorial/)
如果你有特定需求(如内网 DNS、子域、动态 DNS、DNSSEC、主从同步等),可以继续提问,我可以提供更详细的配置方案。
📣 商家广告:





0
IP地址: 57.0.84.169
搜索次数: 8
提问时间: 2025-12-07 23:55:26
本站所有
❓
问答
均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
本站由
🟢
豌豆Ai
提供技术支持,使用的最新版:
豌豆Ai站群搜索引擎系统 V.25.10.25
搭建本站。