Linux系统配置本地DNS解析 加速服务器内网访问

雨萱姑娘_3504

雨萱姑娘_3504

2026-04-10

545人浏览

原创

改/etc/resolv.conf不生效是因为systemd-resolved或networkmanager接管并覆盖该文件;需通过对应服务配置dns,如编辑/resolved.conf设dns及~域名分流,或用nmcli修改连接dns设置。

linux系统配置本地dns解析 加速服务器内网访问

为什么改 /etc/resolv.conf 不生效?

很多用户手动改了 /etc/resolv.conf,加了内网 DNS(比如 10.0.0.2),但 nslookup 或服务访问仍走公网 DNS,甚至重启后文件被重写。这是因为现代 Linux(尤其是 systemd 系统)默认由 systemd-resolved 或 NetworkManager 管理该文件,直接编辑会被覆盖。

真正起作用的是上游解析器配置,不是这个文件本身。判断方式:ls -l /etc/resolv.conf —— 如果是软链接指向 /run/systemd/resolve/stub-resolv.conf 或 /run/NetworkManager/resolv.conf,就说明被接管了。

  • 用 systemctl is-active systemd-resolved 查是否启用 systemd-resolved
  • 用 nmcli dev show | grep DNS 查 NetworkManager 当前 DNS 设置
  • 临时验证:运行 sudo systemd-resolve --set-dns=10.0.0.2 --interface=eth0(仅当前会话有效)

给 systemd-resolved 配内网 DNS(推荐)

这是最干净、兼容性最好的方案,尤其适合 Ubuntu 20.04+、CentOS 8+ 等默认启用 systemd-resolved 的系统。它支持 per-interface DNS、缓存、fallback 机制,且不破坏原有网络管理逻辑。

操作分两步:先禁用 stub 模式(避免环路),再为指定网卡配 DNS。

  • 编辑 /etc/systemd/resolved.conf,取消注释并修改:
    [Resolve]<br>DNS=10.0.0.2<br>FallbackDNS=8.8.8.8 114.114.114.114<br>Domains=~example.local ~corp
    (~example.local 表示该域名及子域强制走此处 DNS)
  • 重启服务:sudo systemctl restart systemd-resolved
  • 确认生效:resolvectl status eth0(看 DNS servers 是否含 10.0.0.2)

注意:Domains 行的波浪号 ~ 很关键 —— 没它,内网域名仍可能被转发到 fallback DNS;有它,才实现「内网域名走内网 DNS,其他走 fallback」的分流效果。

VLAN Linux Client
VLAN Linux Client

管理 VLAN.CN Linux 客户端的安装、登录、组网连接、服务控制及网络诊断操作。

下载

NetworkManager 用户怎么设?

如果你用 nmcli 或桌面环境(GNOME/KDE)管理网络,直接改 resolved.conf 可能被 NM 覆盖。正确做法是通过 NM 的 connection 配置 DNS:

  • 查当前连接名:nmcli connection show(通常叫 Wired connection 1 或 System eth0)
  • 设 DNS 和搜索域:sudo nmcli connection modify "Wired connection 1" ipv4.dns "10.0.0.2 8.8.8.8"
    sudo nmcli connection modify "Wired connection 1" ipv4.dns-search "corp.example.com"
  • 关闭自动获取 DNS:sudo nmcli connection modify "Wired connection 1" ipv4.ignore-auto-dns yes
  • 重启连接:sudo nmcli connection down "Wired connection 1" && sudo nmcli connection up "Wired connection 1"

此时 /etc/resolv.conf 会指向 NM 生成的版本,内容包含你指定的 DNS。验证:cat /etc/resolv.conf 应看到 nameserver 10.0.0.2。

绕过 systemd/NM:直接写死 /etc/resolv.conf(慎用)

某些嵌入式或容器化场景需要绝对控制权,可停掉 systemd-resolved 和 NetworkManager 的 DNS 管理,手动锁定 /etc/resolv.conf。

  • 停服务:sudo systemctl stop systemd-resolved && sudo systemctl disable systemd-resolved
  • 删软链,建新文件:
    sudo rm /etc/resolv.conf && sudo tee /etc/resolv.conf nameserver 10.0.0.2<br>nameserver 8.8.8.8<br>search corp.example.com<br>EOF
  • 加只读锁防覆盖:sudo chattr +i /etc/resolv.conf(后续要改需先 chattr -i)

风险点:若系统依赖 systemd-resolved 的 DNSSEC 或 LLMNR 功能,停用后部分服务(如某些 Avahi 场景)可能异常;chattr +i 后忘了解锁,升级或重装网络组件会失败。

真正难的不是加一行 nameserver,而是搞清谁在管 DNS、谁有最终解释权——多一层抽象,就多一个覆盖点。内网加速效果好不好,取决于请求是否真进了你的 10.0.0.2,而不是看起来写了它。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
go中interface用法
go中interface用法

本专题整合了go语言中int相关内容,阅读专题下面的文章了解更多详细内容。

2025.09.10

3370

10

磁盘配额是什么
磁盘配额是什么

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

2023.06.21

3770

4

如何安装LINUX
如何安装LINUX

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

2023.06.29

3253

10

linux find
linux find

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

2023.06.30

2353

5

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

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

2023.07.05

5690

7

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

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

2023.07.06

5342

7

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

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

2023.07.20

3173

8

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

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

2023.07.20

2665

4

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

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

2023.07.25

2879

6

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习