欢迎访问楠楠博客,专注于网络营销类百科知识解答!
当前位置:楠楠博客 >> 软件编程 >> 系统 >> 详情

linux怎么设置dns服务

2026-09-27 系统 责编:楠楠博客 9132浏览

在Linux系统中设置DNS服务,关键取决于你使用的发行版、网络管理工具以及是否需要持久化配置。通常涉及修改< b>resolv.conf、使用< b>systemd-resolved、< b>NetworkManager或< b>netplan等机制。以下从临时生效、永久生效及常见场景三个层面给出专业配置方法。

linux怎么设置dns服务

首先理解核心文件:/etc/resolv.conf 是传统DNS客户端配置入口,其中 nameserver 指定DNS服务器IP,search 定义域名搜索列表。直接编辑该文件可以立即生效,但很多现代系统会通过工具动态生成此文件,手工修改可能被覆盖。执行 echo "nameserver 8.8.8.8" > /etc/resolv.conf 即可临时设置,但重启网络服务或系统后可能丢失。注意,此文件通常被符号链接指向systemd-resolved或NetworkManager生成的目标,因此需谨慎处理。

对于使用systemd-resolved的系统(如较新的Ubuntu、Fedora),推荐使用 resolvectl 命令。先执行 systemctl enable --now systemd-resolved 启动服务,然后通过 resolvectl dns eth0 1.1.1.1 为指定的网络接口(如eth0)设置DNS。若要永久生效,需要修改 /etc/systemd/resolved.conf 或 /etc/systemd/resolved.conf.d/ 下的配置文件,设置 DNS=8.8.8.8 和 FallbackDNS=1.1.1.1,然后执行 systemctl restart systemd-resolved。同时应确保 /etc/resolv.conf 符号链接指向 /run/systemd/resolve/stub-resolv.conf 或 /usr/lib/systemd/resolv.conf,以便客户端解析流量通过本地回环接口 127.0.0.53 转发。

对于使用NetworkManager的桌面或服务器环境,推荐使用 nmcli 命令管理DNS。先查看连接名称:nmcli con show。然后修改指定连接的IPv4 DNS:nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8 1.1.1.1",并设置 ipv4.ignore-auto-dns yes 忽略DHCP自动获取的DNS。最后重启连接生效:nmcli con down "Wired connection 1" && nmcli con up "Wired connection 1"。这种方式会将配置写入NetworkManager的配置文件,永久保留。

对于使用netplan的Ubuntu Server(18.04及以上),配置位于 /etc/netplan/*.yaml。在对应网络接口的 dhcp4: true 或静态IP配置下,添加 nameservers: 字段,例如:addresses: [8.8.8.8, 1.1.1.1],同时可设置 search: [example.com]。修改完成后执行 netplan apply 使配置生效。如果使用DHCP,建议显式设置 dhcp4-overrides: 下的 use-dns: false,避免覆盖手工指定的DNS。

对于传统sysconfig风格的发行版(如CentOS/RHEL 7及更早版本),配置文件为 /etc/sysconfig/network-scripts/ifcfg-eth0。在此文件中添加 DNS1=8.8.8.8、DNS2=1.1.1.1,然后执行 systemctl restart network 或 service network restart。在CentOS/RHEL 8及以上版本,系统改用NetworkManager和systemd-resolved,可参照前述nmcli方式,或直接使用 nmcli 修改。

此外,还有一种全局方法:修改 /etc/resolv.conf 并设置其不可变属性,防止被其他工具覆盖。执行 chattr +i /etc/resolv.conf 后手工写入nameserver。但此方法不推荐,因为它会阻断系统管理工具的正常更新,可能导致网络故障难排查。更合理的方式是配置系统对应的管理工具,并让其自动生成正确的resolv.conf。

在容器或轻量级环境中,如果没有systemd或NetworkManager,可以直接编辑 /etc/resolv.conf 并确保网络服务不会覆盖它。在树莓派或嵌入式Linux中,也可通过修改 /etc/dhcp/dhclient.conf 预先设置DNS:supersede domain-name-servers 8.8.8.8;,然后重启dhclient。但最通用、最兼容的方法是先判断系统使用哪个网络守护进程,再对症下药。

最后验证配置是否生效,可以使用 resolvectl status(systemd环境)、nmcli dev show(NetworkManager环境)、netplan get(netplan环境)或直接运行 cat /etc/resolv.conf。实际测试解析可用 nslookup example.com 或 dig example.com。如果DNS配置未生效,请检查防火墙是否阻止UDP 53端口、DNS服务器是否可达,以及是否存在多个网络管理工具冲突。

总结:设置Linux DNS服务的核心原则是使用系统统一的网络配置接口,而不是直接篡改resolv.conf。临时调试可直接改resolv.conf,持久生效则根据发行版选择 resolvectl、nmcli、netplan 或 ifcfg 文件。生产环境建议至少配置两个DNS服务器以提供冗余,并确保DNS查询延迟和解析正确性满足业务需求。

本站申明:楠楠博客为网络营销类百科展示网站,网站所有信息均来源于网络,若有误或侵权请联系本站!
为您推荐
  • 在Linux操作系统中,查看RAM(随机存取存储器)的信息是系统管理和性能监控的关键任务。以下内容基于专业知识,介绍多种准确的方法来查看RAM状态,包括使用命令行工具和系统文件。所有回答均用标签排版,重点词汇用加粗,
    2026-09-22 系统 4205浏览
  • 在Linux系统中删除文件通常使用rm(remove)命令。该命令是Linux基础且核心的文件管理命令之一,用于移除文件或目录链接。删除操作是永久性的,不会进入回收站或垃圾箱,因此执行前需谨慎确认。rm命令的基础语法为:rm [选项
    2026-09-21 系统 8143浏览
栏目推荐
  • 在苹果iOS系统中,用户常说的“三指”通常指两种功能:一是三指编辑手势,用于快捷执行复制、粘贴、撤销、重做等文本操作;二是三指控制缩放手势,用于辅助功能中的“缩放”。若您想取消或关闭这些三指功能,需根据不
    2026-09-07 系统 5608浏览
  • 在 Linux 系统中,使用 rpm 命令完成软件包安装后,执行已安装程序的方式取决于软件包的类型与安装路径。以下是专业且通用的执行方法:首先,确认软件包是否安装成功:rpm -qa | grep 软件包名 或 rpm -q 软件包名,若返回包含版
    2026-09-07 系统 7124浏览
  • 在Linux运维面试中,面试官通常会从多个专业维度考察候选人的技术能力和实践经验,以确保其能够胜任企业级系统运维工作。以下是常见的问题领域,涵盖基础知识、系统管理、网络配置等核心内容。首先,面试官会测试Linux基
    2026-09-07 系统 7396浏览
栏目热点
全站推荐
  • 要理解头条(通常指今日头条平台)如何开通网页链接,首先需明确这涉及在头条内容中添加外部链接的功能,这主要通过头条号(今日头条的创作者平台)实现。以下内容基于全网专业信息整理,旨在提供准确指导。在今日头
    2026-09-25 网页 9756浏览
  • 北京常规网站建设商店在行业内通常指代北京地区提供标准化企业网站建设服务的专业公司或服务商。这些服务商主要面向中小企业,提供从域名注册、服务器部署、页面设计到前端开发与后台管理的一站式服务。北京作为互联
    2026-09-25 网站建设 4035浏览
  • 在当前的2025年市场环境中,讨论“哪个虚拟主机好用”已不能一概而论。虚拟主机(Shared Hosting)早已从“唯一建站选择”演变为“特定场景下的入门方案”。判定一款产品是否“好用”,关键在于稳定性、访问速度、管理面板
    2026-09-25 虚拟主机 6058浏览
友情链接
底部分割线