DNS服务器的配置
- 1. Docker安装DNS
- 1.1 安装docker
- 1.2 启动docker服务
- 1.3 运行DNS容器
- 1.4 运行nginx容器
- 1.5 docker相关问题解决
- 2.两种方式配置
- 2.1 手动配置文件进行域名拦截
- 2.2 通过web界面进行域名拦截
- 2.2.1 访问后台
- 2.2.2 进入后台
- 2.2.3 配置master zone
- 2.2.4 查看配置文件
- 3. 测试
1. Docker安装DNS
1.1 安装docker
curl -sSL https://get.daocloud.io/docker | sh
1.2 启动docker服务
systemctl start docker
1.3 运行DNS容器
Docker使用sameersbn/bind搭建DNS服务器
docker run --name bind -d --restart=always --publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp --volume /srv/docker/bind:/data sameersbn/bind:9.16.1-20200524
测试时记得将本机的dns修改为dns服务器的地址,并且关闭ipv6的连接
运行成功访问https://ip:10000,注意此处是https非http
默认账号root,密码password
1.4 运行nginx容器
为测试提供一个域名访问网站路径
docker run --name nginx -d -p 80:80 nginx
1.5 docker相关问题解决
- 53端口占用:
netstat -ntlp|grep 53
#查出pid
kill -9 pid
- 容器启动失败:
- 检查网络连接
- 检查docker虚拟存储容量是否足够
- 镜像下载完毕的情况下运行
docker restart 容器ID
2.两种方式配置
- 手动配置文件进行域名拦截
2.1 手动配置文件进行域名拦截
拦截
www.getcharzp.cn
这个域名到上面启动的nginx服务中
- 编辑
/srv/docker/bind/bind/etc/named.conf.local
文件中
vim /srv/docker/bind/bind/etc/named.conf.local
新增下面内容(正向解析:域名解析为IP地址)
zone "cn" {
type master;
file "/var/lib/bind/cn.hosts";
};
- 在
/srv/docker/bind/bind/lib
下新增cn.hosts
文件
vim /srv/docker/bind/bind/lib/cscn.hosts
下方的9d427dee11c8为自己docker容器的ID qq.qq.com为邮箱地址
$ttl 38400
cn. IN SOA 2bb72646050f. admin.qq.com (
1640000819
10800
3600
604800
38400 )
cn. IN NS 2bb72646050f.
my.cn. IN A 192.168.46.133
- 重启bind服务
docker restart bind
2.2 通过web界面进行域名拦截
2.2.1 访问后台
账号: root ,密码: password
2.2.2 进入后台
- Dashboard ==> Servers ==> BIND DNS Server
2.2.3 配置master zone
- 反向解析
- 勾选Reverse(Address to Names)
- Domain name/Network 填入 IP
- 输入随便一个Email address
- 点击Create
- 进入Zone
- 点击Reverse Address
- 创建后点击最后一张图的保存按钮
- 最后到命令行输入
docker restart bind
- 正向解析
- 勾选Forward(Names to Address)
- Domain name / Network填入域名
- 随便输入Email address
- 点击Create
- 点击Address
- 输入二级域名前缀
- 输入IP地址
- 点击create后点击右上角保存
- 最后到命令行输入
docker restart bind
2.2.4 查看配置文件
根据手动配置文件位置去找或者点击如下图所示查看路径/配置文件内容
正向解析/反向解析原理相同
3. 测试
使用另一台机去测试
首先输入下面命令配置
vim /srv/docker/bind/bind/etc/resolv.conf
在里面加入条nameserver (DNS服务器IP)
,放在nameserver的第一条
测试方法有多种:
- 直接浏览器访问是否存在nginx欢迎页面
- 使用
nslookup
查看是否配置成功
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1B5JoASe-1640272734160)(dns/image-20211220213929438.png)]
配置成功后,访问其他的肯定是不行的所以要将原来的nameserver改回去或者改成nameserver 8.8.8.8