CentOS系统怎样安装DNS服务器
CentOS系统安装DNS服务器方法
DNS 安装配置
在 RHEL5、6 中 DNS 都是用的是 bind 软件包,而在 RHEL/CentOS 7 用的是 unbound 安装包,配置文件也有了改变。我们来看一下:
2.1.安装:
代码如下:
[root@linuxprobe ~]# yum -y install unboundLoaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Resolving Dependencies
--- Running transaction check
--- Package unbound.x86_64 0:1.4.20-19.el7 will be installed
--- Finished Dependency Resolution
·····
启动服务
代码如下:
[root@linuxprobe ~]# systemctl restart unbound //启动DNS服务 [root@linuxprobe ~]# systemctl enable unboundln -s ‘/usr/lib/systemd/system/unbound.service‘ ‘/etc/systemd/system/multi-user.target.wants/unbound.service‘
//下次系统重启自动启动DNS服务
2.2.修改配置文件
unbound 安装好之后,缺省配置文件在 /etc/unbound/unbound.conf。
2.2.1.修改端口监听地址
相当于 RHEL6 配置文件中的:listen-on port 53 { any; };
查看默认监听地址
代码如下:
[root@linuxprobe ~]# netstat -tunlp |grep unboundtcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3333/unbound
tcp 0 0 127.0.0.1:8953 0.0.0.0:* LISTEN 3333/unbound
tcp6 0 0 ::1:53 :::* LISTEN 3333/unbound
tcp6 0 0 ::1:8953 :::* LISTEN 3333/unbound
udp 0 0 127.0.0.1:53 0.0.0.0:* 3333/unbound
udp6 0 0 ::1:53 :::* 3333/unbound
//默认监听本地回环地址,也就是现在只有自己能访问DNS服务,其它主机不能访问本机的DNS服务
修改监听地址代码如下:
[root@linuxprobe ~]# vim /etc/unbound/unbound.conf……
38 # interface: 0.0.0.0
39 interface: 0.0.0.0
……
//找到38行,复制去掉注释行,打开监听全网功能。
重启服务查看
代码如下:
[root@linuxprobe ~]# systemctl restart unbound [root@linuxprobe ~]# netstat -tunlp |grep unboundtcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 3461/unbound
tcp 0 0 127.0.0.1:8953 0.0.0.0:* LISTEN 3461/unbound
tcp6 0 0 ::1:8953 :::* LISTEN 3461/unbound
udp 0 0 0.0.0.0:53 0.0.0.0:* 3461/unbound
//现在53号端口监听的是0.0.0.0,即所有网段都监听。
2.2.2.修改允许查询的范围
在 RHEL6 中,DNS 配置文件中有这样一句:allow-query { localhost; };。此句定义的是允许向本机查询(迭代 递归)的主机范围,localhost 代表只有本机可以向本机查询。而在配置中,经常改 localhost 为 any,让所有主机能够向本机查询 DNS。所以,在 RHEL7 中,也要做这样的修改,只不过修改内容不同而已,如下:
代码如下:
[root@linuxprobe ~]# vim /etc/unbound/unbound.conf……
177 # access-control: 0.0.0.0/0 refuse
178 access-control: 0.0.0.0/0 allow
179 # access-control: 127.0.0.0/8 allow
……
找到配置文件/etc/unbound/unbound.conf的第177行,缺省为注释行,把内容改为允许访问,然后保存退出,重启服务即可。
2.2.3.创建解析文件
RHEL/CentOS 5、6系统中,DNS 的解析文件分正向和反向两个解析文件,并且有解析文件的模板文件。但是在 RHEL7中,正反向解析文件合并为一个,并且无模板文件,需自己创建,路径可以在主配置文件中查看:
代码如下:
[root@linuxprobe ~]# vim /etc/unbound/unbound.conf……
453 # You can add locally served data with
454 # local-zone: \"local.\" static
455 # local-data: \"mycomputer.local. IN A 192.0.2.51\"
//正向解析可参考语法
456 # local-data: ‘mytext.local TXT \"content of text record\"‘
457 #
458 # You can override certain queries with
459 # local-data: \"adserver.example.com A 127.0.0.1\"
460 #
461 # You can redirect a domain to a fixed address with
462 # (this makes example.com, , etc, all go to 192.0.2.3)
463 # local-zone: \"example.com\" redirect
464 # local-data: \"example.com A 192.0.2.3\"
465 #
# Shorthand to make PTR records, \"IPv4 name\" or \"IPv6 name\".
467 # You can also add PTR records using local-data directly, but then
468 # you need to do the reverse notation yourself.
469 # local-data-ptr: \"192.0.2.3 \"
//反向解析参考语法
470
471 include: /etc/unbound/local.d/*.conf
472
473 # service clients over SSL (on the TCP sockets), with plain DNS inside
……
查看本机FQDN
代码如下:
[root@linuxprobe ~]# hostnamelinuxprobe.example.com
//由此可知,域名为example.com
创建解析文件代码如下:
[root@linuxprobe ~]# vim /etc/unbound/local.d/example.conflocal-zone: \"example.com.\" static
local-data: \"example.com. 86400 IN SOA ns.example.com. root 1 1D 1H 1W 1H\"
local-data: \"ns.example.com. IN A 192.168.10.10\"
local-data: \"linuxprobe.example.com. IN A 192.168.10.10\"
local-data-ptr: \"192.168.10.10 ns.example.com.\"
local-data-ptr: \"192.168.10.10 linuxprobe.example.com.\"
查看RHEL6上解析文件以作对比
代码如下:
[root@linuxprobe ~]# vim /var/named/named.localhost$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
2.3.禁用服务用户
每个服务都是有其专用的服务用户,DNS 的服务用户为 unbound,实际情况下服务用户的启用有可能有安全隐患,这里要禁用服务用户。
代码如下:
[root@linuxprobe ~]# vim /etc/unbound/unbound.conf······
211 # if given, user privileges are dropped (after binding port),
212 # and the given username is assumed. Default is user \"unbound\".
213 # If you give \"\" no privileges are dropped.
214 #username: \"unbound\"
215 username: \" \"
216
217 # the working directory. The relative files in this config
······
如上,找到配置文件的第214行,删除unbound即可,删除后为:username ” “。
2.4.验证
代码如下:
[root@linuxprobe ~]# unbound-checkconfunbound-checkconf: no errors in /etc/unbound/unbound.conf
验证无配置问题,即可重启服务
复制代码代码如下:
[root@linuxprobe ~]# systemctl restart unbounddns验证:
修改本机DNS
代码如下:
[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0HWADDR=00:0C:29:70:····
TYPE=Ethernet
····
IPADDR=\"192.168.10.10\"
PREFIX=\"24\"
···
DNS1=192.168.10.10
NAME=eth0
ONBOOT=no
[root@linuxprobe ~]# systemctl restart networknslookup验证
代码如下:
[root@linuxprobe ~]# nslookuplinuxprobe.example.com.
192.168.10.10
ok dns设置成功
PS:关闭防火墙
在本次实验中我们关闭了 linux 的3大防火墙。当没有关闭防火墙时,远程主机验证可能出现故障,这时需要在 DNS 服务器防火墙上开放 DNS 服务。我们以 firewall 防火墙为例,修改一下:
代码如下:
[root@linuxprobe ~]# systemctl stop iptables [root@linuxprobe ~]# systemctl stop ebtables [root@linuxprobe ~]# systemctl disable iptables [root@linuxprobe ~]# systemctl disable ebtables [root@linuxprobe ~]# firewall-cmd --add-service=dns --permanentsuccess
[root@linuxprobe ~]# firewall-cmd --reloadsuccess
[root@linuxprobe ~]# firewall-cmd --list-allpublic (default, active)
interfaces: eth0
sources:
services: dhcpv6-client dns ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
//DNS服务器上Firewall开放DNS访问ok
如何搭建DNS服务器?
搭建DNS服务器步骤如下:
1、安装bind服务 。
2、配置bind的主配置文件,将侦听53端口和dns请求查询设置为所有主机 。
3、配置区域文件,添加自己的域名,定义正向解析和反向解析信息 。
4、进入/var/named/目录,创建正向解析配置文件和反向解析配置文件。
5、修改正向解析配置文件,添加解析记录。
6、修改反向解析配置文件,添加反向解析记录。
7、防火墙允许53端口通过,设置服务器开机自动启动dns服务。
8、dns服务器将本机ip设置为dns地址 。
9、配置完成验证解析记录正常。
Centos7搭建DNS服务器
Centos7搭建DNS服务器 ,位WEB服务器提供域名解析
1.关闭防火墙
systemctl stop firewalld
2.配置IP地址 启动网络服务
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl start network
ifconfig
3.挂载系统镜像
mount /dev/cdrom /mnt/
4.编辑yum环境
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/yum.repo
5.使用yum安装bind软件包
yum -y install bind
5.1 查看是否将bind软件包安装成功
rpm -qa bind
5.2 编辑dns配置文件
vim /etc/named.conf
named-checkconf /etc/named.conf
vim /var/named/huizhong.com.zone
named-checkzone huizhong.com /var/named/huizhong.com.zone
vim /var/named/huizhong.com.zone
named-checkzone huizhong.com /var/named/huizhong.com.zone
6.启动dns服务
systemctl start named
6.1查看dns运行状态
systemctl status named
6.3 查看dns网络连接情况
netstat -anpt | grep named
netstat -anpu | grep named
CentOS 7 下,如何设置DNS服务器
在CentOS 7下,手工设置 /etc/resolv.conf 里的DNS,过了一会,发现被系统重新覆盖或者清除了。和CentOS 6下的设置DNS方法不同,有几种方式: 1、使用全新的命令行工具 nmcli 来设置
#显示当前网络连接
#nmcli connection show
NAME UUID TYPE DEVICE
eno1 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eno1
#修改当前网络连接对应的DNS服务器,这里的网络连接可以用名称或者UUID来标识
#nmcli con mod eno1 ipv4.dns \"114.114.114.114 8.8.8.8\"
#将dns配置生效
#nmcli con up eno1
2、使用传统方法,手工修改 /etc/resolv.conf
修改 /etc/NetworkManager/NetworkManager.conf 文件,在main部分添加 “dns=none” 选项:[main]
plugins=ifcfg-rh
dns=noneNetworkManager重新装载上面修改的配置# systemctl restart NetworkManager.service手工修改 /etc/resolv.confnameserver 114.114.114.114
nameserver 8.8.8.8
详细参见:
# man NetworkManager.conf
# man nmcli
Centos7建主辅dns服务器
要求提供域xx.com域名解析(xx为你的姓名的拼音),该域有www和news两台主机,对应地址分别是10.10.10.1和,此基础上主辅同步,辅助服务器上获取数据即可
主dns和辅dns虚拟机都使用 yum -y install bind
要确保防火墙是关闭的
vim /etc/named.conf
将主配置文件修改为如上图所示。保存并退出
进入named目录下,将模板文件复制并修改名字为wangjing.com.zone ,注意-p选项
vim wangjing.com.zone 保存并退出
绿色光标的位置要加小数点,这里截图的时候没有加上
systemctl start named 启动dns服务 并vim /etc/resolv.conf 修改解析文件
保存并退出。
这里分别nslookup 和news.wangjing.com
可以看到我们在配置文件设置的内容都已经生效,接下来要做的就是让辅助dns服务器生效!
进入到另一台虚拟机设置辅助dns
vim /etc/named.conf
按照上图的内容修改,保存并退出
注意:主dns的ip地址后面要加;分好,我就是没有加导致服务启动不起来。
启动named服务 systemctl start named
cd到var下的named目录下,ls一下slaves文件夹的信息
可以看到wangjing.com.zone已经同步到辅dns服务器上了!!!
CentOS7 搭建 DNS 域名解析服务器
[TOC]主要参考知识
centOS7下DNS服务器的安装与配置 - csdn - 主要参考
CentOS7.3使用BIND配置DNS服务器(一) - csdn - 主要参考
四、bind(named)配置文件 - csdn
Linux系统下搭建DNS服务器——DNS原理总结 - csdn - 从概念层面看 DNS 解析
DNS正反向解析库配置篇(一) - csdn - 正反向解析文件配置
DNS配置详解 BIND实现正向解析和反向解析 - cnblog - 正反向解析文件配置
DNS域名解析服务--Named服务 - 说明详细
搭建DNS服务器 - - 域名解析文件配置说明
Linux中DNS配置 - csdn - 配置文件语法检查用的比较好
linux中dns服务器的搭建 - csdn - nslookup 使用的比较好
其他扩展知识
反向域名解析有什么功能? - 百度百科
Centos7/RHEL7中的ifconfig、netstat、route几个常用指令被替代 - csdn
运维小技巧:使用ss命令代替 netstat,和netstat说再见 - csdn
Linux安装nslookup - csdn
如图:
修改前先备份: cp -p /etc/named.conf /etc/named.conf.bak // 参数-p表示备份文件与源文件的属性一致。
修改配置: vi /etc/named.conf , 配置内容如下:
检查一波
添加配置: vi /etc/named.rfc1912.zones , 配置内容如下:
基于 name.localhost 模板,创建配置文件: cp -p /var/named/named.localhost /var/named/named.reading.zt
配置正向域名解析文件 named.reading.zt : vi /var/named/named.reading.zt ,配置内容如下:
说明:
授权 named 用户 chown :named /var/named/named.reading.zt
检查区域文件是否正确 named-checkzone \"reading.zt\" \"/var/named/named.reading.zt\" ,如图:
基于 name.localhost 模板,创建配置文件: cp -p /var/named/named.localhost /var/named/named.192.168.0
配置反向域名解析文件 named.192.168.0 : vi /var/named/named.192.168.0
授权 named 用户 chown :named /var/named/named.192.168.0
检查区域文件是否正确 named-checkzone \"0.168.192.in-addr.arpa\" \"/var/named/named.192.168.0\" ,如图:
重启 named 服务,让配置生效 systemctl restart named
配置 ifcfg-xxxx vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 , 具体内容如下:
如图:
重启网络服务,让配置生效 systemctl restart network.service
bind-utils 软件包本身提供了测试工具 nslookup
nslookup test.reading.zt , 或者,如下图:
nslookup 192.168.0.232 , 或者,如下图: