前言就是没钱买域名,学习成本较大
(穷批哭死)
,再加上windows个人版的上的hosts文件不支持域名泛解析和多租户的域名解析,windows server环境又需要秘钥提供不支持长期学习,所以出一篇文章记录一下。
客户机:windows个人环境即可
服务器:两台nginx服务器(centos7)、一台纯净版的Centos7用于安装DNS
软件:nginx和vmware,nginx搭在linux里,虚拟机用的vm,其他vbox也可,或者docker环境更加简便
2.1 安装bind模块依赖
yum -y install bind bind-chroot
安装好后,会在系统中配置一个named用户,这个先记着
然后再看下vm配置的虚拟网卡的网段
我这里是192.168.153.0/24,网关是192.168.153.2
2.2 配置基本的配置文件named.conf
vim /etc/named.conf
第13行,修改成本机DNS的服务器地址,这个地址就是其他服务器包括客户机中配置的地址,需要记住
第21行,为支持泛解析,配置成子网的网段
2.3 配置正向解析文件和逆向解析文件
vim /etc/named.rfc1912.zones
zone "sange.com" IN { # zone后面跟着根域名
type master;
file "/var/named/dns_named/conf/sange.conf"; # file里面跟着正向配置文件地址
allow-update { none; };
};
逆向规则:
zone "153.168.192.in-addr.arpa" IN { # 153.168.192为网段的写法
type master;
file "/var/named/dns_named/conf/sange.txt"; # file里面跟着逆向配置文件地址
allow-update { none; };
};
配置DNS服务器的静态IP
DNS的地址一般都是固定的,所以接下来配置DNS这台主机的静态IP
# ifcfg-ens33这里是根据自己的ifconfig网卡判断的,大部分centos7都是这个网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
配置详情如图:
配置防火墙出入规则
DNS服务占用53端口,配置如下
可以选择关闭防火墙
systemctl stop firewalld
systemctl disable firewalld 关闭防火墙自启
systemctl enable firewalld 开启防火墙自启
systemctl restart firewalld 重启防火墙
或者配置进出规则
firewall-cmd --zone=public --add-port=53/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
firewall-cmd --reload 重启防火墙 || systemctl restart firewalld 重启防火墙
firewall-cmd --list-all 查看防火墙配置、出入规则
到我们的/var/named目录下,其中新建一个正反规则file属性值的目录结构
cd /var/named
mkdir -p dns_named/conf
查看named.empty文件,这是named服务提供的一套正反规则配置文件模板,我们复制该文件进入./dns_named/conf/
下,其中注意复制过去需要一样的权限和属性
## 注意复制过去需要保持和 /etc/named.rfc1912.zones 中的配置一样
cp -p named.empty ./dns_named/conf/sange.conf
cp -p named.empty ./dns_named/conf/sange.txt
3.1、配置正反向规则文件
如下配置即可
同理,逆向规则如下:
第一列表示网段号差值IP,第三列表示逆向解析到的主机域名
3.2、配置客户机和Nginx服务器DNS
同理配置两台nginx的ifcfg-en33文件,加上DNS2=192.168.153.3
Windows主机这里这样配置即可
这时ping一下看看
成功
解析校验成功后,我们配置nginx的反向代理,就拿百度的网址举例,我们到153.168那台sange.com根域名
上配置一下
vim /usr/local/nginx/conf/nginx.conf