Linux中「名稱解析臨時失敗」錯誤的疑難解答
介紹
Linux 用戶在嘗試訪問網站或執行網路命令時可能會遇到「臨時名稱解析失敗」錯誤。該錯誤表示系統無法將域名轉換為其對應的 IP 地址。多種因素可能導致此錯誤,包括網路連接問題、resolv.conf 文件的配置不正確以及防火牆限制。在本指南中,我們將探討此錯誤的常見原因,並提供解決方案,以幫助您解決問題。
常見原因和解決方案
慢或無網路連接
在進一步排除故障之前,檢查您的互聯網連接非常重要。慢或斷開的互聯網連接可能是「臨時名稱解析失敗」錯誤的根本原因。
解決方案
確認您的系統具有穩定和正常工作的互聯網連接。如果您的互聯網連接速度緩慢或連接已斷開,請嘗試在繼續之前解決連接問題。
resolv.conf 文件配置不正確
resolv.conf 文件負責在 Linux 系統上配置 DNS 伺服器。如果此文件未正確設置,則系統可能無法解析域名。
解決方案
首先,在文本編輯器(如nano)中打開 resolv.conf 文件:
sudo nano /etc/resolv.conf
確保在 resolv.conf 文件中至少定義了一個名字伺服器。有效的 nameserver 條目應如下所示:
nameserver 8.8.8.8
如果文件中沒有定義名字伺服器,請添加一個。一些由 Google 擁有的知名 nameserver 是 8.8.8.8
和 8.8.4.4
。修改完畢後,保存文件並重新啟動 DNS 解析器服務:
sudo systemctl restart systemd-resolved.service
通過 ping 一個網站來驗證 DNS 伺服器是否正常工作:
ping example.com
如果與該網站建立了通信,則 DNS 伺服器正常工作。
resolv.conf 文件許可權配置不正確
如果 resolv.conf 文件包含有效的 DNS 伺服器,但錯誤仍然存在,則可能是由於文件許可權設置不正確。
解決方案
將 resolv.conf 文件的所有權更改為 root 用戶:
sudo chown root:root /etc/resolv.conf
修改文件許可權以允許系統上的所有用戶讀取該文件:
sudo chmod 644 /etc/resolv.conf
再次嘗試 ping 一個網站以檢查問題是否已解決。
防火牆限制
防火牆限制可能會阻止對必要埠的訪問,從而導致錯誤。埠 43(用於 whois 查詢)和 53(用於域名解析)對於 DNS 查詢非常重要。
解決方案
通過運行以下命令在 Uncomplicated Firewall(UFW)中打開必要的埠:
sudo ufw allow 43/tcp sudo ufw allow 53/tcp
注意:如果 UFW 默認未啟用,請使用 sudo ufw enable
啟用它。
允許埠後,重新載入 UFW 防火牆以應用更改:
sudo ufw reload
結論
「臨時名稱解析失敗」錯誤可能由多種因素引起,包括互聯網連接問題、resolv.conf 文件的配置不正確以及防火牆限制。通過解決這些常見原因,您可以解決錯誤並在 Linux 系統上成功訪問網站和執行網路命令