![BIND9无法解析本地域](https://linux22.com/image/1519364/BIND9%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%E6%9C%AC%E5%9C%B0%E5%9F%9F.png)
我已经努力了几天来配置 bind9 来解析我的本地域,以便我可以从我的 LAN 内部访问它。
细节:
DNS SERVER: 192.168.178.46
WEBSERVER (apache2): (A virtualbox machine, bridged) 192.168.178.36
VM HOST MACHINE: 192.168.178.26
LOCAL DOMAIN: acme.local
我可以通过 IP 成功访问所有机器。所有客户端都配置了我的内部 DNS。我可以通过 IP 地址访问我的本地网站。
bind 守护进程成功运行,没有错误。此外,Web 服务器正在运行,虚拟主机已配置并启用。
目标:通过域名(acme.local)访问我的本地网络服务器,而无需更改我的/etc/hosts
文件。
在我的 DNS 服务器 (192.168.178.46) 上
内容/etc/bind/named.conf.options
:
options {
directory "/var/cache/bind";
// 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.
// I dont need to forward to other name server. so dont use this.
// forwarders {
// 0.0.0.0;
// };
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
内容/etc/bind/named.conf.local
:
// Just to be sure, internal network only.
acl internals {
192.168.178.0/24;
127.0.0.0/8;
};
// Create a view for the internal ACL.
view "internals" {
// Match the ACL
match-clients { internals; };
// Configure the domain:
zone "acme.local" {
type master;
// point out to the zone file.
file "/etc/bind/zones/db.acme.local";
};
};
/etc/bind/zones/db.acme.local:
@ IN SOA ns1.acme.local. admin.acme.local. (
5 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; Name servers
; create a name for the DNS.
acme.local. IN NS ns1.acme.local.
; A records for name servers
; Point the created name for the DNS to the machine itself.
ns1 IN A 127.0.0.1
; Other A records
; Point to the web-server:
@ IN A 192.168.178.36
www IN A 192.168.178.36
DiG 信息(在其中一个内部客户端上完成)
这就是dig
告诉我的,我对这个 DNS 东西还不熟悉,但在我看来它可以找到acme.local
。192.168.178.36
但 Chrome 仍然告诉我:
acme.local’s server DNS address could not be found.
ERR_NAME_NOT_RESOLVED
挖掘信息:
; <<>> DiG 9.9.5-9+deb8u9-Debian <<>> acme.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44847
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;; acme.local. IN A
;; ANSWER SECTION:
acme.local. 604800 IN A 192.168.178.36
;; AUTHORITY SECTION:
acme.local. 604800 IN NS ns1.acme.local.
;; ADDITIONAL SECTION:
ns1.acme.local. 604800 IN A 192.168.178.46
;; Query time: 3 msec
;; SERVER: 192.168.178.46#53(192.168.178.46)
;; WHEN: Fri Jan 20 23:14:04 CET 2017
;; MSG SIZE rcvd: 91
问题:
您能看出我做错了什么吗?或者能给我一些关于如何使用 bind9 实现我的目标的建议吗?
不管怎么说,还是要谢谢你!
编辑/更新:
一部分已经解决,感谢@Barmar 为我指出了正确的方向。DNS 似乎没问题。对于我的 Debian 笔记本电脑,我将 中的值顺序/etc/nsswitch.conf
从更改hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns
为hosts: dns files myhostname mdns4_minimal [NOTFOUND=return]
。我不确定为什么这样做有效,但它确实有效。但是...
我还想使用连接到 WiFi 的移动设备 (android) 访问本地域。但这仍然行不通。不过,我已在每台设备上使用 DNS 配置了 WiFi 连接...
答案1
我认为这行:
ns1 IN A 127.0.0.1
就是问题所在。
将 127.0.0.1 替换为您的 DNS 服务器的实际地址 (192.168.178.46)。