DNS 服务器

发布于:2025-08-07 ⋅ 阅读:(14) ⋅ 点赞:(0)

以下命令是一套完整的DNS 服务器搭建和验证流程,就像在网络里搭建了一套 "私人通讯录系统",让设备之间能通过域名(比如student)互相找到

一、搭建 DNS 服务器(服务器端操作)

 # 安装 DNS 工具
 -作用:装两个核心工具。
 -bind:是 DNS 服务器的 “大脑”,负责解析域名(相当于地址簿本体)。
 -bind-utils:是客户端工具(比如查域名的dig命令,相当于查地址的小字典)
 ​
 [root@server ~ 13:25:31]# yum install -y bind bind-utils
 ​
 #配置 DNS 服务器的 "服务规则"
 [root@server ~ 14:33:36]# vim /etc/named.conf
 =======================================================================
 #编辑vim,添加1
 listen-on port 53 { 127.0.0.1;10.1.8.10; };
 → 规定 DNS 服务器只在本机(127.0.0.1)和自己的 IP(10.1.8.10)上提供服务(相当于 "只在自家门口挂通讯录")
 allow-query { localhost;10.1.8.0/24; };
 → 只允许本机和 10.1.8.x 网段的设备来查(相当于 "只允许邻居查我的通讯录")
 =======================================================================
 #添加2
 zone "lovyk.online" IN{
         type master;
         file "lovyk.online.zone";
 };
 zone "8.1.10.in-addr.arpa" IN {
         type master;
         file "10.1.8.zone";
 };
 ​
 --添加的 "zone 配置" 相当于创建通讯录分类:
 zone "lovyk.online" ...:正向通讯录(域名→IP,比如www.lovyk.online→10.1.8.200)
 zone "8.1.10.in-addr.arpa" ...:反向通讯录(IP→域名,比如10.1.8.11→client.lovyk.online)
 =======================================================================
 ​
 #新开一个server输入
 [root@server ~ 13:25:34]# cd /var/named
 ​
 # 新建两个空白通讯录(正向和反向)
 [root@server named 15:04:39]# touch lovyk.online.zone 10.1.8.zone
 -类比:拿两个新本子,一个记 "人名→住址",一个记 "住址→人名"
 ​
 # 权限:root可改,DNS服务可读,其他人不能碰
 [root@server named 15:04:53]# chmod 640 lovyk.online.zone 10.1.8.zone
 ​
 # 归属:root所有,给DNS服务(named用户组)访问权限
 [root@server named 15:05:04]# chown root:named lovyk.online.zone 10.1.8.zone
 ​
 # 查看权限是否设置正确
 [root@server named 15:05:19]# ll lovyk.online.zone 10.1.8.zone
 -rw-r----- 1 root named 0 8月   6 15:04 10.1.8.zone
 -rw-r----- 1 root named 0 8月   6 15:04 lovyk.online.zone
 ​
 #填写 "正向通讯录"(lovyk.online.zone)
 [root@server named 15:10:54]# vim /var/named/lovyk.online.zone
 =======================================================================
 $TTL 3600
 @ IN SOA dns.lovyk.online. root.lovyk.online. (
     42 ; serial
     3H ; secondary refresh
     15M ; secondary retry
     1W ; secondary timeout
     15M ; minimum cache TTL for negative answers
 )
                IN NS dns.lovyk.online.
 dns            IN A 10.1.8.10
 server         IN A 10.1.8.10
 student        IN CNAME client.lovyk.online.
 client         IN A 10.1.8.11
 www         30 IN A 10.1.8.200
 @              IN MX 10 mail.lovyk.online.
 mail           IN A 10.1.8.253
 ​
 里面的内容是具体的 "域名→IP" 对应关系,比如:
 ​
 dns IN A 10.1.8.10 → dns.lovyk.online对应 IP10.1.8.10(DNS 服务器自己)
 student IN CNAME client.lovyk.online. → student是client.lovyk.online的别名(相当于 "小明"= "王晓明")
 www 30 IN A 10.1.8.200 → www.lovyk.online对应 IP10.1.8.200,记录 30 秒后过期(需要重新查)
 @ IN MX 10 mail.lovyk.online. → 邮件服务器是mail.lovyk.online(相当于 "lovyk.online 的快递寄到 mail 这个地址")
 =======================================================================
 ​
 #填写 "反向通讯录"(10.1.8.zone)
 [root@server named 15:13:25]# vim /var/named/10.1.8.zone
 =======================================================================
 $TTL 3600
 @ IN SOA dns.lovyk.onliSne. root.lovyk.online. (
     42 ; serial
     3H ; secondary refresh
     15M ; secondary retry
     1W ; secondary timeout
     15M ; minimum cache TTL for negative answers
 )
                IN NS dns.lovyk.online.
 10             IN PTR server.lovyk.online.
 10             IN PTR dns.lovyk.online.
 11             IN PTR client.lovyk.online.
 11             IN PTR student.lovyk.online.
 200            IN PTR www.lovyk.online.
 253            IN PTR mail.lovyk.online.
 ​
 里面是 "IP→域名" 的对应关系,比如:
 ​
 10 IN PTR server.lovyk.online. → IP10.1.8.10对应域名server.lovyk.online
 11 IN PTR client.lovyk.online. → IP10.1.8.11对应域名client.lovyk.online
 (注意:这里原配置有个笔误dns.lovyk.onliSne.,实际使用时需要改对)
 =======================================================================

二、服务器和客户端改名(让名字和通讯录一致)

 #server端 改名和域名一致
 [root@server named 15:20:48]# hostnamectl set-hostname server.lovyk.online
 ​
 # 查看服务器自己的DNS配置
 [root@server named 15:33:44]# cat /etc/resolv.conf
 # Generated by NetworkManager
 search lovyk.online
 nameserver 223.5.5.5
 nameserver 223.6.6.6
 ​
 -结果显示服务器用公共 DNS(223.5.5.5),不影响客户端使用我们搭建的 DNS
 ​
 #client端 改名和域名一致
 [root@client ~ 15:35:33]# hostnamectl set-hostname client.lovyk.online
 ​
 [root@client ~ 15:36:01]# cat /etc/resolv.conf
 # Generated by NetworkManager
 search lovyk.online
 nameserver 10.1.8.10
 -作用:客户端最终改名为client.lovyk.online,和通讯录里的client IN A 10.1.8.11对应

三、客户端配置 DNS(指定用我们的通讯录)

 [root@server named 15:20:32]# systemctl status named
 ​
 #删除多余的网络连接1
 [root@client ~ 15:47:35]# nmcli connection delete 04c7e0b9-f265-361a-a91c-7e37f6c4f527 
 成功删除连接 "有线连接 1" (04c7e0b9-f265-361a-a91c-7e37f6c4f527)。
 ​
 -作用:nmcli是网络管理工具,删除无用的旧连接(比如 "有线连接 1"、"ens36-dhcp"),避免干扰新配置
 -类比:删掉手机里没用的旧 WiFi,只留当前要用的
 ​
 #删除多余的网络连接2
 [root@client ~ 15:30:07]# nmcli connection delete ens36-dhcp
 成功删除连接 "ens36-dhcp" (60dc4082-2cc5-4141-89e8-ee22adfc1613)。
 ​
 #配置客户端优先用我们的 DNS 服务器
 [root@client ~ 15:30:27]# nmcli connection modify ens33 ipv4.dns 10.1.8.10
 ​
 [root@client ~ 15:30:54]# nmcli connection up ens33
 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
 ​
 -作用:让客户端查域名时,优先用我们搭建的 DNS 服务器(10.1.8.10),而不是公共 DNS
 -类比:告诉手机 "查名字时先看我家的通讯录,别用外面的"
 ​
 #确认 DNS 配置生效
 [root@client ~ 15:48:09]# cat /etc/resolv.conf 
 # Generated by NetworkManager
 search lovyk.online
 nameserver 10.1.8.10
 ​
 -结果显示nameserver 10.1.8.10,说明客户端已正确使用我们的 DNS 服务器
 ​
 ​
 #测试 DNS 是否生效(验证通讯录能用)
 [root@client ~ 15:48:17]# ping student
 PING client.lovyk.online (10.1.8.11) 56(84) bytes of data.
 64 bytes from client.lovyk.online (10.1.8.11): icmp_seq=1 ttl=64 time=0.010 ms
 64 bytes from client.lovyk.online (10.1.8.11): icmp_seq=2 ttl=64 time=0.028 ms
 64 bytes from client.lovyk.online (10.1.8.11): icmp_seq=3 ttl=64 time=0.050 ms
 ^C
 --- client.lovyk.online ping statistics ---
 3 packets transmitted, 3 received, 0% packet loss, time 2015ms
 rtt min/avg/max/mdev = 0.010/0.029/0.050/0.016 ms
 ​

案例

  • 这些命令是一套搭建个人网站并通过域名访问的完整流程,就像在互联网上 “租了个店铺并挂上牌匾”,让别人能通过你的域名找到网站。下面用 “开网店” 的类比来解释

 #一、准备工作:给网站 “租个位置” 并 “挂上牌匾”
 ​
 #前提有一个个人的域名--lovyk.online
 #添加记录
 #记录类型 -A
 #主机记录 -www
 ​
 #二、登录服务器:进入 “店铺后台”
 #登录
 [root@server ~ 15:45:24]# ssh kiosk@www.lovyk.online -p 10022
 -作用:通过 ssh 远程登录到 www.lovyk.online 对应的服务器(相当于 “用钥匙打开店铺后台的门”)。
 -kiosk 是登录用户名(临时访客账号);
 - -p 10022 是指定端口(相当于 “店铺后门的特殊通道号”,默认是 22,这里用了自定义端口更安全)
 ​
 #作用:从 kiosk 普通用户切换到 root 管理员(相当于 “从店员身份切换成店主,获得所有操作权限”)
 [kiosk@f0-home www]$ sudo -i
 ​
 #三、创建网站文件夹:给网站 “划分存放区域”
 [root@f0-home ~]# cd /www
 [root@f0-home www]# mkdir lovyk.online
 - 作用:
 - 进入服务器存放网站的目录 /www(相当于 “仓库总目录”);
 - 创建 lovyk.online 文件夹(相当于 “给你的网站单独划分一个货架”)。
 ​
 ​
 #创建成功
 [root@f0-home www]# ls
 lovyk.online  lovyk.online  shcloud.top  yuxb.cloud
 [root@f0-home www]# pwd
 /www
 ​
 #四、创建测试页面:先挂个 “临时广告牌”
 [root@f0-home www]# echo Welcome to my site > lovyk.online/index.html
 ​
 #五、测试访问:看看 “广告牌能不能被看到”
 #点击网页输入www.lovyk.online:100213
 - 进入显示出Welcome to my site
 - index.html 是网站默认首页,访问域名时会自动打开这个文件
 ​
 ​
 #六、配置虚拟主机:给网站 “正式装修并挂对招牌”
 [root@f0-home /]# cd /www
 [root@f0-home www]# cd /etc/httpd/conf.d/
 [root@f0-home conf.d]# vim vhost-lovyk.online.conf
 ================================================================
 #进入vim编辑cat里面的内容
 [root@f0-home conf.d]# cat vhost-lovyk.online.conf
 <VirtualHost *:80>
     DocumentRoot "/www/lovyk.online"
     ServerName www.lovyk.online
 ​
     <Directory "/www/lovyk.online">
         AllowOverride None
         # Allow open access:
         Require all granted
     </Directory>
 </VirtualHost>
 ​
 - 作用:
 进入 Apache 服务器的配置文件夹(/etc/httpd/conf.d/ 是存放网站配置的 “规则手册” 目录);
 创建并编辑 vhost-lovyk.online.conf 文件(相当于 “给你的网站写一份专属规则”)。
 ================================================================
 ​
 #重启生效
 [root@f0-home conf.d]# systemctl restart httpd
 ​
 #七、更新网站内容:换上 “正式商品”
 #重新进入
 [root@server ~ 17:02:43]# ssh kiosk@www.lovyk.online -p 10022
 kiosk@www.lovyk.online's password: 
 ​
 [root@f0-home lovyk.online]# ls
 index.html
 #把之前的临时首页 index.html 改名为 indexold.html(相当于 “把临时广告牌挪到仓库,留作备份”)
 [root@f0-home lovyk.online]# mv index.html indexold.html
 [root@f0-home lovyk.online]# ls
 indexold.html
 #把桌面上了html文件拖入
 [root@f0-home lovyk.online]# rz -E
 rz waiting to receive.
 [root@f0-home lovyk.online]# ls
 index.html  indexold.html
 ​
 #再次重启 Apache,让新网页生效
 [root@f0-home lovyk.online]# systemctl restart httpd
 ​
 #再次查看www.lovyk.online:100213显示网页


网站公告

今日签到

点亮在社区的每一天
去签到