我正在尝试在 Arch Linux VM 上设置域。
以下是我的named.conf
options {
directory "/var/named";
pid-file "/run/named/named.pid";
// Uncomment these to enable IPv6 connections support
// IPv4 will still work:
// listen-on-v6 { any; };
// Add this for no IPv4:
// listen-on { none; };
listen-on port 53 { 127.0.0.1; any; };
allow-query { localhost; any; };
allow-recursion { 127.0.0.1; };
allow-transfer { none; };
allow-update { none; };
version none;
hostname none;
server-id none;
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
// ...
zone "DOMAIN.com" IN {
type master;
file "DOMAIN.com.zone";
allow-update { none; };
notify no;
};
在/var/named/DOMAIN.com.zone
$TTL 7200
; DOMAIN.com
@ IN SOA ns1.DOMAIN.com. postmaster.DOMAIN.com. (
2018111111 ; Serial
28800 ; Refresh
1800 ; Retry
604800 ; Expire - 1 week
86400 ) ; Negative Cache TTL
@ IN NS ns1.DOMAIN.com
@ IN NS ns2.DOMAIN.com
ns1.DOMAIN.com IN A PUBLIC_IP_OF_VM
ns2.DOMAIN.com IN A PUBLIC_IP_OF_VM
ns1 IN A PUBLIC_IP_OF_VM
ns2 IN A PUBLIC_IP_OF_VM
www IN A PUBLIC_IP_OF_VM
我/etc/resolv.conf
有
search DOMAIN.com
nameserver PRIVATE_IP_OF_VM
然后我检查了配置
$ sudo named-checkzone DOMAIN.com /var/named/DOMAIN.com.zone
zone weerepublic.com/IN: loaded serial 2018111111
OK
但当我 ping 时,DOMAIN.com
收到“名称或服务未知”的消息。我该如何修复此问题?
$ sudo netstat -nap | grep 53 |grep LISTEN
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 329/systemd-resolve
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 329/systemd-resolve
tcp6 0 0 :::5355 :::* LISTEN 329/systemd-resolve
编辑
问题出在日志文件上。start
,restart
没有报告任何失败。但是systemctl status named
报告
isc_stdio_open '/var/log/named.log' failed: permission denied
因此我修改了/var/log/named.log
并将所有权更改为named:root
。现在 DNS 服务器正在运行。
但外部 ping 报告No address associated with hostname
因此我A
为 DOMAIN.com 添加了记录。当前区域文件如下所示。
$TTL 7200
; DOMAIN.com
@ IN SOA ns1.DOMAIN.com. postmaster.DOMAIN.com. (
2018111111 ; Serial
28800 ; Refresh
1800 ; Retry
604800 ; Expire - 1 week
86400 ) ; Negative Cache TTL
@ IN NS ns1.DOMAIN.com.
@ IN NS ns2.DOMAIN.com.
DOMAIN.com. IN A PUBLIC_IP_OF_VM
ns1.DOMAIN.com. IN A PUBLIC_IP_OF_VM
ns2.DOMAIN.com. IN A PUBLIC_IP_OF_VM
ns1 IN A PUBLIC_IP_OF_VM
ns2 IN A PUBLIC_IP_OF_VM
www IN A PUBLIC_IP_OF_VM
然后我重新启动了,named
但仍然有外部 ping 报告
No address associated with hostname
答案1
您的名称服务器未运行。可能是在您尝试启动它时出现错误,也可能是您没有正确启动它。无论哪种情况,它都没有运行。
netstat
从您在问题中提供的输出可以看出这一点:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 329/systemd-resolve tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 329/systemd-resolve tcp6 0 0 :::5355 :::* LISTEN 329/systemd-resolve
第一和第三项是端口 5353,而不是端口 53,因此可以忽略。第二项是 127.0.0.53,而不是 127.0.0.1,同样可以忽略。最后,可以看出,它们都来自systemd-resolve
而不是您自己的名称服务器。