
我有一個 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
DNS伺服器清單中的8.8.8.8
and到底是什麼?8.8.4.4
它們預設就在那裡,我的目的不是在它們之上再添加兩個 DNS 伺服器。我想用我自己的自訂 DNS 伺服器完全取代它們。
如何從 DNS 伺服器清單中刪除8.8.8.8
和?8.8.4.4
答案1
dhcp4:正確
改成dhcp4:假。它從你的 DHCP 伺服器(可能是路由器)取得 Google DNS 伺服器,你有一個靜態 IP 設定。