RedHat7安装DNS需执行
yum install bind*
,编辑/etc/named.conf,设置forwarders,执行systemctl restart named
,具体参考CSRedHat 7 安装与配置 DNS 服务详细指南
环境准备
系统要求
- 操作系统:RedHat 7 或 CentOS 7
- IP 地址:确保服务器有固定的静态 IP(如
168.1.100
) - 域名规划:提前规划好要解析的域名(如
example.com
)
网络配置
操作 | 命令 | 说明 |
---|---|---|
查看当前 IP | ip addr |
确认网卡配置 |
设置静态 IP | 编辑 /etc/sysconfig/networkscripts/ifcfgeth0 |
示例如下:BOOTPROTO=none ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 |
安装 DNS 服务
安装 BIND 软件包
yum install y bind bindutils
- bind:核心 DNS 服务程序
- bindutils:包含
dig
、nslookup
等测试工具
启动与设置开机自启
systemctl start named systemctl enable named
配置文件详解
DNS 的核心配置文件为 /etc/named.conf
,其结构如下:
配置项 | 作用 | 默认值 |
---|---|---|
options |
全局配置(如监听 IP、转发器) | listenon port 53 { 127.0.0.1; }; |
zone |
定义域名解析规则 | 需手动添加 |
修改主配置文件
编辑 /etc/named.conf
,修改以下内容:
options { + listenon port 53 { any; }; # 允许所有 IP 监听 + directory "/var/named"; # 区域文件存放路径 + allowquery { any; }; # 允许所有客户端查询 };
配置正向与反向解析
正向解析(如 example.com)
在 /var/named/
目录下创建 example.com.zone
文件:
$TTL 86400 ; 生存时间(秒) @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; 序列号 3600 ; 刷新时间 1800 ; 重试时间 1200 ; 过期时间 86400 ) ; 最小 TTL @ IN NS ns1.example.com. @ IN A 192.168.1.100 www IN A 192.168.1.100
反向解析(如 192.168.1.x)
创建 168.192.inaddr.arpa.zone
文件:
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; 序列号 3600 ; 刷新时间 1800 ; 重试时间 1200 ; 过期时间 86400 ) ; 最小 TTL @ IN NS ns1.example.com. 100 IN PTR ns1.example.com.
关联配置文件
在 /etc/named.conf
中添加:
zone "example.com" IN { type master; file "example.com.zone"; }; zone "1.168.192.inaddr.arpa" IN { type master; file "1.168.192.inaddr.arpa.zone"; };
启动与测试
检查配置合法性
namedcheckconf /etc/named.conf namedcheckzone example.com.zone
重启服务
systemctl restart named
测试解析
正向解析测试
dig www.example.com # 预期输出: # ;; ANSWER SECTION: # www.example.com IN A 192.168.1.100
反向解析测试
dig x 192.168.1.100 # 预期输出: # ;; ANSWER SECTION: # 100.1.168.192.inaddr.arpa. IN PTR ns1.example.com.
常见问题与解决方案
问题现象 | 原因分析 | 解决方案 |
---|---|---|
dig 命令无响应 |
防火墙未开放端口 53 | firewallcmd permanent addservice=dns; firewallcmd reload |
解析结果不正确 | 区域文件配置错误 | 检查 SOA 记录、NS 记录和 PTR/A 记录 |
客户端无法访问 | allowquery 限制过严 |
在 named.conf 中设置 allowquery { any; } |
相关问题与解答
Q1:如何设置 DNS 缓存以提升解析效率?
A1:
在 named.conf
的 options
部分添加:
forwarders { 114.114.114.114; 8.8.8.8; }; # 使用公共 DNS 作为上游服务器
此配置会让本地 DNS 服务器先查询转发器,缓存结果后加速后续解析。
Q2:如何通过 Web 界面管理 DNS?
A2:
可安装 dnssecworkbench
或 Webmin
:
yum install dnssecworkbench # 图形化工具,支持可视化编辑区域文件 yum install webmin # 综合管理系统,含 DNS 模块
通过浏览器访问 https://服务器IP:端口
即可进行图形化