liunx配置dns服务器

安装BIND,编辑/etc/named.conf,配置zone文件,重启named服务完成Linux

Linux配置DNS服务器详解

DNS服务器

DNS(Domain Name System)是互联网的核心服务之一,负责将域名转换为IP地址,在Linux系统中,常用的DNS服务器软件包括BIND(Berkeley Internet Name Domain)、dnsmasq和Unbound,本文以BIND为例,详细介绍DNS服务器的配置流程。


安装BIND软件

不同Linux发行版的安装命令:

发行版 安装命令
Ubuntu/Debian sudo apt update && sudo apt install bind9
CentOS/RHEL sudo yum install bind
Fedora sudo dnf install bind

安装后目录结构

  • /etc/bind/:主配置文件目录
  • /var/cache/bind/:缓存文件目录
  • /var/named/:CHROOT隔离环境目录(CentOS特有)

配置文件解析

主配置文件 /etc/bind/named.conf

关键配置项说明:

liunx配置dns服务器

参数 作用 示例值
listenon 监听网络接口 listenon port 53 { any; }
allowquery 允许查询的客户端 allowquery { any; };
forwarders 转发器配置 forwarders { 8.8.8.8; };
directory 区域文件存储路径 directory "/var/cache/bind/";

正向区域文件 db.example.com

$TTL    86400      ; 生存时间(秒)
@       IN        SOA     ns1.example.com. admin.example.com. (
                              2023100101 ; 序列号
                              3600       ; 刷新时间
                              1800       ; 重试间隔
                              1209600    ; 过期时间
                              86400 )    ; 最小TTL
@       IN        NS      ns1.example.com.
@       IN        A       192.168.1.100
www     IN        A       192.168.1.100

反向区域文件 db.192.168.1

$TTL    86400
@       IN        SOA     ns1.example.com. admin.example.com. (
                              2023100101
                              3600
                              1800
                              1209600
                              86400 )
@       IN        NS      ns1.example.com.
100     IN        PTR     ns1.example.com.

配置步骤实操

修改主配置文件

# 编辑named.conf.local(Ubuntu)或named.conf(CentOS)
sudo nano /etc/bind/named.conf.options
# 添加以下内容:
options {
    directory "/var/cache/bind";
    recursion yes;
    allowquery { any; };
    forwarders { 8.8.8.8; 8.8.4.4; };
};

创建区域文件

# 创建正向解析区域
sudo cp /etc/bind/db.local /etc/bind/db.example.com
nano /etc/bind/db.example.com  # 按上述模板修改
# 创建反向解析区域
sudo cp /etc/bind/db.127 /etc/bind/db.192.168.1
nano /etc/bind/db.192.168.1   # 按上述模板修改

配置区域文件

named.conf.local中添加:

zone "example.com" {
    type master;
    file "/etc/bind/db.example.com";
};
zone "192.168.1.0/24" {
    type master;
    file "/etc/bind/db.192.168.1";
};

安全加固配置

限制递归查询

修改named.conf.options

options {
    ...
    allowrecursion { 192.168.1.0/24; };
};

启用TCP封装随机端口

named.conf.options添加:

liunx配置dns服务器

options {
    ...
    tcpclients { localnets; };
};

CHROOT隔离(仅CentOS)

# 安装chroot环境
sudo yum install bindutils
sudo yum install bindchroot
# 配置SELinux
sudo setsebool P named_write_master_zones on

测试与验证

启动服务

# Ubuntu
sudo systemctl restart bind9
# CentOS
sudo systemctl restart named

测试工具使用

# 正向解析测试
dig @localhost www.example.com
# 反向解析测试
dig x 192.168.1.100 @localhost
# 递归查询测试
dig www.google.com @localhost

日志查看

# 查看日志文件
sudo tail f /var/log/syslog   # Ubuntu
sudo tail f /var/log/messages # CentOS

常见问题排查

现象 原因分析 解决方案
无法解析本地域名 区域文件配置错误 检查SOA记录和NS记录
外部域名解析失败 未配置转发器 添加forwarders配置
服务无法启动 配置文件语法错误 使用namedcheckconf检测
反向解析异常 PTR记录缺失 补充反向区域文件

相关问题与解答

Q1:如何检查BIND服务是否正常运行?

A:执行以下命令查看服务状态:

# Ubuntu
systemctl status bind9
# CentOS
systemctl status named

若显示active (running)则表示服务正常,也可通过netstat tulnp | grep :53检查53端口监听状态。

Q2:如何配置DNS主从同步?

A:需在主服务器named.conf添加:

liunx配置dns服务器

zone "example.com" {
    type master;
    file "/etc/bind/db.example.com";
    notify yes;
    alsonotify { slave.example.com; };
};

在从服务器配置:

zone "example.com" {
    type slave;
    masters { 192.168.1.100; };
    file "/var/cache/bind/db.example.com";

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/202605.html

Like (0)
小编小编
Previous 2025年5月12日 04:22
Next 2025年5月12日 04:31

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注