Centos8.0搭建DNS服务

什么是DNS

【浏览网页原理】
当我们日常上网的时候,打开网页的本质就是我们从对方服务器获取文件;比如我们在浏览的淘宝网页,就存储在淘宝的服务器上;我们通过淘宝服务器客户端,获取到了这些数据,并下载到电脑或手机的缓存当中,然后电脑或手机再把他们显示到屏幕上。

浏览网页的本质,就是下载文件,并将下载的文件转化成我们所能看到的图像

【域名与IP的关系】
当我们需要浏览网页的时候,就需要在整个互联网中找到对方的电脑,那就需要知道对方的IP地址才能访问到。但在整个互联网中,记各种各样的IP地址跟背英语单词一样,太过麻烦。而域名可以自定义比较通俗以记;于是就有了DNS解析服务器,它就相当于一个电话本,记录着各种各样的域名与IP的对应关系。

【什么是DNS劫持?】
就是DNS服务器会告诉我们域名A的IP地址是A,域名B的IP地址是B;如果我们在DNS服务器上把域名A的IP地址改成B,那我们访问域名A就不再是访问A网站了,而是去访问B网站。
有时候我们浏览器访问百度网页的时候,出现的不是百度的页面,而是一些赌博,色情等页面的时候,就是可能我们的电脑中病毒,木马等修改了我们系统的DNS服务器地址,使我们访问不到我们想访问的网页

DNS域名解析服务

centos中相关dns的配置文件

  • cat /etc/hosts
[root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

/etc/hosts文件:是用来配置本地域名解析的文件
格式:IP地址 域名
  • cat /etc/resolv.conf
[root@localhost ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 114.114.114.114
nameserver 223.5.5.5

/etc/resolv.conf:用来配置dns服务器的地址
格式:namesever IP地址

一般dns服务器地址最好写两个,防止突然只有一个的dns服务器坏了或维护
  • 系统查找顺序
/etc/hosts ---> /etc/resolv.conf
先在本地文件进行查找,如果没有对应的IP或域名,再通过/etc/resolv.conf里的dns服务器进行查找

dnsmasq搭建(轻量级dns服务)

dnsmasq安装

[root@localhost ~]# dnf install -y dnsmasq

dnsmasq主要文件

主配置文件
/etc/dnsmasq.conf
内部需要解析的ip和域名(需自己创建)
/etc/dnsmasq.hosts
dnsmasq的上游dns服务器(需自己创建)
/etc/resolv.dnsmasq.conf

修改主配置文件

[root@localhost ~]# grep -Ev '^#|^$' /etc/dnsmasq.conf  # 查找注释和空行以外的内容
resolv-file=/etc/resolv.dnsmasq.conf  #定义从哪里获取上游dns服务器地址
address=/baidu.com/123.123.123.123    #访问baidu.com所有域名都会被解析成123.123.123.123
listen-address=192.168.100.200        #定义dnsmasq监听的地址,默认是监控本机的所有网卡上
addn-hosts=/etc/dnsmasq.hosts         #本地域名配置文件,添加内部需要解析的域名和地址
log-queries                           #记录dns查询日志服务器
log-facility=/var/log/dnsmasq.log     #设置日志记录
conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig #包含其文件夹下的所有配置文件

内部地址解析配置

[root@localhost ~]# cat /etc/dnsmasq.hosts 
192.168.100.200 www.qhj.com

添加上游dns服务器地址

[root@localhost ~]# cat /etc/resolv.dnsmasq.conf
nameserver 114.114.114.114
nameserver 223.5.5.5

配置日志切割

[root@localhost ~]# cat /etc/logrotate.d/dnsmasq 
/var/log/dnsmasq.log{
	daily
	copytruncate
	missingok
	rotate 30
	compress
	notifempty
	dateext
	size 200M
}

启动dnsmasq服务并配置开机自启

[root@localhost ~]# systemctl start dnsmasq && systemctl enable dnsmasq
Created symlink from /etc/systemd/system/multi-user.target.wants/dnsmasq.service to /usr/lib/systemd/system/dnsmasq.service.

配置dns客户端地址

[root@localhost ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.100.200

测试dns域名解析

可以通过ping命令或nslookup或dig测试
如果使用nslookup和dig命令需进行安装:yum install -y bind-utils

测试:
[root@localhost ~]# nslookup 
> www.baidu.com
Server:		192.168.100.200
Address:	192.168.100.200#53

Name:	www.baidu.com
Address: 123.123.123.123
> www.qhj.com
Server:		192.168.100.200
Address:	192.168.100.200#53

Name:	www.qhj.com
Address: 192.168.100.200
Name:	www.qhj.com
Address: 2a05:d014:9da:8c10:306e:3e07:a16f:a552
> aa.baidu.com
Server:		192.168.100.200
Address:	192.168.100.200#53

Name:	aa.baidu.com
Address: 123.123.123.123
> 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS 7上搭建DNS服务器,你可以按照以下步骤进行操作: 1. 安装BIND软件包: 在终端中执行以下命令来安装BIND软件包: ``` sudo yum install bind bind-utils ``` 2. 配置主配置文件: 编辑`/etc/named.conf`文件,该文件是BIND的主配置文件。你可以使用任何文本编辑器打开该文件,并进行以下配置: ```bash options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; }; zone "example.com" IN { type master; file "/var/named/example.com.zone"; allow-update { none; }; }; ``` 这里使用了一个名为"example.com"的示例域名,你可以根据需要修改为你自己的域名。 3. 创建区域文件: 创建一个区域文件来存储DNS记录。在终端中执行以下命令来创建该文件: ```bash sudo nano /var/named/example.com.zone ``` 在打开的文件中,添加以下示例配置: ```bash $TTL 86400 @ IN SOA ns1.example.com. root.example.com. ( 2018010101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum @ IN NS ns1.example.com. @ IN A 192.168.1.100 ns1 IN A 192.168.1.100 www IN A 192.168.1.101 ``` 4. 设置文件权限和SELinux策略: 执行以下命令来设置文件权限: ```bash sudo chown named:named /var/named/example.com.zone ``` 执行以下命令来设置SELinux策略: ```bash sudo restorecon -v /var/named/example.com.zone ``` 5. 启动和配置BIND服务: 启动BIND服务并将其设置为开机自启动: ```bash sudo systemctl enable named sudo systemctl start named ``` 6. 配置防火墙规则: 如果系统上启用了防火墙,你需要打开DNS服务器的相关端口。执行以下命令来配置防火墙规则: ```bash sudo firewall-cmd --permanent --add-service=dns sudo firewall-cmd --reload ``` 现在,你已经在CentOS 7上成功搭建DNS服务器。你可以根据自己的需求添加更多的记录到区域文件中,并在客户端上配置DNS服务器地址来使用它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值