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