搭建DNS服务器实现地址解析

我们平时在windows或者linux上访问网页都是通过网址,也就是域名来访问的,但是数据包的传送是通过IP进行传输的,那么为什么我们能通过网址访问到某个网页呢? 这是因为在访问过程中DNS服务器通过域名解析,把网址解析成IP,我们才会访问到想要访问的网页

下面我们来学习DNS服务器的搭建

[root@server Desktop]# ping 183.232.231.173   # ping百度的ip可以ping通

在这里插入图片描述

[root@server Desktop]# ping www.baidu.com    # 但是百度的域名ping 不通,是因为没有作域名解析

在这里插入图片描述

# DNS(提供域名解析功能)就派上用场了

[root@server Desktop]# vim /etc/hosts  # 本地解析文件,不用重启服务,即改即生效  
	6 183.232.231.173  www.baidu.com
[root@server Desktop]# ping www.baidu.com    # 此时就可以通过ping域名来ping通baidu

在这里插入图片描述

# 但是,每个网址的域名都需要自己告诉系统,这样太麻烦了,我们可以通过编写/etc/resolv.conf来通过搭建DNS服务器,让DNS服务器为我们实现域名解析

[root@server Desktop]# vim /etc/resolv.conf    # 指定dns做网络解析 
 2 nameserver 114.114.114.114    # 114.114.114.114是电信的域名地址
[root@server Desktop]# ping www.taobao.com   #我们没有做本地解析,直接ping淘宝的域名就可以ping通

在这里插入图片描述

# 那么问题来了,/etc/hosts  和 /etc/resolv.conf这两个文件的优先级,哪一个更高呢?
默认/etc/hosts的优先级高,但是这个优先级可以更改

[root@server Desktop]# vim /etc/hosts 
	6 172.25.254.254  www.baidu.com   # 自定义一个解析
[root@server Desktop]# ping www.baidu.com   # 读取的是/etc/hosts文件里的解析

在这里插入图片描述

[root@server Desktop]# vim /etc/nsswitch.conf  # 本地解析文件和dns读取的优先级调整 
	39 hosts:      dns  files    # 修改优先级,files代表本地解析文件,dns代表dns服务器,哪个在前面哪个优先 	
[root@server Desktop]# ping www.baidu.com   # 这时先读取的就是/etc/resolv.conf文件

在这里插入图片描述

# 如何设定使/etc/resolv.conf文件的解析不会随着ip的改变而更改

[root@server network-scripts]# vim ifcfg-eth0   # 把ip改为动态 
 1 DEVICE=eth0  
 2 BOOTPROTO=dhcp  
 3 ONBOOT=yes  
 4 IPADDR0=192.168.0.242  
 5 NETMASK=255.255.255.0  
 6 GATEWAY0=192.168.0.142
[root@server network-scripts]# systemctl restart network
[root@server network-scripts]# cat /etc/resolv.conf 
	# Generated by NetworkManagerdomain example.comsearch example.com
	nameserver 172.25.254.254    # 之前文件中做的解析就会被替换	
[root@server network-scripts]# vim ifcfg-eth0   # 即使在文件中给定DNS也不会生效  
	1 DEVICE=eth0  
	2 BOOTPROTO=dhcp  
	3 ONBOOT=yes  
	4 IPADDR0=192.168.0.242  
	5 NETMASK=255.255.255.0  
	6 GATEWAY0=192.168.0.142  
	7 DNS1=114.114.114.114
[root@server network-scripts]# systemctl restart network
[root@server network-scripts]# cat /etc/resolv.conf  # 有两个解析,第一个是动态获取到的,先生效	

在这里插入图片描述

#那么如何解决这个问题呢?

[root@server network-scripts]# vim ifcfg-eth0 
 1 DEVICE=eth0  
 2 BOOTPROTO=dhcp  
 3 ONBOOT=yes  
 4 IPADDR0=192.168.0.242  
 5 NETMASK=255.255.255.0  
 6 GATEWAY0=192.168.0.142  
 7 PEERDNS=no
[root@server network-scripts]# systemctl restart network
[root@server network-scripts]# cat /etc/resolv.conf  # 不会消失,也不会被替换

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wzt888_/article/details/83278695