🗣 Wd提问: 搭建域名服务器
🤖 Ai回答: 搭建域名服务器(DNS服务器)是一项网络管理中的重要任务,常用于企业内网解析、自建网站服务或学习网络原理。以下是使用 BIND9(最常用的开源DNS服务器软件)在 Linux系统(以Ubuntu为例) 上搭建一个基本的主域名服务器(Primary DNS Server)的完整步骤。
一、准备工作
1、系统环境
操作系统:Ubuntu 20.04 / 22.04 LTS(或其他Linux发行版)
用户权限:具备 `sudo` 权限
静态IP地址(例如:`192.168.1.100`)
二、安装 BIND9
bash
sudo apt update
sudo apt install bind9 bind9utils bind9-doc -y
注:`bind9` 是DNS服务程序,`bind9utils` 包含测试工具如 `nslookup`, `dig`。
三、配置 BIND9
1、修改主配置文件 `/etc/bind/named.conf.local`
bash
sudo nano /etc/bind/named.conf.local
添加以下内容(示例域名为 `65.hk`):
conf
zone 65.hk {
type master;
file /etc/bind/db.65.hk;
};
zone 1.168.192.in-addr.arpa {
type master;
file /etc/bind/db.192;
};
说明:
第一个是正向解析区(域名 → IP)
第二个是反向解析区(IP → 域名),用于PTR记录
2、创建正向区域文件 `db.65.hk`
复制模板:
bash
sudo cp /etc/bind/db.local /etc/bind/db.65.hk
sudo nano /etc/bind/db.65.hk
修改内容如下:
dns
$TTL 86400
@ IN SOA ns1.65.hk、admin.65.hk、(
2024050101 ; Serial (年月日+序号)
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; Name Servers
@ IN NS ns1.65.hk.
@ IN NS ns2.65.hk.
; A Records
ns1 IN A 192.168.1.100
ns2 IN A 192.168.1.101
@ IN A 192.168.1.10
www IN A 192.168.1.20
mail IN A 192.168.1.30
; CNAME 示例
ftp IN CNAME www.65.hk.
3、创建反向区域文件 `db.192`
bash
sudo cp /etc/bind/db.127 /etc/bind/db.192
sudo nano /etc/bind/db.192
修改内容:
dns
$TTL 86400
@ IN SOA ns1.65.hk、admin.65.hk、(
2024050101
3600
1800
604800
86400 )
; Name Servers
@ IN NS ns1.65.hk.
@ IN NS ns2.65.hk.
; PTR Records (IP最后一位 → 主机名)
100 IN PTR ns1.65.hk.
101 IN PTR ns2.65.hk.
10 IN PTR server.65.hk.
20 IN PTR www.65.hk.
30 IN PTR mail.65.hk.
4、设置权限
bash
sudo chown bind:bind /etc/bind/db.65.hk /etc/bind/db.192
四、修改主配置允许查询(可选)
编辑 `/etc/bind/named.conf.options`:
bash
sudo nano /etc/bind/named.conf.options
在 `options { }` 中添加:
conf
allow-query { localhost; 192.168.1.0/24; };
recursion no; 关闭递归查询(更安全)
如果你希望作为内部递归DNS,可开启:
conf
recursion yes;
allow-recursion { 192.168.1.0/24; };
五、检查配置并重启服务
bash
检查配置语法
sudo named-checkconf
检查区域文件
sudo named-checkzone 65.hk /etc/bind/db.65.hk
sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192
重启BIND服务
sudo systemctl restart bind9
sudo systemctl enable bind9
六、测试DNS服务器
1、使用 `dig` 测试正向解析
bash
dig @192.168.1.100 www.65.hk A
预期输出包含:
;; ANSWER SECTION:
www.65.hk、 86400 IN A 192.168.1.20
2、反向解析测试
bash
dig @192.168.1.100 -x 192.168.1.20
应返回:
;; ANSWER SECTION:
20.1.168.192.in-addr.arpa、86400 IN PTR www.65.hk.
3、使用 `nslookup`
bash
nslookup mail.65.hk 192.168.1.100
七、客户端设置DNS
将其他设备的DNS设置为你的DNS服务器IP(如 `192.168.1.100`),即可使用自定义域名访问内网服务。
八、进阶建议
| 功能 | 建议 |
| 安全性 | 使用防火墙限制53端口访问,关闭递归查询(对外时) |
| 高可用 | 搭建从DNS(Slave),使用 `type slave` 和 `masters` |
| 日志 | 查看 `/var/log/syslog` 或配置 `logging` 子句 |
| 动态更新 | 可结合 DHCP 和 `nsupdate` 实现 |
常见问题排查
服务无法启动:检查配置语法和文件权限
无法解析:确认防火墙是否放行UDP/TCP 53端口
Serial未更新:修改区域文件后记得增加Serial号,否则从服务器不会同步
✅ 至此,你已成功搭建了一个基础的DNS服务器!
如果你有具体需求(如公网DNS、子域授权、DNSSEC等),欢迎继续提问,我可以提供更详细的配置方案。
📣 商家广告:





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