首页>>新闻资讯>>云计算

10分钟搭建起私有网络DNS Server

2024-08-15 09:07:24 42

环境需求: Linux/Docker

1. 拉取bind镜像

docker pull sameersbn/bind:latest

2. 启动服务

mkdir -p ~/bind && \ docker run --name=bind -d -p 53:53/udp -p 10000:10000/tcp \ -e WEBMIN_ENABLED=true \ -v ~/bind:/data \ sameersbn/bind:latest

参数说明:

-p 53:53/udp 绑定容器53端口到宿主机的53端口,DNS默认端口-p 10000:10000 图形化界面管理器端口-e WEBMIN_ENABLED=true 开启图形化界面管理器-v ~/bind:/data 挂载本地目录作为dns配置存储

3. 配置域名解析

浏览器打开 https://localhost:10000/ (请注意是HTTPS,忽略证书安全警告)进入Webmin页面。为了更方便使用,这里切换到了中文语言。

DNS服务器管理

默认你打开的页面可能和截图有些差异:“现有DNS区域” 一栏你会看到有一个根区域,用于解析互联网域名。纯粹私有网络,无互联网连接的情况下这个域可以删除。

以创建一个 “zhihu.test” 域为例:

创建主区域

选项说明:

区域类型:正向 ,即名字解析到IP地址

主服务器:默认填写的当前docker容器ID,最好改成 localhost. ,避免重启后失效. 因为我们只做私网解析,指向本地即可。

创建好主区域后,我们可以开始建立A记录了:

创建A记录

这里我们建立一条解析 zhihu.test 的记录,解析到 172.16.172.1 这个地址。新建好之后注意点击右上角的更新按钮使得修改生效。

4. 测试

通过docker inspect查看允许 bind 的容器地址:

docker inspect $(docker ps -f name=bind | tail -n 1 | awk {print $1}) | grep "IPAddress" | head -n 1 | awk {print $2} | cut -f2 -d\"

启动另外一个容器,修改其域名服务器配置指向 bind 所在地址:

$> docker run -it centos:7 # 这里的IP地址使用你的bind容器IP替换 $> echo "nameserver 172.17.0.2" > /etc/resolv.conf $> ping zhihu.test
地址解析测试

你也可以使用nslookup命令进行测试: nslookup zhihu.test .

如果你需要将DNS服务提供给宿主机所在网络的其他机器(而非docker网络),/etc/resolv.conf 文件中配置的地址请配置bind容器宿主机的网络地址。

提示:本文仅供测试搭建,不适合生产环境。

相关标签:

发表评论:

评论记录:

未查询到任何数据!