什么是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
>