DNS域名系統是網絡基礎架構的核心部分,提供了一種將域名轉換為IP地址的方法。
您可以將DNS視為互聯網的電話簿。注意這篇文章不是在Ubuntu 22.04配置自己的DNS服務器。而是給客戶端配置DNS的IP地址。
連接到Internet的每個設備均由其IP地址作為唯一標識。當您在瀏覽器中鍵入要訪問的網站時,其域名必須轉換為相應的IP地址。
什么是 DNS與DNS工作方式
操作系統首先檢查其hosts文件中是否存在相應的域,如果域名中不存在hosts文件,它將查詢配置的DNS域名服務器以解析指定的域名。
域名解析后,系統將緩存請求并保留域名和相應IP地址的記錄。DNS域名服務器為其他設備執行DNS解釋的服務器。
通常,DNS服務器地址由您的ISP分配。但是,這些DNS服務器可能運行緩慢或未定期更新,這可能會導致在查詢域名時解析為錯誤的IP地址。
或者出現延遲,有時您可能根本無法解析所需的域名的IP地址。有很多免費的公共DNS服務器。
這些DNS域名服務器快速,并定期更新。這是一些最受歡迎的公共DNS服務器。Google(8.8.8.8
,8.8.4.4
),Cloudflare(1.1.1.1
,1.0.0.1
)。
OpenDNS(208.67.222.222
,208.67.220.220
),Level3(209.244.0.3
,209.244.0.4
)。
如果要為連接到本地網絡的所有設備設置DNS域名服務器,那么最簡單和建議的方法是在家庭路由器進行更改。
Ubuntu 22.04 查看 DNS
在Linux 查看正在使用DNS服務器IP地址方法有很多,可以使用dig
命令或者查看systemd-resolve服務的狀態。
systemd-resolve -status
命令打印很多信息。但我們可以使用grep
命令來過濾DNS Servers
字符串。
對于dig命令,如果只需要查看當前使用DNS地址,請運行命令dig myfreax.com | grep SERVER
。
dig myfreax.com | grep SERVER
sudo systemd-resolve --status | grep 'DNS Servers' -A2
dig myfreax.com | grep SERVER
;; SERVER: 8.8.8.8#53(8.8.8.8)
sudo systemd-resolve --status | grep 'DNS Servers' -A2
DNS Servers: 1.1.1.1
1.0.0.1
Ubuntu 22.04 桌面設置DNS
在Ubuntu 22.04桌面環境設置DNS地址非常簡單,不需要任何技術知識。首先打開設置
窗口。
如果您連接到WiFi網絡,請單擊Wi-FI
標簽。否則,如果您有有線連接,請單擊網絡
選項卡。
選擇要為其設置DNS的連接,然后單擊齒輪圖標以打開網絡管理器。選擇IPv4設置
選項卡。
禁用自動
切換開關,然后輸入DNS服務器的IP地址,以逗號分隔。我們將使用Google DNS服務器。
點擊應用
按鈕以保存更改。更改立即生效,除非您的系統或應用程序緩存了DNS記錄。
如果要切換回原來的設置,請打開網絡管理器,轉到IPv4設置
并啟用自動
切換開關。
Ubuntu 22.04 服務器設置DNS
過去,每當您想在Linux中配置DNS地址時,只需打開etc/resolv.conf
文件,編輯記錄,保存文件就可以。
現在etc/resolv.conf
文件仍然存在,但它是由systemd-resolved服務控制的符號鏈接,不應手動對其進行編輯。
systemd-resolved是為本地服務和應用程序提供DNS名稱解析的服務,可以使用Netplan進行配置,Netplan是Ubuntu 22.04的默認網絡管理工具。
Netplan配置文件存儲在etc/netplan
目錄。您可能會在此目錄中找到一個或兩個YAML文件。
各個安裝程序的文件名可能不同。通常,該文件名為01-netcfg.yaml
或50-cloud-init.yaml
,但在您的系統中,可能會有所不同。
這些文件使您可以配置網絡接口,我們通常稱為網卡,包括IP地址,網關,DNS域名服務器等。
要設置DNS,請使用你喜歡的文本編輯器編輯文件,在本教程中我們將使用vim編輯文件。
sudo vim etc/netplan/01-network-manager-all.yaml
/etc/netplan/01-network-manager-all.yaml
network:
version: 2
renderer: NetworkManager
ethernets:
ens3:
dhcp4: true
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
注意,你必須修改本教程中接口名稱ens3
為你的計算機接口名稱。然后使用您的首選DNS更改nameservers的IP地址。
例如如果您想使用Cloudflare的DNS服務器,則可以將nameservers的addresses
行更改為。
DNS服務器IP地址必須用逗號分隔,如果該nameservers字段不存在,請將nameservers添加到接口名稱字段下。
nameservers:
addresses: [1.1.1.1, 1.0.0.1]
編輯Yaml文件時,請確保您遵循YAML代碼縮進標準。如果配置中存在語法錯誤,Netplan將無法解析該文件。完成后,保存文件并退出vim。
然后運行命令sudo netplan apply
應用更改。Netplan將為systemd-resolved的服務生成配置文件/run/systemd/resolve/resolv.conf。
此外,還有一些應用程序依然使用etc/resolv.conf的配置文件的DNS地址進行域名的解釋,因此你還需要修改etc/resolv.conf文件。
要修改此文件我們只需要將/run/systemd/resolve/resolv.conf軟鏈接到etc/resolv.con即可。
運行命令sudo ln -sf /run/systemd/resolve/resolv.conf etc/resolv.conf
。
sudo netplan apply
sudo ln -sf /run/systemd/resolve/resolv.conf etc/resolv.conf
Ubuntu 驗證DNS設置
要驗證是否正確設置DNS地址,請運行命令systemd-resolve --status | grep 'DNS Servers' -A2
或者命令dig www.myfreax.com
。
systemd-resolve -status
命令打印很多信息。我們使用grep
命令來過濾DNS Servers
字符串。
sudo systemd-resolve --status | grep 'DNS Servers' -A2
DNS Servers: 1.1.1.1
1.0.0.1
這里需要注意的是,如果你的Ubuntu 22.04帶有桌面環境,請一定使用桌面環境的網絡設置來修改DNS的IP地址。
如果你想使用命令的方式修改DNS地址,可能會不如你所愿。當你在終端運行命令dig www.myfreax.com
的時候。
你將會在dig命令的結果看到應答的服務器永遠是;; SERVER: 127.0.0.1#53(127.0.0.1)或者是你的網關地址;; SERVER: 192.168.1.1#53(192.168.1.1)。
dig www.myfreax.com
; <<>> DiG 9.16.1-Ubuntu <<>> www.myfreax.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 451
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.myfreax.com. IN A
;; ANSWER SECTION:
www.myfreax.com. 300 IN A 43.457.68.101
;; Query time: 119 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Dec 01 19:14:33 HKT 2022
;; MSG SIZE rcvd: 60
結論
Netplan是Ubuntu 22.04的默認網絡管理工具,替代之前的Ubuntu版本中用于配置網絡的etc/resolv.conf
和etc/network/interfaces
配置文件。
-
Linux
+關注
關注
87文章
11227瀏覽量
208920 -
服務器
+關注
關注
12文章
9020瀏覽量
85182 -
DNS
+關注
關注
0文章
217瀏覽量
19794 -
Ubuntu
+關注
關注
5文章
560瀏覽量
29563
發布評論請先 登錄
相關推薦
評論