在 Ubuntu 服务器 18.04 上,我已禁用 netplan 并使用 /etc/network/interfaces。
sudo apt-get -y install ifupdown
cat <<EOM | sudo bash -c 'cat > /etc/network/interfaces'
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.5.5
netmask 255.255.255.0
gateway 192.168.5.254
dns-nameservers 192.168.5.53 192.168.5.5
EOM
sudo ifdown --force eth0 lo && sudo ifup -a
sudo systemctl stop networkd-dispatcher
sudo systemctl disable networkd-dispatcher
sudo systemctl mask networkd-dispatcher
sudo apt-get -y purge nplan netplan.io
但显然 systemd-resolve 没有考虑到这个dns-nameservers
领域。
其中/etc/resolv.conf
只包含以下内容:
nameserver 127.0.0.53
的输出ls -la /etc/resolv.conf
为:
lrwxrwxrwx 1 root root 39 Oct 2 15:28 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
的输出sudo systemd-resolve --status | grep -A3 Server
为空。
我可以像这样定义 DNS 服务器/etc/systemd/resolved.conf
:
[Resolve]
DNS=192.168.5.53 192.168.5.5
那么的输出sudo systemd-resolve --status | grep -A3 Server
是:
DNS Servers: 192.168.5.53
192.168.5.5
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
并且它们被正确使用并出现在 中/etc/resolv.conf
。
如何让dns-nameservers
配置行工作?
答案1
resolvconf
您也需要这个包裹。
因此,要完全摆脱 netplan:
- 配置
/etc/network/interfaces
- 安装 ifupdown 和相关工具:
$ sudo apt install ifupdown resolvconf
- 删除 netplan:
$ sudo apt remove nplan netplan.io
答案2
如何使 dns-nameservers 配置行工作?
通过状态命令可以看到,该线路运行正常:
DNS Servers: 192.168.5.53
192.168.5.5
符号链接 /etc/resolv.conf 显示:
nameserver 127.0.0.53
这表明 dnsmasq 正在此处运行:https://help.ubuntu.com/community/Dnsmasq
简而言之,这意味着域名查找将首先查询本地缓存,以查看该站点是否曾经被访问过。127.0.0.xx 在此上下文中为“本地”。如果是,本地缓存将提供 IP 地址。如果该站点之前没有被访问过,并且本地缓存中没有可用的引用,则只会使用列出的 DNS 名称服务器;在您的情况下,将使用 192.168.5.53 和 192.168.5.5。
您上面给出的读数完全正常且在意料之中。
答案3
查看答案这里。
您需要编辑/etc/systemd/resolved.conf
文件来更改 Ubuntu 18.04 上的 DNS。
答案4
网络接口文件在 ubuntu 18 上发生了很大变化。我建议你查看这个网站或另一个网站,以正确配置你的网络适配器
无论如何,您也可以(这是最简单的方法)从设置中的网络管理器配置您的 IP 和名称服务器。