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服务器上了!!!
Cemtos7.2内网搭建DNS服务器
192.168.1.204 DNS
192.168.1.202 nginx
(容器安装,docker安装就不赘述了)
为了方便,使用docker环境手动搭建DNS服务器,选择andyshinn/dnsmasq的docker镜像,2.75版本
查看是否创建成功
进入容器,以下内容均在容器内操作
创建代理文件并添加内容
添加解析规则
修改dnsmasq配置文件,指定使用上述两个我们自定义的配置文件
重启容器
(nginx安装不再赘述)
因为nginx要配置域名跳转,nginx要使用80端口,80端口只能使用root启动或者使用普通用户(非80端口,如9000)启动后通过端口转发将9000转发为80端口(需要开启防火墙)
配置文件/nginx/conf/nginx.conf中要包含
在/nginx/conf/conf.d目录下
jira.conf配置文件
wiki.conf配置文件
需要修改DNS配置更改为192.168.1.204 这个IP就可以了
如:win10修改DNS配置
右击wifi所在位置,选择“打开网络和‘Internet’设置”,后选择“网络和共享中心”
打开后找到连接的网络,点击网络,打开属性并将自动获取DNS修改为手动获取,如下,修改IP
点击wifi打开热点即可
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 , 或者,如下图:
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系统怎样安装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