Civ*_*ing 15 ubuntu dns bind dig systemd-resolved
我正在使用本地 BIND9 服务器来托管一些本地 dns 记录。在尝试挖掘本地域名时,如果我没有明确告诉 dig 使用我的本地 BIND9 服务器,我将无法找到它。
user@heimdal:~$ dig +short heimdal.lan.se
user@heimdal:~$ dig +short @192.168.1.7 heimdal.lan.se
192.168.1.2
Run Code Online (Sandbox Code Playgroud)
使用 Ubuntu 17.04 和 systemd-resolved。这是我的/etc/resolved的内容
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53
Run Code Online (Sandbox Code Playgroud)
以及 systemd-resolve --status 的输出
Global
DNS Servers: 192.168.1.7
192.168.1.1
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Run Code Online (Sandbox Code Playgroud)
DNS 服务器部分似乎已将 192.168.1.7 正确配置为主 DNS 服务器(我的本地 BIND9 实例)。我不明白为什么不使用它......?
Civ*_*ing 10
因此,更改要管理的有线 eth0 接口为我解决了这个问题。
在 /etc/NetworkManager/NetworkManager.conf 中将 ifupdown 更改为 managed=true
[ifupdown]
managed=true
Run Code Online (Sandbox Code Playgroud)
然后重启网络管理器
sudo systemctl restart NetworkManager
Run Code Online (Sandbox Code Playgroud)
在此之后,它可以完美地工作..
这不是 100%。我还应用了这些更改来尝试杀死解析器
sudo service resolvconf disable-updates
sudo update-rc.d resolvconf disable
sudo service resolvconf stop
Run Code Online (Sandbox Code Playgroud)
非常感谢这篇关于该主题的博文:https : //ohthehugemanatee.org/blog/2018/01/25/my-war-on-systemd-resolved/
让我们祈祷这行得通……整个 systemd-resolve 业务实在是太丑了。
我的猜测是您的systemd-resolved
服务配置正确,但它永远无法看到请求。该.local
域由运行 mDNS 的系统特别处理。avahi-daemon
,提供 mDNS/DNS-SD 服务(在 Apple 产品上也称为“Bonjour”)可以配置为在名称解析期间优先于 DNS;看来 Ubuntu 就是这样做的。
您可以从以下几个选项中进行选择:
将您的.local
域重命名为不同的名称(可能.internal
或.lan
)。这在实践中可能是最容易做到的,因为您只需要更改 DNS 服务器上的一些内容,并且它与 Avahi 一起使用效果最佳。我会推荐这种方法。
/etc/nsswitch.conf
通过将dns
条目放在条目前面来更改您的文件mdns
。
更改 Avahi 的配置,.local
通过编辑/etc/avahi/avahi-daemon.conf
和更改(或添加)domain-name=.something
(位于[server]
部分)将 mDNS 域从更改为其他域。您需要在每台使用 mDNS 的计算机上执行此操作,以便它们仍然可以协同工作。