Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

Linux 無法解析域名:/etc/resolv.conf 修復指南

編輯:關於伺服器

故障現象

# ping google.com
ping: google.com: Name or service not known

# wget https://example.com
Resolving example.com... failed: Temporary failure in name resolution

根因

/etc/resolv.conf 遺失、被誤刪、或 DHCP 更新失敗導致無 DNS 伺服器設定。

立即修復:手動指定 DNS

vi /etc/resolv.conf

# 寫入 (推薦使用公開穩定 DNS)
nameserver 1.1.1.1        # Cloudflare
nameserver 8.8.8.8        # Google
nameserver 223.5.5.5      # 阿里雲
nameserver 114.114.114.114 # 114DNS

# 可選:搜尋域名後綴
search example.com localdomain

# 可選:本地域名
domain example.com

關鍵字說明

關鍵字用途必要性
nameserverDNS 伺服器 IP (可多行,按順序查詢)✅ 必須
search單標籤名稱自動補全後綴 (如 host → host.example.com)可選
domain本地域名 (舊版相容,同 search 第一項)可選
sortlist對回應 IP 排序 (極少用)可選

永久生效方案 (防重開機/網路重啟被覆蓋)

方案一:NetworkManager (桌面/現代 Server)

nmcli con mod "System eth0" ipv4.dns "1.1.1.1 8.8.8.8"
nmcli con mod "System eth0" ipv4.ignore-auto-dns yes
systemctl restart NetworkManager

方案二:systemd-resolved (Ubuntu 18.04+/CentOS 8+)

vi /etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=223.5.5.5 114.114.114.114
Domains=~example.com
systemctl restart systemd-resolved

方案三:傳統網路腳本 (CentOS 6/7 傳統)

vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=1.1.1.1
DNS2=8.8.8.8
PEERDNS=no  # 防止 DHCP 覆蓋
systemctl restart network

方案四:鎖定檔案 (暴力但有效)

chattr +i /etc/resolv.conf  # 鎖定不可修改
# 解鎖:chattr -i /etc/resolv.conf

驗證測試

# 基本解析
dig google.com +short
nslookup google.com

# 追蹤解析路徑
dig +trace google.com

# 測試連通性
ping -c 3 8.8.8.8
telnet 8.8.8.8 53

常見坑點

  • 容器環境:docker run --dns=1.1.1.1 或宿主機 /etc/docker/daemon.json 設定
  • VPN 衝突:OpenConnect/VPNC 可能修改 resolv.conf,需在腳本中恢復
  • IPv6 DNS:若網路支援 IPv6,添加 nameserver 2606:4700:4700::1111
Copyright © Windows教程網 All Rights Reserved