Linux如何解决DNS解析失败_Linux网络配置检查与resolv文件修复【方法】

发布时间 - 2026-01-07 00:00:00    点击率:
DNS解析失败时应依次检查并修正/etc/resolv.conf、NetworkManager配置、网卡ifcfg文件、本地DNS缓存及/nsswitch.conf中hosts行,确保nameserver有效且解析顺序正确。

如果您在Linux系统中执行ping、curl或wget等命令时提示“Name or service not known”,或浏览器无法通过域名访问网站,则很可能是DNS解析失败。以下是多种可立即实施的修复方法:

一、检查并修正/etc/resolv.conf配置

/etc/resolv.conf是Linux系统解析域名的核心配置文件,若其中nameserver缺失、格式错误或指向不可达地址,将直接导致解析失败。需确保该文件存在且至少含一个有效DNS服务器条目。

1、使用cat命令查看当前配置:cat /etc/resolv.conf

2、若输出为空、仅含#注释行,或nameserver后为0.0.0.0、127.0.0.1(未运行本地DNS服务时)等无效地址,则需编辑该文件:

3、使用sudo权限打开文件:sudo nano /etc/resolv.conf

4、删除所有无效行,添加至少一行合法nameserver,例如:nameserver 8.8.8.8

5、可追加备用DNS提升容错性:nameserver 223.5.5.5

6、保存退出后,立即测试:dig @8.8.8.8 google.com +short

二、修改NetworkManager DNS设置(适用于使用NetworkManager的发行版)

当系统由NetworkManager管理网络时,/etc/resolv.conf可能被自动覆盖。直接编辑resolv.conf会被重置,因此必须通过NetworkManager配置持久化DNS设置。

1、编辑主配置文件:sudo nano /etc/NetworkManager/NetworkManager.conf

2、在[main]段落下方新增一行:dns=8.8.8.8,223.6.6.6

3、保存后重启NetworkManager服务:sudo systemctl restart NetworkManager

4、验证是否生效:nmcli dev show | grep DNS

三、通过网卡配置文件固化DNS(适用于RHEL/CentOS/Fedora系)

对于不使用NetworkManager、而依赖传统network服务的系统,DNS应写入对应网卡的ifcfg-文件中,确保重启后仍有效。

1、确认网卡名称:ip -br a | grep UP

2、编辑对应配置文件,如ens33:sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33

3、在文件末尾添加两行:DNS1=114.114.114.114

4、再添加备用DNS:DNS2=8.8.8.8

5、重启网络服务:sudo systemctl restart network

四、清除本地DNS缓存服务

若系统启用了nscd、systemd-resolved或dnsmasq等本地缓存服务,其内部缓存可能包含过期或损坏记录,干扰新DNS配置生效。

1、检查nscd是否运行:sudo systemctl is-active nscd

2、若返回active,则重启它:sudo systemctl restart nscd

3、检查systemd-resolved状态:systemctl is-active systemd-resolved

4、若启用,刷新其缓存:sudo resolvectl flush-caches

5、验证缓存已清空:sudo resolvectl statistics | grep "Cache"

五、验证DNS解析器顺序与NSS配置

/etc/nsswitch.conf控制主机名解析的优先级顺序。若hosts行缺失dns,系统将跳过DNS查询,仅依赖/etc/hosts文件,导致外部域名全部失效。

1、查看当前hosts解析策略:grep "^hosts:" /etc/nsswitch.conf

2、标准输出应为:hosts: files dns

3、若结果为hosts: files或含[NOTFOUND=return]等异常修饰,则需编辑该文件:

4、执行:sudo nano /etc/nsswitch.conf

5、定位到hosts行,确保其值为:hosts: files dns

6、保存后无需重启,立即生效,可立刻用getent hosts测试:getent hosts google.com


# linux  # centos  # go  # 浏览器  # curl  # ai  # switch  # dns  # google  # 配置文件  # linux系统 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  如何用低价快速搭建高质量网站?  js代码实现下拉菜单【推荐】  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  百度浏览器如何管理插件 百度浏览器插件管理方法  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  如何在服务器上三步完成建站并提升流量?  焦点电影公司作品,电影焦点结局是什么?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  详解jQuery中基本的动画方法  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  如何在万网主机上快速搭建网站?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  清除minerd进程的简单方法  🚀拖拽式CMS建站能否实现高效与个性化并存?  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  如何在 Pandas 中基于一列条件计算另一列的分组均值  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  微信推文制作网站有哪些,怎么做微信推文,急?  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Laravel如何使用withoutEvents方法临时禁用模型事件  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  Linux网络带宽限制_tc配置实践解析【教程】  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  如何在阿里云虚拟主机上快速搭建个人网站?  如何快速查询网址的建站时间与历史轨迹?  北京网站制作的公司有哪些,北京白云观官方网站?  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  如何快速搭建高效服务器建站系统?  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Internet Explorer官网直接进入 IE浏览器在线体验版网址  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Laravel如何配置任务调度?(Cron Job示例)  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Laravel如何实现多对多模型关联?(Eloquent教程)  如何挑选优质建站一级代理提升网站排名?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何在腾讯云免费申请建站?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  公司门户网站制作流程,华为官网怎么做?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何在腾讯云服务器快速搭建个人网站?  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】