系統網絡配置正確,ping 8.8.8.8 通,但瀏覽器無法打開網頁,curl / wget 域名報錯 Could not resolve host。典型的 **DNS 解析失敗**。
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.16.6.50
NETMASK=255.255.255.0
GATEWAY=172.16.6.1
DNS1=114.114.114.114 # 關鍵:此處需配置 DNS
DNS2=8.8.8.8
若使用 NetworkManager,檢查 nmcli con show 對應連接的 ipv4.dns 字段。
# dig www.baidu.com
# nslookup www.baidu.com 114.114.114.114
# host www.baidu.com
# cat /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
options timeout:2 attempts:1
若為空或指向錯誤 IP,手動修改或重啟網絡服務重新生成:
# systemctl restart NetworkManager
# 或
# systemctl restart network
# grep hosts /etc/nsswitch.conf
hosts: files dns myhostname
確保 dns 在 files 之後,系統才會查詢 DNS 服務器。
# firewall-cmd --list-all | grep 53
# iptables -nL | grep 53
# sestatus
臨時關閉防火牆測試:systemctl stop firewalld。
若環境配置了 HTTP/HTTPS 代理,瀏覽器可能走代理而終端直連。檢查環境變量:
env | grep -i proxy
#!/bin/bash
nmcli con mod "System eth0" ipv4.dns "114.114.114.114 8.8.8.8"
nmcli con mod "System eth0" ipv4.ignore-auto-dns yes
systemctl restart NetworkManager
echo "DNS 已更新,測試解析:"
dig +short www.baidu.com
「能 Ping IP 不能解析域名」90% 是 DNS 配置缺失或錯誤。按順序檢查:網卡配置 DNS → resolv.conf 生效 → 防火牆放行 53 端口 → 代理干擾,通常可在 5 分鐘內定位解決。