Samba 内部 DNS - Systemd 解析可以安全禁用吗?

Dan*_*Dan 2 samba networking dns 16.04 18.04

所以我有一个运行 samba ad dc 的 Ubuntu 16.04 实例,我升级到 18.04,启动 samba 时出现错误;

[2018/12/27 11:09:56.483755, 0] ../source4/dsdb/dns/dns_update.c:290(dnsupdate_nameupdate_done)
../source4/dsdb/dns/dns_update.c:290: DNS 更新失败 -错误代码 110

经过一番挖掘和运行后sudo lsof -i :53我可以看到

systemd-r  767 systemd-resolve   12u  IPv4  18656      0t0  UDP 127.0.0.53:domain 
systemd-r  767 systemd-resolve   13u  IPv4  18657      0t0  TCP 127.0.0.53:domain (LISTEN)
samba     1594            root   36u  IPv6  23058      0t0  TCP *:domain (LISTEN)
samba     1594            root   38u  IPv6  23059      0t0  UDP *:domain 
Run Code Online (Sandbox Code Playgroud)

这导致我禁用这里的systemd-resolve说明,这解决了我在网络中的所有问题(其他域计算机无法等),但我磨损是禁用安全的吗?apt-get updatesystemd-resolve

编辑

这是一个在 vSphere 6.0 上运行的虚拟机,它是桥接网络。升级后 Netplan 文件夹为空(我刚刚记得应该设置)旧的网络详细信息/etc/network/interfaces设置为;

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens160
iface ens160 inet static
address 192.168.2.23
netmask 255.255.255.0
gateway 192.168.2.254

dns-nameservers 192.168.2.23
dns-search MYDOMAINNAME.co.uk
Run Code Online (Sandbox Code Playgroud)

resolv.conf我可以手动将(删除符号链接后)设置为以下内容并且它可以工作

nameserver 192.168.2.23
nameserver 127.0.0.53
search MYDOMAIN.co.uk
DNSStubListener=no
Run Code Online (Sandbox Code Playgroud)

hey*_*ema 5

重新启用 systemd-resolve。

两种可能性...

  1. 关于dnsmasqsystemd-resolved...

执行ps auxc | grep -i dnsandps auxc | grep -i resolv并查找dnsmasq和,如果两者都在运行,您需要通过编辑和systemd-resolved禁用 DNS 部分...systemd-resolved/etc/systemd/resolved.conf

改变:

#DNSStubListener=yes
Run Code Online (Sandbox Code Playgroud)

到:

DNSStubListener=no
Run Code Online (Sandbox Code Playgroud)

然后重新启动 systemd-resolve 和 dnsmasq,或者重新启动。

  1. 您可能需要重置 /etc/resolv.conf 的符号链接如果 dnsmasq 未运行)...

sudo mv /etc/resolv.conf /etc/resolv.conf.OLD# 保存旧的符号链接

sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf# 创建新的符号链接

更新#1:

评论中提出了此安装的许多细节,但我们仍然没有最终的工作解决方案。以下是一些需要识别的要点...


DNSStubListener=no不属于/etc/resolv.conf. (/etc/resolv.conf(通常)不应直接编辑)。这是对 的编辑/etc/systemd/resolved.confDNS=也可以在那里进行编辑以添加 DNS 服务器地址。


/etc/resolv.conf应该是一个符号链接,链接到 /run 中两个可能的位置之一。

NEW -> /run/systemd/resolve/resolv.conf
OLD -> ../run/resolvconf/resolv.conf
Run Code Online (Sandbox Code Playgroud)

并且应该包含 127.0.0.53 (如果 dnsmasq 正在运行,则为 127.0.0.1),或 DNS 名称服务器地址,或您的路由器地址(例如: 192.168.1.1


如果您要使用 NetworkManager 而不是 netplan,那么/etc/netplan应该至少包含一个 .yaml 文件,其中包含...

network:
  version: 2
  renderer: NetworkManager
Run Code Online (Sandbox Code Playgroud)

其次是...

sudo netplan generate# 生成配置文件

sudo netplan apply# 应用配置


如果您使用 NetworkManager,那么/etc/NetworkManager/NetworkManager.conf应该存在...并且应该看起来像...

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no
Run Code Online (Sandbox Code Playgroud)

如果dnsmasqANDsystemd-resolve正在运行,那么你应该在我的答案中执行#1。

如果dnsmasq没有运行,并且systemd-resolve正在运行,那么你应该执行我的答案中的#2。