温馨提示×

Linux Minimal如何配置DNS服务

小樊
47
2025-10-05 16:29:30
栏目: 智能运维

Minimal Linux系统配置DNS服务(以CentOS/RHEL Minimal为例)
DNS服务是网络基础设施的核心组件,用于实现域名与IP地址的映射。以下是在Minimal版Linux系统(如CentOS/RHEL Minimal)上配置DNS服务的详细步骤,以BIND(Berkeley Internet Name Domain)软件为例,涵盖从安装到验证的全流程。

1. 准备工作:配置静态IP

DNS服务器需要稳定的网络环境,因此需先将系统网络接口配置为静态IP(避免DHCP动态分配导致IP变动,影响DNS解析稳定性)。
编辑网络接口配置文件(路径因系统而异,常见为/etc/sysconfig/network-scripts/ifcfg-ens33ens33为网卡名称,可通过ip addr命令查看):

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改以下内容(根据实际网络环境调整):

BOOTPROTO=static       # 关闭DHCP,改为静态IP
ONBOOT=yes             # 开机自动启用网卡
IPADDR=192.168.1.100   # 设置静态IP地址
NETMASK=255.255.255.0  # 子网掩码
GATEWAY=192.168.1.1    # 网关地址
DNS1=8.8.8.8           # 备用DNS(可选,用于自身解析外部域名)
DNS2=114.114.114.114   # 备用DNS(可选)

保存后重启网络服务使配置生效:

sudo systemctl restart network

2. 安装BIND软件包

通过系统包管理器安装BIND及相关工具(bind为核心服务,bind-utils提供nslookupdig等解析工具):

sudo yum install -y bind bind-utils

安装完成后,检查BIND服务状态:

sudo systemctl status named

若服务未启动,可使用sudo systemctl start named启动。

3. 配置BIND主配置文件

BIND的主配置文件为/etc/named.conf,需修改以下关键参数:

sudo vi /etc/named.conf
  • 设置监听地址:允许服务器监听所有网络接口(any)或指定IP(如192.168.1.100):
    listen-on port 53 { any; };
    
  • 允许查询范围:指定允许哪些客户端向服务器发送查询请求(如本地网络192.168.1.0/24localhost):
    allow-query { localhost; 192.168.1.0/24; };
    
  • 启用递归查询:允许服务器为客户端递归解析未知域名(生产环境建议限制为信任网络,避免滥用):
    recursion yes;
    

修改完成后保存,使用以下命令验证配置文件语法是否正确:

sudo named-checkconf

若无报错,则配置生效。

4. 配置DNS区域文件

DNS区域文件用于存储域名的解析记录(如A记录、MX记录等),需完成正向区域(域名→IP)和反向区域(IP→域名)的配置。

4.1 配置正向区域

编辑/etc/named.conf.local文件,添加自定义区域(以example.com为例):

sudo vi /etc/named.conf.local

添加以下内容:

zone "example.com" IN {
    type master;                  # 区域类型(master为主DNS服务器)
    file "/var/named/example.com.zone";  # 区域文件路径
    allow-update { none; };       # 禁止动态更新(生产环境建议开启TSIG认证)
};

创建正向区域文件/var/named/example.com.zone(需root权限):

sudo vi /var/named/example.com.zone

添加以下内容(根据实际情况修改SerialIP等参数):

$TTL 604800                   # 记录缓存时间(1周)
@       IN      SOA     ns1.example.com. admin.example.com. (  # SOA记录(Start of Authority)
    2025100501 ; Serial        # 序列号(每次修改区域文件需递增)
    604800 ; Refresh           # 刷新时间(主从服务器同步间隔)
    86400 ; Retry              # 重试时间(同步失败后的重试间隔)
    2419200 ; Expire           # 过期时间(从服务器无法同步后的过期时间)
    604800 ) ; Negative Cache TTL  # 负缓存时间(解析失败的缓存时间)

@       IN      NS      ns1.example.com.                     # NS记录(Name Server)
ns1     IN      A       192.168.1.100                          # A记录(域名→IP)
www     IN      A       192.168.1.101                          # A记录(www子域名→IP)

4.2 配置反向区域

反向区域用于将IP地址解析为域名,需创建反向区域文件(以1.168.192.in-addr.arpa为例,对应192.168.1.0/24网段):
编辑/etc/named.conf.local,添加反向区域配置:

zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "/var/named/1.168.192.in-addr.arpa.zone";
    allow-update { none; };
};

创建反向区域文件/var/named/1.168.192.in-addr.arpa.zone

sudo vi /var/named/1.168.192.in-addr.arpa.zone

添加以下内容(根据实际情况修改SerialIP等参数):

$TTL 604800
@       IN      SOA     ns1.example.com. admin.example.com. (
    2025100501 ; Serial
    604800 ; Refresh
    86400 ; Retry
    2419200 ; Expire
    604800 )

@       IN      NS      ns1.example.com.
100     IN      PTR     ns1.example.com.                       # PTR记录(IP→域名)
101     IN      PTR     www.example.com.                       # PTR记录(IP→域名)

5. 设置区域文件权限

BIND区域文件需属于named用户(BIND服务运行的用户),否则服务无法读取文件:

sudo chown root:named /var/named/example.com.zone
sudo chown root:named /var/named/1.168.192.in-addr.arpa.zone
sudo chmod 640 /var/named/example.com.zone
sudo chmod 640 /var/named/1.168.192.in-addr.arpa.zone

6. 启动并启用BIND服务

启动BIND服务并设置为开机自启动:

sudo systemctl start named
sudo systemctl enable named

检查服务状态:

sudo systemctl status named

若服务状态显示为active (running),则表示启动成功。

7. 配置防火墙允许DNS流量

DNS服务使用UDP 53端口(查询)和TCP 53端口(区域传输),需配置防火墙允许这些端口的流量:

sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload

8. 测试DNS解析

使用dignslookup命令测试DNS解析是否正常(需在另一台设备上配置DNS服务器IP为192.168.1.100):

# 测试正向解析(域名→IP)
dig @192.168.1.100 www.example.com
# 测试反向解析(IP→域名)
dig @192.168.1.100 -x 192.168.1.101

若返回结果中包含正确的解析记录(如www.example.com. 604800 IN A 192.168.1.101),则表示DNS服务配置成功。

注意事项

  • 生产环境中,需将allow-query限制为信任网络(如公司内网),避免开放给公网;
  • 定期备份区域文件(如/var/named/目录),防止数据丢失;
  • 若需配置从DNS服务器,需在主服务器的named.conf.local中添加allow-transfer指令,并在从服务器上配置区域文件同步。

0