前言
前面使用 nginx 代理轉發了幾個域名到服務器,但是每次添加一個域名都需要在客戶端添加一行 hosts 文件,無疑是繁瑣的,其中也提到可以使用 DNS 來實現自動解析域名 到指定服務器的功能,本篇將介紹開源 DNS 服務 docker-bind 的部署和使用
特點
- 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 訪問
使用 Docker Compose 安裝
本篇文章基於 Docker V24 及 Docker Compose V2,安裝可以參考之前的文章
配置說明
- 鏡像版本:
sameersbn/bind:9.16.1-20200524
- 指定時區:
Asia/Shanghai
- 啓用 Webmin 並指定 root 密碼:
devops666
- 啓用 SSL:默認值爲 true,用 https 訪問 webmin(https://ip:10000)
- 指定端口映射:53:53/tcp 53:53/udp 10000:10000/tcp(53 端口爲 DNS 服務使用,10000 爲 Webmin 端口)
- 掛載數據目錄:
./data:/data
- 指定網絡:devopsnetwork (
docker network create devopsnetwork
)
配置文件 compose.yml
- 準備好 compose.yml 拷貝到服務器
- 然後運行
docker compose up -d
即可
version: '3.1'
services:
dns:
image: sameersbn/bind:9.16.1-20200524
container_name: dns_9_16
restart: always
environment:
TZ : 'Asia/Shanghai'
ROOT_PASSWORD: devops666
WEBMIN_ENABLED: true
WEBMIN_INIT_SSL_ENABLED: true
ports:
- '10000:10000/tcp'
- '53:53/udp'
- '53:53/tcp'
volumes:
- ./data:/data
networks:
- devopsnetwork
networks:
devopsnetwork:
external: true
部署成功
部署機器 IP:192.168.123.214
容器中資源佔用情況
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的生效都挺快的
相關文檔
- BIND官網:BIND
- Webmin官網:Webmin
- 項目地址:Github
- 鏡像倉庫:DockerHub
- 安裝參考:docker部署內網dns解析服務
後語
安裝2分鐘,文章寫了一天,反覆的嘗試,理論的查詢,時間飛逝