特点
- docker-bind 是一个基于 BIND 与 Webmin 构建的 DNS 服务镜像
- BIND 是实现互联网域名系统 (DNS) 协议的开源软件,用于搭建 DNS 服务。
- Webmin 是一款开源的Web界面管理工具,用于浏览器远程管理服务器
- 开源免费, 配置丰富(复杂),成熟稳定,中文主题支持有限,提供了一些服务器管理功能(监控,远程命令等),资源占用和安全性在使用时需要注意
使用情况
- 功能多但是大多有其他的平替,单独使用可以,但是个人不建议在容器中使用
- 用了两天感觉还是太重了,换成 DnsServer 了,下篇分享
docker-bind 的安装使用
准备
- 版本:v9.16.1-20200524
- docker 镜像:sameersbn/bind:9.16.1-20200524
- 默认端口映射:53:53/tcp 53:53/udp 10000:10000/tcp(53 端口为 DNS 服务使用,10000 为 Webmin 使用)
- Webmin 访问:https://ip:10000 必须使用 https 访问
一、创建文件存储文件
root@121:~# mkdir -p /data/docker/dns-server
二、创建容器运行dns服务器
root@121:~# docker run --name dns-server -d \
--restart=always --publish 53:53/tcp \
--publish 53:53/udp --publish 10000:10000/tcp \
--volume /data/docker/dns-server:/data sameersbn/bind:latest
sudo docker exec -it dns-server /bin/bash
参数说明
-p 53:53/udp 绑定容器53端口到宿主机的153端口,DNS默认端口;
-p 10000:10000 图形化界面管理器端口;
-volume /data/docker/dns-server:/data 挂载本地目录作为dns配置存储;
四、 查看端口占用情况
netstat -lpnt |grep 53
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 5125/docker-proxy
tcp6 0 0 :::53 :::* LISTEN 5132/docker-proxy
如果被占用参考https://www.otakusay.com/866.html
五、访问DNS服务器
访问地址https://localhost:10000
默认账户和密码root/password
这里访问的是{容器ID}:10000:
# This web server is running in SSL mode.
# Try the URL <a href='https://1092a6514a9a:10000/'>
# https://1092a6514a9a:10000/
# </a> instead.<br>
# 外部机器访问时, 需要配置机器的/etc/hosts文件:
-
192.168.31.85 1092a6514a9a # 宿主机ip地址: 192.168.31.85
Webmin 的使用
- 部署成功后访问:https://192.168.123.214:10000 默认启用了 SSL,使用 https://ip:prot
- 启用中文主题, 虽然支持有限,但聊胜于无
- 有非常多的功能,监控,远程执行命令等,安装好自行体验即可
- 目前需求是需要配置 dns 以将 test.com 解析到 192.168.123.214 中
- 服务器->BIND DNS Server->创建新的主区域
- 现有DNS区域->地址->新增记录,可以使用通配符解析,新建后应用配置生效
添加配置后记得应用配置
- 本机设置 dns
192.168.123.214
以及114.114.114.114
(不然无法访问其他网站)
- 验证dns,正常ping test.com 的IP是存在的,现在就被解析到我们自己的dns了
可能存在dns缓存,使用 ipconfig /flushdns
刷新即可
踩过的坑
- 默认启用了 SSL,所以如果使用 http 会提示,使用 https 访问
- Edge 如果禁用 https 初始化会提示:Error - No cookies Chrome 可以
- 代理/VPN的设置不对可能导致 DNS 时好时坏,这个时候记得检查下代理,正常dns的生效都挺快的