DNS服务器

安装&配置

这里使用coredns

配置coredns之前,需要看一下当前系统是否systemd-resoved占用53端口:

sudo lsof -i :53

如果有的话,需要关闭:

# 打开/etc/systemd/resolved.conf
# 修改为如下类似的配置,DNSStubListener是主要
[Resolve]
DNS=192.168.0.1
FallbackDNS=8.8.8.8
DNSStubListener=no

# DNSStubListener=yes的时候/etc/resolved.conf是/run/systemd/resolve/stub-resolv.conf的链接
# DNSStubListener=no的时候,需要修改/etc/resolved.conf 为/run/systemd/resolve/resolv.conf的链接

ln --symbolic --force /run/systemd/resolve/resolv.conf /etc/resolv.conf
# 随后启动coredns即可

docker-compose文件:

services:
  coredns:
    container_name: coredns
    image: coredns/coredns:1.12.0
    network_mode: bridge
    restart: always
    ports:
      - 53:53
      - 53:53/udp
    volumes:
      - ./data/config/Corefile:/Corefile
      - ./data/config:/etc/coredns # for db files

Corefile文件

.:53 {
    log
    errors
    auto
    forward . 8.8.8.8:53
    cache 30
}

inner.com:53 {
  log
  errors
  file /etc/coredns/db.inner.com inner.com
}

db.inner.com文件

$ORIGIN inner.com.
$TTL 3600
@       IN      SOA     ns1.inner.com. admin.inner.com. (
                            2025011501 ; Serial
                            3600       ; Refresh
                            1800       ; Retry
                            604800     ; Expire
                            86400      ; Minimum TTL
)
        IN      NS      ns1.inner.com.
ns1     IN      A       192.168.0.211
argocd  IN      A       192.168.0.211
nginx   IN      A       192.168.0.211