CentOS 7.0配置DNS服务
安装BIND软件包
在CentOS 7.0中,使用yum命令来安装BIND(Berkeley Internet Name Domain)软件包及其相关工具,以root用户登录系统后,执行以下命令:
sudo yum install bind bindutils y
这将安装BIND主程序(bind)以及一些实用工具(如nslookup、dig等),用于后续的配置和测试。
配置BIND主配置文件
BIND的主配置文件是/etc/named.conf,使用文本编辑器(如vi或nano)打开该文件:
sudo vi /etc/named.conf
修改监听地址
找到options部分,将listenon port 53改为listenon port 53 { any; };,使DNS服务器监听所有网络接口的53端口。
options {
listenon port 53 { any; };
...
};
允许查询
将allowquery改为allowquery { any; };,允许任何客户端进行DNS查询。
options {
...
allowquery { any; };
...
};
其他可选设置
- 转发器(Forwarders):如果需要将无法解析的请求转发给上游DNS服务器,可以添加
forwarders指令,使用Google的公共DNS服务器:options { ... forwarders { 8.8.8.8; 8.8.4.4; }; ... }; - 递归查询:确保
recursion设置为yes,允许递归查询。options { ... recursion yes; ... };
配置正向解析区域
正向解析区域用于将域名解析为IP地址,需要在主配置文件中定义一个区域,然后创建一个区域文件来存储具体的记录。
定义正向解析区域
编辑/etc/named.rfc1912.zones文件,添加以下内容(以example.com为例):
zone "example.com" IN {
type master;
file "/var/named/zone.example.com";
allowupdate { none; };
};
创建区域文件
根据上一步定义的文件路径,创建并编辑/var/named/zone.example.com文件:
sudo vi /var/named/zone.example.com
$TTL 86400
@ IN SOA ns1.example.com. root.example.com. (
2025072201 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
@ IN NS ns1.example.com.
ns1 IN A yourdnsserverip
www IN A yourwebserverip
- $TTL:Time to Live,记录的存活时间。
- SOA记录:起始授权机构记录,包含区域的版本号(Serial)、刷新时间(Refresh)、重试时间(Retry)、过期时间(Expire)和最小TTL。
- NS记录:命名服务器记录,指定区域的权威DNS服务器。
- A记录:将主机名映射为IPv4地址。
配置反向解析区域(可选)
反向解析区域用于将IP地址解析为域名,如果需要反向解析,可以按照以下步骤操作。
定义反向解析区域
在/etc/named.rfc1912.zones文件中添加以下内容(以168.0为例):
zone "0.168.192.inaddr.arpa" {
type master;
file "/var/named/zone.192.168.0";
allowupdate { none; };
};
创建区域文件
创建并编辑/var/named/zone.192.168.0文件:
sudo vi /var/named/zone.192.168.0
$TTL 86400
@ IN SOA ns1.example.com. root.example.com. (
2025072201 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
@ IN NS ns1.example.com.
yourreverseip IN PTR ns1.example.com.
- PTR记录:将IP地址映射为域名。
启动和配置自动启动BIND服务
完成配置后,启动BIND服务并设置为开机自启:
sudo systemctl start named sudo systemctl enable named
检查服务状态
使用以下命令检查服务是否正常运行:
sudo systemctl status named
如果显示active (running),则表示服务已成功启动。
防火墙配置
如果系统启用了防火墙,需要允许DNS流量通过,执行以下命令:
sudo firewallcmd permanent addservice=dns sudo firewallcmd reload
这将开放UDP和TCP的53端口。
测试DNS配置
使用nslookup或dig命令测试DNS解析是否正常,测试www.example.com的解析:
nslookup www.example.com
如果配置正确,应该返回www.example.com对应的IP地址。
常见问题与解答
如何更改DNS服务器的监听地址?
在/etc/named.conf文件中,找到listenon port 53指令,并将其修改为listenon port 53 { any; };,使DNS服务器监听所有网络接口,如果需要限制监听地址,可以将any替换为具体的IP地址或接口名称(如0.0.1或eth0)。
如何设置DNS转发?
在/etc/named.conf文件的options部分,添加forwarders指令,指定上游DNS服务器的IP地址。
options {
...
forwarders { 8.8.8.8; 8.8.4.4; };
...
};
这将使本地DNS服务器无法解析的请求转发到指定的上游DNS服务器
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/230959.html