因此,我一直在尝试在运行 Ubuntu Server 22.04 的旧 2012 Mac Mini 上设置自己的 DCHP 和 DNS 服务器。Bind9 在带有以下 Compose 文件的 Docker 容器上运行:
version: "3"
services:
bind9:
container_name: dnss
image: ubuntu/bind9:latest
environment:
- BIND9_USER=root
- TZ=America/Los_Angeles
ports:
- "53:53/tcp"
- "53:53/udp"
- "953:953/tcp"
- "953:953/udp"
volumes:
- ./config:/etc/bind
- ./cache:/var/cache/bind
- ./records:/var/lib/bind
restart: unless-stopped
这是我的named.conf
options {
forwarders {
8.8.4.4;
8.8.8.8;
};
allow-query { any; };
query-source address * port *;
};
然后,我让 DHCP 服务器直接在机器上运行。使用以下配置:
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option domain-name-servers 8.8.8.8;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}
起初,我无法让 DCHP 服务器工作,但后来我发现我需要给我的网络接口一个静态 IP 地址,所以我修改了我的 Netplan .yaml,如下所示:
network:
renderer: networkd
ethernets:
enp2s0f0:
dhcp4: false
addresses:
- 192.168.0.99/24
routes:
- to: default
via: 192.168.0.1
dhcp6: false
version: 2
因此,现在 DHCP 服务器运行正常(我认为到目前为止我还没有看到任何错误),并且路由器上的所有设备都获得了 IP 地址。我还关闭了路由器上的 DHCP 服务和 Mac Mini 上的任何防火墙。但出于某种原因,我一直收到此错误:
homeuser@dnsserver:~/DNSServer$ nslookup google.com 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
** server can't find google.com: SERVFAIL
这是我第一次做这个,我已经被困了好几天了。我不知道问题出在哪里。