我跟着这个非常好的教程在 Debian Jessie 上(在我的 Raspberry Pi 上)创建我的第一个 DNS 服务器。它似乎运行良好。我可以 ping 通:
ping myhostname.mydomain
一切运行正常。问题是每次我重启树莓派时,我都必须运行
sudo service bind9 restart
否则 DNS 服务器将无法按照我的配置启动,我的 DNS 定义将无法工作。现在我不得不说,如果我运行htop
,我可以看到 bind9 在那里运行,但尽管如此,我还是ping
得到了主机名不存在的结果。只有在我手动重新启动 bind9 后,DNS 服务器才能再次工作。
我不得不说,虽然我一直在尝试解决这个问题,但我让 bind9 运行通过 Chroot 进行操作,如 Debian 页面中所述,但这并没有帮助。
我对此还很陌生,所以如果您需要任何其他信息,请询问。我不知道从哪里开始寻找 bind9 的问题来解决这个问题。
注意:我从全新安装开始这一切。
更新根据评论中的问题:
dig myhostname.mydomain
给出超时:
; <<>> DiG 9.9.5-9+deb8u3-Raspbian <<>> myhostname.mydomain
;; global options: +cmd
;; connection timed out; no servers could be reached
命令netstat -plnut
返回
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN -
tcp6 0 0 :::80 :::* LISTEN -
tcp6 0 0 :::53 :::* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 ::1:953 :::* LISTEN -
tcp6 0 0 ::1:6010 :::* LISTEN -
udp 0 0 127.0.0.1:53 0.0.0.0:* -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
udp 0 0 192.168.1.2:123 0.0.0.0:* -
udp 0 0 127.0.0.1:123 0.0.0.0:* -
udp 0 0 0.0.0.0:123 0.0.0.0:* -
udp 0 0 0.0.0.0:48851 0.0.0.0:* -
udp 0 0 0.0.0.0:5353 0.0.0.0:* -
udp6 0 0 :::546 :::* -
udp6 0 0 :::53 :::* -
udp6 0 0 2003:75:e15:c201:52:123 :::* -
udp6 0 0 fe80::ba27:ebff:fe7:123 :::* -
udp6 0 0 ::1:123 :::* -
udp6 0 0 :::123 :::* -
udp6 0 0 :::53420 :::* -
udp6 0 0 :::5353 :::* -
重新启动后,会添加以下两行,它们属于 DNS 服务器:
tcp 0 0 192.168.1.2:53 0.0.0.0:* LISTEN -
udp 0 0 192.168.1.2:53 0.0.0.0:* -
答案1
1)自定义脚本来处理 DHCP 延迟。(以 root/sudo 身份创建文件)
cat /usr/local/sbin/network-check
#!/bin/bash
while ! ifconfig | grep "192.168.1." > /dev/null; do
#Network Down
sleep 1
done
#Network up restart bind9
service bind9 restart
chmod a + x /usr/local/sbin/network-check
在 /etc/rc.local 中的 exit 0 之前添加一行
network-check
exit 0
然后重新启动
2) 设置静态,网络将以 IP 启动,然后 bind9 将启动(并使用该 IP)
答案2
我建议升级到 BIND 9.10,它能够通过全局选项yes
的默认设置自动检测系统 IP 地址的变化automatic-interface-scan
。
在 BIND 9.9 中,相关选项interface-interval
控制 BIND 轮询接口更改的频率。默认值为 60 分钟,这对于您的目的来说太慢了。