0

0

如何配置LinuxDNS服务器 resolv.conf文件详解

P粉602998670

P粉602998670

发布时间:2025-08-25 10:49:01

|

1210人浏览过

|

来源于php中文网

原创

resolv.conf是linux系统中dns解析的核心配置文件,位于/etc/resolv.conf,用于定义dns服务器地址、搜索域及解析行为选项;1. nameserver指定最多3个dns服务器ip,系统按顺序尝试;2. search设置最多6个域名后缀用于不完整域名的自动补全;3. domain定义主机主域名,会被search覆盖,不应与search共存;4. options配置解析器参数,如timeout、attempts、rotate和ndots以优化查询行为;实际配置需注意该文件常为符号链接,由systemd-resolved或networkmanager动态管理,手动修改可能被覆盖;永久配置应通过nmcli、netplan等工具进行,避免直接编辑文件;验证可通过cat查看配置,nslookup、dig测试解析,systemd-resolve查看状态,确保dns生效,正确理解resolv.conf有助于排查网络与解析问题。

如何配置LinuxDNS服务器 resolv.conf文件详解

在Linux系统中,

resolv.conf
文件是DNS解析的核心配置文件,它决定了系统如何查找域名对应的IP地址。虽然现代Linux发行版大多使用
systemd-resolved
NetworkManager
动态管理DNS,但理解
resolv.conf
的结构和配置仍然非常重要。


一、resolv.conf 文件的作用

resolv.conf
是DNS解析器(resolver)的配置文件,位于
/etc/resolv.conf
。当系统需要解析域名(如访问网站、ping域名等)时,会读取该文件中的DNS服务器地址和搜索规则,来完成域名到IP的转换。


二、resolv.conf 常见配置项详解

以下是

resolv.conf
中常见的配置指令及其含义:

1.
nameserver
(DNS服务器地址)

指定DNS服务器的IP地址,最多可配置3个。

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 114.114.114.114
  • 系统会按顺序尝试这些DNS服务器,失败后切换下一个。
  • 推荐使用可靠的公共DNS或企业内部DNS服务器。
  • 不要配置过多
    nameserver
    ,通常1~3个足够。

2.
search
(搜索域)

设置默认的域名搜索后缀。当你输入一个不完整的域名(如

host1
),系统会自动尝试在这些域中查找。

search example.com local.net

此时执行:

ping host1

系统会依次尝试解析:

  • host1.example.com
  • host1.local.net
⚠️ 注意:search 最多只能设置6个域,且不建议设置过多,以免影响解析效率。

3.
domain
(本地域名)

设置本地主机的主域名,通常由系统自动设置,与主机名相关。

domain example.com
  • 如果设置了
    domain
    ,它会作为默认的搜索域(相当于
    search example.com
    )。
  • search
    domain
    不应同时使用,否则
    search
    会覆盖
    domain

4.
options
(解析器选项)

用于调整DNS解析行为,支持多个参数,常见如下:

options timeout:2 attempts:3 rotate

常用选项说明:

  • timeout:seconds
    :每次DNS查询超时时间(默认5秒)
  • attempts:n
    :重试次数(默认2次)
  • rotate
    :轮询使用
    nameserver
    ,避免始终使用第一个
  • ndots:n
    :当域名中点的数量 ≥ n 时,优先使用完整域名解析(如
    ndots:2
    a.b.c
    直接解析,不加search后缀)

示例:

options ndots:1
可让
google.com
这类域名不经过 search 域拼接,提升解析效率。

Bolt.new
Bolt.new

Bolt.new是一个免费的AI全栈开发工具

下载

三、resolv.conf 的实际配置示例

# /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
search example.com dev.local
options timeout:2 attempts:3 rotate

这个配置表示:

  • 使用Google和国内114公共DNS
  • 解析不完整域名时,先查
    example.com
    ,再查
    dev.local
  • 每次查询最多2秒超时,最多尝试3次,轮询DNS服务器

四、注意事项与常见问题

1. 文件可能被自动覆盖

现代Linux系统中,

/etc/resolv.conf
通常是符号链接,指向由
systemd-resolved
NetworkManager
动态生成的文件。

ls -l /etc/resolv.conf
# 输出可能为:
# lrwxrwxrwx 1 root root 39 Apr 1 10:00 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
  • 如果你手动修改该文件,重启网络或系统后可能被重置。
  • 正确做法:通过网络管理工具配置DNS。

2. 如何永久配置DNS?

  • 使用NetworkManager(桌面或服务器常用):

    nmcli con modify "网络连接名" ipv4.dns "8.8.8.8 114.114.114.114"
    nmcli con modify "网络连接名" ipv4.dns-search "example.com"
    nmcli con up "网络连接名"
  • 修改Netplan(Ubuntu 18.04+):

    编辑

    /etc/netplan/*.yaml

    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          addresses:
            - 192.168.1.100/24
          gateway4: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 114.114.114.114]
            search: [example.com, local.net]

    应用配置:

    sudo netplan apply
  • 静态修改(不推荐,除非无动态管理)

    如果确定系统不使用

    systemd-resolved
    ,可直接编辑
    /etc/resolv.conf
    ,但建议先备份:

    sudo cp /etc/resolv.conf /etc/resolv.conf.bak
    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

    并设置文件为只读防止被覆盖:

    sudo chattr +i /etc/resolv.conf   # 锁定文件
    sudo chattr -i /etc/resolv.conf   # 解锁(后续可修改)

五、验证DNS配置是否生效

# 查看当前resolv.conf内容
cat /etc/resolv.conf

# 测试域名解析
nslookup google.com
dig example.com

# 查看DNS解析统计(如果使用systemd-resolved)
systemd-resolve --status

# 临时测试使用特定DNS
dig @8.8.8.8 google.com

基本上就这些。

resolv.conf
虽然简单,但它是Linux网络通信的基石之一。理解其配置逻辑,能帮助你快速排查网络连接、域名解析失败等问题。关键是:别只改文件,要看系统由谁在管理它。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1348

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

701

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

776

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

572

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

545

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

297

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

380

2023.07.25

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.3万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号