🗣 Wd提问: linux dns服务器配置
🤖 Ai回答: 这里为您提供一份详细且实用的 Linux DNS 服务器配置指南,主要基于最流行的 BIND9 (Berkeley Internet Name Domain) 软件。
一、概述
BIND9 是互联网上使用最广泛的 DNS 服务器软件。它可以扮演多种角色:
* 主域名服务器 (Primary/Master):存放原始域名 zone 数据文件的服务器。
* 辅助域名服务器 (Secondary/Slave):从主服务器同步 zone 数据文件的服务器。
* 缓存域名服务器 (Caching):仅为客户端提供查询转发和缓存功能的服务器,不管理任何域。
本指南将分别介绍如何配置 缓存服务器 和 主域名服务器。
二、安装 BIND9
在基于 Debian/Ubuntu 的系统上:
bash
sudo apt update
sudo apt install bind9 bind9utils bind9-doc
在基于 RHEL/CentOS/Rocky Linux/AlmaLinux 的系统上:
bash
sudo dnf install bind bind-utils
或者使用 yum (旧版本)
sudo yum install bind bind-utils
安装完成后,启动服务并设置开机自启:
bash
Debian/Ubuntu
sudo systemctl start bind9
sudo systemctl enable bind9
RHEL/CentOS/Rocky
sudo systemctl start named
sudo systemctl enable named
关键文件和目录:
* 主配置文件:`/etc/bind/named.conf` (Debian/Ubuntu) 或 `/etc/named.conf` (RHEL/CentOS)
* 配置包含目录:`/etc/bind/named.conf.d/` 或 `/etc/named.conf.d/`
* Zone 文件存放目录:`/var/cache/bind/` (Debian/Ubuntu) 或 `/var/named/` (RHEL/CentOS)
三、配置一:缓存 DNS 服务器
这是最简单且常用的配置,可以加速网络访问并减少上游 DNS 的流量。
1、 编辑主配置文件:
bash
sudo nano /etc/bind/named.conf.options
2、 修改 `options` 块:
在 `options { ..、}` 块内,添加或修改以下内容:
bash
options {
directory /var/cache/bind;
// 允许本地网络客户端查询
// 将 192.168.1.0/24 替换为你的局域网网段
allow-query { localhost; 192.168.1.0/24; };
// 开启递归查询,缓存服务器必须开启
recursion yes;
// 允许递归查询的客户端
// 将 192.168.1.0/24 替换为你的局域网网段
allow-recursion { localhost; 192.168.1.0/24; };
// 设置转发器,将查询请求转发给上游DNS
// 这里使用Google的公共DNS,你也可以用114.114.114.114或运营商提供的DNS
forwarders {
8.8.8.8;
8.8.4.4;
};
// 仅使用转发器,不进行根域名查询
forward only;
// 禁用DNSSEC验证(可选,可避免某些解析问题)
dnssec-validation no;
// 监听所有IPv4地址
listen-on { any; };
// 监听所有IPv6地址(可选)
listen-on-v6 { any; };
};
3、 检查配置文件语法:
bash
sudo named-checkconf
如果没有输出,则表示语法正确。
4、 重启 BIND9 服务:
bash
sudo systemctl restart bind9
5、 测试:
将你的客户端(其他电脑或本机)的 DNS 服务器地址设置为这台 Linux 服务器的 IP,然后尝试解析域名。
bash
在本机测试
dig @localhost google.com
或者使用nslookup
nslookup google.com 192.168.1.100 假设服务器IP是192.168.1.100
四、配置二:主域名服务器 (解析内部域名)
假设我们要创建一个名为 `internal.lan` 的私有域。
1、创建正向 Zone 文件
正向 Zone 文件将主机名映射到 IP 地址。
* 在 Debian/Ubuntu 上:
bash
sudo nano /var/cache/bind/db.internal.lan
* 在 RHEL/CentOS 上:
bash
sudo nano /var/named/db.internal.lan
文件内容示例:
bash
$TTL 604800
@ IN SOA ns1.internal.lan、admin.internal.lan、(
2024022001 ; Serial number (YYYYMMDDNN)
86400 ; Refresh (1 day)
7200 ; Retry (2 hours)
3600000 ; Expire (1000 hours)
172800 ) ; Minimum TTL (2 days)
; 指定本服务器为该域的权威名称服务器
@ IN NS ns1.internal.lan.
; 定义记录
ns1 IN A 192.168.1.100 ; DNS服务器本身的IP
router IN A 192.168.1.1
www IN A 192.168.1.10
fileserver IN A 192.168.1.20
; 别名记录 (CNAME)
web IN CNAME www
注意:SOA 记录中的邮箱 `admin.internal.lan` 应写为 `admin@internal.lan`,但用点`.`代替`@`。
2、创建反向 Zone 文件(可选)
反向 Zone 文件将 IP 地址映射回主机名。
* 在 Debian/Ubuntu 上:
bash
sudo nano /var/cache/bind/db.192.168.1
* 在 RHEL/CentOS 上:
bash
sudo nano /var/named/db.192.168.1
文件内容示例:
bash
$TTL 604800
@ IN SOA ns1.internal.lan、admin.internal.lan、(
2024022001
86400
7200
3600000
172800 )
@ IN NS ns1.internal.lan.
100 IN PTR ns1.internal.lan.
1 IN PTR router.internal.lan.
10 IN PTR www.internal.lan.
20 IN PTR fileserver.internal.lan.
注意:只需要写 IP 的最后一段(100, 1, 10, 20)。
3、在主配置文件中声明 Zone
编辑主配置文件或其包含文件。
* 在 Debian/Ubuntu 上,通常编辑 `/etc/bind/named.conf.local`:
bash
sudo nano /etc/bind/named.conf.local
添加以下内容:
bash
// 正向Zone声明
zone internal.lan {
type master;
file /var/cache/bind/db.internal.lan;
allow-query { any; }; // 允许任何人查询此域
allow-transfer { none; }; // 禁止区域传输,或指定辅助DNS服务器IP
};
// 反向Zone声明(可选)
zone 1.168.192.in-addr.arpa {
type master;
file /var/cache/bind/db.192.168.1;
allow-query { any; };
allow-transfer { none; };
};
* 在 RHEL/CentOS 上,编辑 `/etc/named.conf`:
在文件末尾添加同样的 `zone` 声明,但注意修改 `file` 路径为 `/var/named/db.internal.lan` 和 `/var/named/db.192.168.1`。
4、检查 Zone 文件语法和主配置
bash
检查正向Zone文件
sudo named-checkzone internal.lan /var/cache/bind/db.internal.lan
输出应为 OK
检查反向Zone文件
sudo named-checkzone 1.168.192.in-addr.arpa /var/cache/bind/db.192.168.1
输出应为 OK
检查主配置文件语法
sudo named-checkconf
5、重启 BIND9 服务并测试
bash
sudo systemctl restart bind9
或 sudo systemctl restart named
测试正向解析
dig @localhost www.internal.lan
nslookup www.internal.lan 192.168.1.100
测试反向解析
dig @localhost -x 192.168.1.10
nslookup 192.168.1.10 192.168.1.100
五、防火墙配置
如果你的系统开启了防火墙,需要放行 DNS 服务的端口(TCP 和
📣 商家广告:





0
IP地址: 251.223.108.125
搜索次数: 11
提问时间: 2025-11-11 15:29:13
🛒 域名购买:
soukan.com.cn
naiwang.com.cn
lytxw.com
rj.biz
afuncard.com
xbhd.cn
pai.pw
s-k.com.cn
op.gs
04.gs
❓️ 热门提问:
机房翻译
站群SEO网站日志性能监控优化
top域名为什么便宜
香港外卖员收入
dhcp服务器怎么开启
国外vps小鸡
如何在vps上搭建网站
便宜的的云主机
360主机防护
哪里云服务器便宜
豌豆Ai站群搜索引擎系统
🌐 域名评估:
shengmar.online
g.hl.cn
kimi.pink
aa.yn.cn
jldj.cn
dji.zj.cn
az.cq.cn
jj.hn.cn
je.gs
xphone.wang
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
二维码聊天
搜尋引擎大全
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。