我一直致力于在运行 Ubuntu Server 16.04 的家庭服务器上设置 bind9 服务器,以允许我通过名称而不是 IP 地址访问我的服务。
绑定服务器本身(大部分)已设置好并且工作正常。我可以从我的网络设备的 ip 地址和主机名中解析主机名,但是服务器本身无法从它自己的 bind9 记录中解析任何内容,这让我有点难过。
唯一的名称服务器/etc/resolv.conf
是我的路由器192.168.1.1
和8.8.8.8
.
这些是在我的/etc/network/interfaces
. 我假设我的问题127.0.0.1
不在那里,所以服务器本身会立即寻找我的路由器来解析地址,然后再到,8.8.8.8
但是当我添加时127.0.0.1
,/etc/network/interfaces
没有其他任何东西被添加,/etc/resolv.conf
所以我只剩下一个名字的服务器127.0.0.1
我确实在 中设置了转发器/etc/bind/named.conf.local
,并且它们确实在我仍然可以访问互联网的情况下工作,但是从我读过的每个指南中,bind9 应该添加127.0.0.1
到/etc/resolv.conf
自身,这意味着它仍然由我的文件中的服务器填充,/etc/network/interfaces
以便我的即使绑定服务器由于某种原因失败,服务器仍然“在线”。
我已经检查过/etc/default/bind9
并且RESOLVCONF=yes
在那里
# run resolvconf?
RESOLVCONF=yes
# startup options for the server
OPTIONS="-u bind"
这是我/etc/network/interfaces
的,以防万一那里有问题
/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo wlan0
iface lo inet loopback
# The primary network interface
#auto eth0
# iface eth0 inet static
iface wlan0 inet static
address 192.168.1.62
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
wpa-ssid #############
wpa-psk ****************
dns-nameservers 192.168.1.1 8.8.8.8
gateway 192.168.1.1
# mtu 1500
这是我的/etc/bind/named.conf
acl mynetwork {
192.168.1.0/24;
};
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
key rndc-key {
algorithm hmac-md5;
secret "*****************";
};
controls {
inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { rndc-key; };
};
和我的/etc/bind/named.conf.options
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
192.168.1.1;
208.67.222.222;
208.67.220.220;
8.8.8.8;
8.8.4.4;
};
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
forward first;
};
如果您需要查看任何区域文件,请询问,但我认为它们不是问题,因为名称解析可以在其他设备上正常工作,而不是从服务器本身;除非我更改我的/etc/network/interfaces
文件并将其127.0.0.1
作为我唯一的 dns 服务器,否则我想这是我询问如何添加到我的 dns 列表而不是将其作为唯一条目/etc/resolv.conf
的冗长方式 127.0.0.1
/etc/resolv.conf
我自己找到了解决方案(某种)。
我编辑了我的
/etc/resolvconf/head
文件并添加了该行nameserver 127.0.0.1
并将我的/etc/network/interfaces
名称服务器部分恢复正常。我现在将我127.0.0.1
的第一个条目作为我的第一个条目,/etc/resolv.conf
然后是我的名称服务器中列出的/etc/network/interfaces
我仍然不知道为什么 bind 没有添加条目本身,但至少现在一切正常。