使用 Docke r搭建自己的 dns 服务器
在开发运维过程中经常需要自定义一个域名来管理服务,通常的方法是修改hosts文件,但还有一种更便捷的方法,从源头上解决问题,也就是使用DNS来实现。
1.搭建
搭建依然使用docker,安装前请安装好docker的运行时环境。
# 创建一个持久化存放文件的目录
mkdir -p /opt/docker/bind
# 使用容器创建应用
docker run --name bind -d --restart=always \
--publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp \
--volume /opt/docker/bind:/data \
sameersbn/bind:9.16.1-20200524
默认占用53的tcp和udp的DNS访问端口,这个请不要更改,以及10000的管理面板端口。外网访问时,请在防火墙中放行此端口。
firewall-cmd --add-port={53,10000}/tcp --permanent
firewall-cmd --add-port=53/udp --permanent
firewall-cmd --reload
2.访问
使用你的https://ip:10000在浏览器中打开。
在高级内打开此网页,使用默认账户密码root/password登录。
调整语言为中文,部分菜单可能仍会显示为英文。
3.配置
尝试绑定一下dns,依次点击图标中的例子。
任意填写一个名称,比如我以cn为域名后缀,填写邮箱,然后点击新建。
选择地址。
填写域名和ip地址。
可以看到我们的aaa.cn域名,已经解析到192.168.31.92这个ip上了。
重启一下服务,执行以下命令,这样才能使用配置生效:
docker restart bind
4.使用
将电脑的dns地址指向服务器地址,比如我在Mac下修改DNS地址。Windows修改方式类似。
如果是公网就填公网地址。做一下ping测试,发现已经正常解析了。
到这个时候,其实还有一个问题,就是除了我们设置的域名之外的网站是无法访问的。如果想访问百度之类的公网网站,进行如下设置:
vim /opt/docker/bind/bind/etc/resolv.conf
加入以下DNS地址:
nameserver 114.114.114.114
nameserver 8.8.8.8
修改另一个配置文件:
vim /opt/docker/bind/bind/etc/named.conf.options
添加一行,内容如下:
allow-query { any; };
再次重启一下bind服务,发现已经可以正常地访问互联网了,同时也能正常访问自定义的域名。
最后放上github的地址:
https://hub.docker.com/r/sameersbn/bind
鸣谢:
https://mp.weixin.qq.com/s/FZj1cY0B3GfFdkq6tCQpPg
本文来自博客园,作者:{春光牛牛,yak},转载请注明原文链接:https://www.cnblogs.com/yakniu/p/16381538.html
欢迎各位大佬们评论指正
QQ讨论群:610129902
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!