只是要建個私家用的名稱伺服器
要建個私人的家用的名稱伺服器(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
留言
張貼留言