只是要建個私家用的名稱伺服器

 要建個私人的家用的名稱伺服器(DNS Server),需求很簡單,幫自已的3C設備命名,能夠簡單地找到到底是那個 IP ,只限內部使用,最好是能像外部公開的 DNS 一樣,可以自建不同網段、不同子網域名,限縮使用者,不用防毒,不用安全連線,不用擋廣告,這… 應該不難……………………………吧!?

工作環境:
    ubuntu TLS
        coredns


如果用 BIND 那些個設定檔會讓人想哭,要再設個內部用的名稱解析…,不知道從什麼時侯開使,這些個功能設定越來越簡單,功能越來越多,所以找到了 coreDNS ,只要寫個最基本的 docker-compose.yml ,把要對應的 ip 和 名稱,限制存取的網段,寫到一個檔案,docker compose up -d ,將將將將,就可以執行了,也太強,所以說人會老,軟體會變強。

記得先把DNS伺服器的位址改到已經設好的伺服器上,別用舊的,然後在使用者端試著用名稱查找和連線,可行!

別忘了設定防火牆讓使用者連進來查詢 

sudo ufw allow 53/udp
sudo ufw allow 53/tcp
sudo ufw reload
sudo ufw enable

 

 

 

收工!

 

=================== 範例 ================== 

Corefile

# Corefile 配置
. {
    # 啟用日誌記錄,可以幫助診斷問題
    log
    # 允許區域轉發和內部域名解析
    forward . /etc/resolv.conf
    
    # 內部域名區域定義
    hosts {
        # 網段 192.168.1.0/24 的解析 什麼網段都可以
        192.168.1.1 router.device.myhome
        192.168.1.2 pc.device.myhome
    192.168.1.3 nas.device.myhome
    1.2.3.40 www.server.myhome
        
        fallthrough
    }
    
    # 限制只有內部網路可以查詢 白名單 什麼網段都可以
    acl {
        allow net 192.168.1.0/24
    allow net 1.2.3.32/28
        drop
    }

    errors
}


docker-compose.yml

#version: '3'
services:
  coredns:
    image: coredns/coredns
    container_name: coredns
    restart: always
    ports:
      - "53:53/udp"
      - "53:53/tcp"
    volumes:
      - ./Corefile:/Corefile
      - ./zones:/etc/coredns/zones #這個應該也可以不用,因為設定全寫在 Corefile 裏了
      - ./resolv.conf:/etc/resolv.conf
    network_mode: "host"
    cap_add:
      - NET_BIND_SERVICE


resolv.conf

# 上游 DNS 伺服器 好像沒用上
nameserver 8.8.8.8
nameserver 1.1.1.1
search device.myhome server.myhome



留言

這個網誌中的熱門文章

使用 Excel 計算2個地點之間的直線距離

LINE 儲存的檔案傳到 email 不方便 很不方便 非常不方便 但是有解的筆記

合併列印標籤漏印