所以我有一个运行 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
这导致我禁用systemd-resolve
使用说明这里,这解决了我网络中的所有问题(其他域机器无法运行apt-get update
等等)但我想知道禁用是否systemd-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
我可以手动设置resolv.conf
(删除符号链接后)如下,它可以工作
nameserver 192.168.2.23
nameserver 127.0.0.53
search MYDOMAIN.co.uk
DNSStubListener=no
答案1
重新启用 systemd-resolve。
两种可能性……
- 关于
dnsmasq
和systemd-resolved
...
执行ps auxc | grep -i dns
和ps auxc | grep -i resolv
并查找dnsmasq
和systemd-resolved
,如果两者都在运行,则需要systemd-resolved
通过编辑/etc/systemd/resolved.conf
和禁用的 DNS 部分......
改变:
#DNSStubListener=yes
到:
DNSStubListener=no
然后重新启动 systemd-resolve 和 dnsmasq,或者重新启动。
- 您可能需要重置 /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.conf
。DNS=
也可以在那里编辑以添加 DNS 服务器地址。
/etc/resolv.conf
应该是一个符号链接,链接到 /run 中的两个可能位置之一。
NEW -> /run/systemd/resolve/resolv.conf
OLD -> ../run/resolvconf/resolv.conf
并且应该包含 127.0.0.53 (如果 dnsmasq 正在运行,则为 127.0.0.1)、DNS 名称服务器地址或路由器地址(例如:192.168.1.1)
如果您要使用 NetworkManager 而不是 netplan,那么/etc/netplan
应该至少包含一个包含以下内容的 .yaml 文件...
network:
version: 2
renderer: NetworkManager
其次是...
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
如果dnsmasq
ANDsystemd-resolve
正在运行,那么您应该按照我的回答执行 #1。
如果dnsmasq
没有运行,并且systemd-resolve
正在运行,那么您应该执行我的答案中的#2。