我有一台 ubuntu 20.04 服务器,我想更改其 DNS 设置。该服务器正在使用 netplan 和 cloud-init。
/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
我通过创建包含以下内容的文件禁用了 cloud-init 网络配置:
network: {config: disabled}
有一个自动生成的,/etc/netplan/50-cloud-init.yaml
内容如下(我nameservers
自己添加了该部分):
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
ethernets:
ens3:
dhcp4: true
match:
macaddress: fa:16:3e:d9:e5:96
mtu: 1458
set-name: ens3
addresses: [192.168.0.48/24]
gateway4: 192.168.0.1
nameservers:
addresses: [178.22.122.100, 185.51.200.2]
为了确保没有任何东西覆盖这些设置,我在目录中创建了一个50-cloud-init.yaml
文件副本,其内容如下:60-change-dns.yaml
/etc/netplan/
network:
version: 2
ethernets:
ens3:
dhcp4: true
match:
macaddress: fa:16:3e:d9:e5:96
mtu: 1458
set-name: ens3
addresses: [192.168.0.48/24]
gateway4: 192.168.0.1
nameservers:
addresses: [178.22.122.100, 185.51.200.2]
然后我运行sudo netplan apply
命令,一切似乎都运行正常。为了检查名称服务器是否已更改,我执行了sudo resolvectl status
以下输出(有趣的部分):
Link 2 (ens3)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: 178.22.122.100
DNS Servers: 178.22.122.100
185.51.200.2
8.8.8.8
8.8.4.4
DNS Domain: openstacklocal
8.8.8.8
DNS 服务器列表中的和到底是什么8.8.4.4
?它们是默认存在的,我的目的不是在它们之上再添加两个 DNS 服务器。我想用我自己的自定义 DNS 服务器完全替换它们。
如何从 DNS 服务器列表中删除8.8.8.8
和?8.8.4.4
答案1
dhcp4: true
改成dhcp4: 假。它从您的 DHCP 服务器(可能是路由器)获取 Google DNS 服务器,并且您有一个静态 IP 配置。