以下命令是一套完整的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显示网页