我正在使用本地 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
使用 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
以及 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
DNS 服务器部分似乎已正确配置 192.168.1.7 作为主 DNS 服务器(我的本地 BIND9 实例)。我不明白为什么不使用它......?
答案1
因此,更改要管理的有线 eth0 接口为我解决了这个问题。
在 /etc/NetworkManager/NetworkManager.conf 中将 ifupdown 更改为 Managed=true
[ifupdown]
managed=true
然后重启网络管理器
sudo systemctl restart NetworkManager
之后它就完美地工作了..
这不是 100%。我还应用了这些更改来尝试杀死解析器
sudo service resolvconf disable-updates
sudo update-rc.d resolvconf disable
sudo service resolvconf stop
非常感谢这篇关于该主题的博客文章: https://ohthehugemanatee.org/blog/2018/01/25/my-war-on-systemd-resolved/(如果不可用,请使用https://github.com/ohthehugemanatee/ohthehugemanatee.org/blob/main/content/blog/source/2018-01-25-my-war-on-systemd-resolved.markdown)
让我们祈祷这能起作用……整个系统解析业务实在是太丑陋了。
答案2
我的猜测是您的systemd-resolved
服务配置正确,但它永远不会看到请求。域.local
是由运行 mDNS 的系统进行特殊处理。avahi-daemon
,它提供 mDNS/DNS-SD 服务(在 Apple 产品上又称为“Bonjour”),可以配置为在名称解析期间优先于 DNS; Ubuntu 似乎就是这样做的。
您可以选择以下几个选项:
将您的
.local
域重命名为不同的名称(可能.internal
是 或.lan
)。这在实践中可能是最容易做到的,因为您只需更改 DNS 服务器上的一些内容,并且它与 Avahi 配合使用效果最佳。我会推荐这个方法。改变你的
/etc/nsswitch.conf
文件将dns
条目放在条目前面mdns
。更改 Avahi 的配置通过编辑和更改(或添加)(位于 参考资料部分)将 mDNS 域更改为
.local
其他域。您需要在每台使用 mDNS 的计算机上执行此操作,以便它们仍然可以一起工作。/etc/avahi/avahi-daemon.conf
domain-name=.something
[server]
答案3
似乎作为评论会更好,但声誉不够......
Civing 的自我回答最符合我的要求。
我还必须添加dns=none
到[main]
的部分/etc/NetworkManager/NetworkManager.conf
,所以它看起来像这样:
[main]
plugins=ifupdown,keyfile
dns=none
我刚刚从 14.04 更新到 xubuntu 18.04,并且我有一个比该版本更旧的 LAN,多年来进行了许多小的调整。所以我希望我的 DNS 能做我想做的事(是的,这些年来我已经购买了很多 Cricket Lius 的书,从第二版开始)。
顺便说一句,我之前已经将我想要查看的 DNS 解析信息添加到了该文件中/etc/resolvconf/resolv.conf.d/head
。
简而言之,一旦我以 root 身份有了一个可用的 /etc/resolv.conf:
cat /etc/resolv.conf >> /etc/resolvconf/resolv.conf.d/head
但现在,我只需直接编辑 /etc/resolv.conf,它就保持不变。使用 systemd/resolvconf 访问我的 LAN 的访问者非常好。它们不存在。
阅读man 8 resolvconf
有帮助。很多。我做到了不是按照说明将内容放置在 ifup 程序可以找到的位置。主要是因为 GUI 中的整个上层结构已经被升级过程中所做的任何操作所忽略。这似乎是一个更大的问题(WTF,Ubuntu?)。
所以这很糟糕,而且仍然存在一个问题,即我(很久以前)进入网络控制面板 GUI 的内容并没有被新升级的系统所遵守,但这是一个完全不同的问题,一旦我弄清楚如何问它。
答案4
我使用的是 Ubuntu 18,我更习惯 debian 和 centOS。提示混乱。
solve.conf 说它正在使用 systemd-resolved ok...
systemd 显示全局和每个链接设置正常...
研究表明这可能意味着它正在使用 netplan
因此,打开 /etc/netplan/01-network-manager-all.yaml,它显示...renderer: NetworkManager
结果 NetworkManager 在 GUI 中,并且是启用每个链接设置的方法。但是...您可以安装 nmcli 并在命令行上配置这个傻瓜...
我希望这对某人有帮助。