我正在尝试设置 Ubuntu 18.04 LTS,它似乎正在使用 netplan 来配置网络。在这种情况下,我需要覆盖 DHCP 提供的 DNS 服务器并使用手动分配的名称服务器。因此,我修改了 netplan 配置,如下所示:
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp2s1:
dhcp4: yes
dhcp4-overrides:
use-dns: false
dhcp6: yes
dhcp6-overrides:
use-dns: false
nameservers:
addresses: ["fd35:2ff0:b0b9:d0c0::1:1", 192.168.255.17]
在另一个问题等等netplan.io,有人解释说 netplan 有选项dhcp4-overrides
可以dhcp6-overrides
允许这样做,但这些选项似乎不起作用。netplan generate
或netplan apply
给出错误:
Error in network definition //etc/netplan/01-netcfg.yaml line 6 column 6: unknown key dhcp4-overrides
那么,我如何确保我指定的名称服务器将被使用,而从 DHCP 获取的名称服务器永远不会被使用?如果有必要,我愿意将 netplan 扔进垃圾箱。
答案1
dhcp4-overrides
需要 netplan 0.95 或更高版本,Ubuntu 18.04 中尚不可用。请参阅https://bugs.launchpad.net/netplan/+bug/1759014了解此稳定更新的状态。
答案2
我快要把 netplan 扔进垃圾箱了,但我有一个似乎可行的解决方法。
看到它正在渲染到 networkd,并且 systemd-resolved 正在处理 DNS,所以我直接创建了相关配置。
我从 netplan 中删除了 dhcp 覆盖位,只剩下:
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp2s1:
dhcp4: yes
dhcp6: yes
然后我创建了一个文件/etc/systemd/resolved.conf.d/dns.conf
来指定我需要的 DNS 服务器:
[Resolve]
DNS=fd35:2ff0:b0b9:d0c0::1:1 192.168.255.17