DNS域名系統(tǒng)是網(wǎng)絡(luò)基礎(chǔ)架構(gòu)的核心部分,提供了一種將域名轉(zhuǎn)換為IP地址的方法。
您可以將DNS視為互聯(lián)網(wǎng)的電話簿。注意這篇文章不是在Ubuntu 22.04配置自己的DNS服務(wù)器。而是給客戶端配置DNS的IP地址。
連接到Internet的每個(gè)設(shè)備均由其IP地址作為唯一標(biāo)識。當(dāng)您在瀏覽器中鍵入要訪問的網(wǎng)站時(shí),其域名必須轉(zhuǎn)換為相應(yīng)的IP地址。
什么是 DNS與DNS工作方式
操作系統(tǒng)首先檢查其hosts文件中是否存在相應(yīng)的域,如果域名中不存在hosts文件,它將查詢配置的DNS域名服務(wù)器以解析指定的域名。
域名解析后,系統(tǒng)將緩存請求并保留域名和相應(yīng)IP地址的記錄。DNS域名服務(wù)器為其他設(shè)備執(zhí)行DNS解釋的服務(wù)器。
通常,DNS服務(wù)器地址由您的ISP分配。但是,這些DNS服務(wù)器可能運(yùn)行緩慢或未定期更新,這可能會導(dǎo)致在查詢域名時(shí)解析為錯誤的IP地址。
或者出現(xiàn)延遲,有時(shí)您可能根本無法解析所需的域名的IP地址。有很多免費(fèi)的公共DNS服務(wù)器。
這些DNS域名服務(wù)器快速,并定期更新。這是一些最受歡迎的公共DNS服務(wù)器。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
)。
如果要為連接到本地網(wǎng)絡(luò)的所有設(shè)備設(shè)置DNS域名服務(wù)器,那么最簡單和建議的方法是在家庭路由器進(jìn)行更改。
Ubuntu 22.04 查看 DNS
在Linux 查看正在使用DNS服務(wù)器IP地址方法有很多,可以使用dig
命令或者查看systemd-resolve服務(wù)的狀態(tài)。
systemd-resolve -status
命令打印很多信息。但我們可以使用grep
命令來過濾DNS Servers
字符串。
對于dig命令,如果只需要查看當(dāng)前使用DNS地址,請運(yùn)行命令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 桌面設(shè)置DNS
在Ubuntu 22.04桌面環(huán)境設(shè)置DNS地址非常簡單,不需要任何技術(shù)知識。首先打開設(shè)置
窗口。
如果您連接到WiFi網(wǎng)絡(luò),請單擊Wi-FI
標(biāo)簽。否則,如果您有有線連接,請單擊網(wǎng)絡(luò)
選項(xiàng)卡。
選擇要為其設(shè)置DNS的連接,然后單擊齒輪圖標(biāo)以打開網(wǎng)絡(luò)管理器。選擇IPv4設(shè)置
選項(xiàng)卡。
禁用自動
切換開關(guān),然后輸入DNS服務(wù)器的IP地址,以逗號分隔。我們將使用Google DNS服務(wù)器。
點(diǎn)擊應(yīng)用
按鈕以保存更改。更改立即生效,除非您的系統(tǒng)或應(yīng)用程序緩存了DNS記錄。
如果要切換回原來的設(shè)置,請打開網(wǎng)絡(luò)管理器,轉(zhuǎn)到IPv4設(shè)置
并啟用自動
切換開關(guān)。
Ubuntu 22.04 服務(wù)器設(shè)置DNS
過去,每當(dāng)您想在Linux中配置DNS地址時(shí),只需打開etc/resolv.conf
文件,編輯記錄,保存文件就可以。
現(xiàn)在etc/resolv.conf
文件仍然存在,但它是由systemd-resolved服務(wù)控制的符號鏈接,不應(yīng)手動對其進(jìn)行編輯。
systemd-resolved是為本地服務(wù)和應(yīng)用程序提供DNS名稱解析的服務(wù),可以使用Netplan進(jìn)行配置,Netplan是Ubuntu 22.04的默認(rèn)網(wǎng)絡(luò)管理工具。
Netplan配置文件存儲在etc/netplan
目錄。您可能會在此目錄中找到一個(gè)或兩個(gè)YAML文件。
各個(gè)安裝程序的文件名可能不同。通常,該文件名為01-netcfg.yaml
或50-cloud-init.yaml
,但在您的系統(tǒng)中,可能會有所不同。
這些文件使您可以配置網(wǎng)絡(luò)接口,我們通常稱為網(wǎng)卡,包括IP地址,網(wǎng)關(guān),DNS域名服務(wù)器等。
要設(shè)置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
為你的計(jì)算機(jī)接口名稱。然后使用您的首選DNS更改nameservers的IP地址。
例如如果您想使用Cloudflare的DNS服務(wù)器,則可以將nameservers的addresses
行更改為。
DNS服務(wù)器IP地址必須用逗號分隔,如果該nameservers字段不存在,請將nameservers添加到接口名稱字段下。
nameservers:
addresses: [1.1.1.1, 1.0.0.1]
編輯Yaml文件時(shí),請確保您遵循YAML代碼縮進(jìn)標(biāo)準(zhǔn)。如果配置中存在語法錯誤,Netplan將無法解析該文件。完成后,保存文件并退出vim。
然后運(yùn)行命令sudo netplan apply
應(yīng)用更改。Netplan將為systemd-resolved的服務(wù)生成配置文件/run/systemd/resolve/resolv.conf。
此外,還有一些應(yīng)用程序依然使用etc/resolv.conf的配置文件的DNS地址進(jìn)行域名的解釋,因此你還需要修改etc/resolv.conf文件。
要修改此文件我們只需要將/run/systemd/resolve/resolv.conf軟鏈接到etc/resolv.con即可。
運(yùn)行命令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 驗(yàn)證DNS設(shè)置
要驗(yàn)證是否正確設(shè)置DNS地址,請運(yùn)行命令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帶有桌面環(huán)境,請一定使用桌面環(huán)境的網(wǎng)絡(luò)設(shè)置來修改DNS的IP地址。
如果你想使用命令的方式修改DNS地址,可能會不如你所愿。當(dāng)你在終端運(yùn)行命令dig www.myfreax.com
的時(shí)候。
你將會在dig命令的結(jié)果看到應(yīng)答的服務(wù)器永遠(yuǎn)是;; SERVER: 127.0.0.1#53(127.0.0.1)或者是你的網(wǎng)關(guān)地址;; 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
結(jié)論
Netplan是Ubuntu 22.04的默認(rèn)網(wǎng)絡(luò)管理工具,替代之前的Ubuntu版本中用于配置網(wǎng)絡(luò)的etc/resolv.conf
和etc/network/interfaces
配置文件。
-
Linux
+關(guān)注
關(guān)注
87文章
11350瀏覽量
210462 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9321瀏覽量
86102 -
DNS
+關(guān)注
關(guān)注
0文章
219瀏覽量
19934 -
Ubuntu
+關(guān)注
關(guān)注
5文章
566瀏覽量
30048
發(fā)布評論請先 登錄
相關(guān)推薦
評論