DNS 服務 docker-bind 的部署使用

前言

前面使用 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 的使用

  • 啓用中文主題, 雖然支持有限,但聊勝於無

  • 有非常多的功能,監控,遠程執行命令等,安裝好自行體驗即可

  • 目前需求是需要配置 dns 以將 test.com 解析到 192.168.123.214 中

  1. 服務器->BIND DNS Server->創建新的主區域

  2. 現有DNS區域->地址->新增記錄,可以使用通配符解析,新建後應用配置生效


      添加配置後記得應用配置

  3. 本機設置 dns 192.168.123.214 以及 114.114.114.114(不然無法訪問其他網站)

  4. 驗證dns,正常ping test.com 的IP是存在的,現在就被解析到我們自己的dns了


      可能存在dns緩存,使用 ipconfig /flushdns刷新即可

踩過的坑

  • 默認啓用了 SSL,所以如果使用 http 會提示,使用 https 訪問

  • Edge 如果禁用 https 初始化會提示:Error - No cookies Chrome 可以

  • 代理/VPN的設置不對可能導致 DNS 時好時壞,這個時候記得檢查下代理,正常dns的生效都挺快的

相關文檔

後語

安裝2分鐘,文章寫了一天,反覆的嘗試,理論的查詢,時間飛逝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章