甲方运维收藏:内网DNS配置5个坑第3个90%的人都踩过

admin 2026-07-13 05:40:28 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细解析内网DNS配置的五个常见陷阱,包括DNS服务器顺序错误、反向解析缺失、TTL配置不合理、递归查询未限制及DNSSEC未开启,每个问题均提供具体修复方案。同时附AdGuardHome零基础配置教程,涵盖加密DNS、广告拦截与内网解析,适合运维人员快速排查与优化。 综合评分: 84 文章分类: 安全运营,安全工具,内网渗透,网络安全,解决方案


cover_image

甲方运维收藏:内网DNS配置5个坑 第3个90%的人都踩过

宝十八 宝十八

网络安全老宋

2026年7月6日 12:00 山东

在小说阅读器读本章

去阅读

导语: 你好,我是网络安全老宋。安全攻防干货准时送达!

文章较长,全是实战命令。

内网DNS配置这事,说难不难,说简单也不简单。最难受的是,你以为配好了,实际上每天都在给自己埋雷——轻则内网访问卡顿,重则整个办公室断网。今天聊5个最常见的DNS配置陷阱,每个都带修复方案。最后加一个AdGuard Home 零基础配置教程,不用记命令,点点鼠标就能搞定加密DNS、广告拦截、内网净化——评论区说这个教程比命令行容易火,我信了。

01

DNS服务器顺序配反了

这个坑,新手踩,老手也踩。很多人觉得”主DNS配192.168.1.1,备DNS配8.8.8.8“没毛病。错。

问题在哪?很多运维把公网DNS(如8.8.8.8)填在前面,内网DNS填在后面。客户端解析oa.company.com时,先问公网DNS,公网不认识,等它超时后才轮到内网DNS——内网访问慢如蜗牛,根源就在这。

正确做法:当企业存在内网域名时,应保证负责该域名解析的DNS服务器优先可达。简单说:谁负责这个域名,谁排在前面

Shell · /etc/resolv.conf

# Linux /etc/resolv.conf # 内网DNS(谁负责这个域名,谁在前面) nameserver 192.168.1.10  # 内网DNS(负责 oa.company.com 等内部域名) nameserver 192.168.1.11  # 内网DNS(备) # 公网DNS(兜底,负责解析公网域名) nameserver 8.8.8.8

02

忘记配置反向解析

正向解析(域名→IP)大家都知道配,反向解析(IP→域名)经常被忽略。

后果是什么?某些服务会做反向解析验证:SSH登录时如果设置了UseDNS yes,服务器会反向解析客户端IP;邮件服务器接收邮件时会反向解析发送方IP做黑白名单判断;日志分析工具习惯把IP显示成域名,没有反向解析就显示一堆数字,你看着也难受。

配置方法(以Bind为例):

Bind · named.conf

# 正向区域zone "company.com" IN {    type master;    file "company.com.zone";};# 反向区域(192.168.1.0/24网段)zone "1.168.192.in-addr.arpa" IN {    type master;    file "192.168.1.zone";};

03

TTL配置不合理

TTL(Time To Live)决定DNS记录在客户端缓存的时间。

TTL太长的坑:改了DNS记录,客户端要等TTL过期才能生效,故障切换慢,影响业务连续性。

TTL太短的坑:DNS查询频率高,内网DNS服务器压力大,客户端每次都要重新解析,访问反而变慢。

推荐配置

  • 常规记录:TTL=3600(1小时)
  • 频繁变更的记录:TTL=300(5分钟)
  • 故障切换用的记录:TTL=60(1分钟)

Bind · zone file

$TTL 3600 @   IN  SOA ns1.company.com. admin.company.com. (     2024062501  ; Serial     3600        ; Refresh        1800        ; Retry          604800      ; Expire          86400 )     ; Minimum TTL

04

DNS递归查询没限制

默认情况下,DNS服务器会帮任何客户端做递归查询——即查询它不是权威的域名。

安全风险:被用作DNS放大攻击的跳板,消耗服务器资源,泄露内网拓扑信息。

正确做法:限制递归查询范围。

Bind · named.conf

# 只允许内网网段做递归查询 acl internal-networks {         192.168.0.0/16;         10.0.0.0/8;         72.16.0.0/12; };  options {     allow-recursion { internal-networks; };         recursion yes; };

05

DNSSEC忘了开

DNSSEC(DNS安全扩展)能防止DNS劫持和缓存污染攻击。很多人觉得”内网无所谓”,其实内网更需要——内网攻击更容易(物理接入成本低),员工安全意识弱(容易点钓鱼链接),内网数据更敏感(财务、人事系统)。

开启DNSSEC验证(Bind 9.16+):

Bind · named.conf options

options {         dnssec-validation auto;  /* Bind 9.16+ 直接写这一条即可,dnssec-enable 已废弃 */ };

AdGuard Home 零基础配置教程(UI版)

这部分专门写给不想敲命令的同学,跟着步骤点点鼠标,约30~40分钟能配好加密DNS、广告拦截、内网解析一条龙。如果是软路由或NAS上跑,时间更短。

准备:一台能跑Docker的设备

AdGuard Home 可以部署在多种设备上,不一定是VPS:

第一步:安装 AdGuard Home

SSH登录服务器,执行一键安装脚本:

Shell

curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

安装完成后,AdGuard Home 会告诉你 Web 管理界面的地址,默认是:http://你的服务器IP:3000

⚠安装完后第一时间打开管理界面改默认密码,别等着——3000端口对外开放,等于把后台暴露在公网。

第二步:设置上游 DNS 服务器

打开管理界面 → 设置 → DNS设置 → 上游DNS服务器。推荐配置(填入以下任意一组):

上游 DNS 配置

# 国内推荐(速度快,屏蔽广告+追踪) https://dnsalid.dns.li/resolve https://doh.pub/dns-query  # 国外推荐(隐私保护好) https://dns.google/dns-query https://cloudflare-dns.com/dns-query  # 自定义广告拦截DNS https://清洁DNS1.dns.li/resolve

💡多填几个上游 DNS,用英文逗号隔开,AdGuard Home 默认会并发查询所有上游 DNS,选择响应最快的那个返回结果(负载均衡模式)。你也可以在设置里改为”优先使用第一个”,按配置顺序来。

第三步:开启 DNS 加密(DoH/DoT)

在 DNS设置 → 加密设置 里:

第四步:配置内网 DNS 解析(DNS Rewrite)

这一步是 AdGuard Home 的灵魂——让内网域名正常解析。

打开 DNS设置 → DNS Rewrite(或 自定义DNS规则),添加内网域名映射:

AdGuard Home · DNS Rewrite 规则

# 格式:域名 $dnsrewrite=NOERROR;A;目标IP # 示例: ||oa.company.com^$dnsrewrite=NOERROR;A;192.168.1.10 ||mail.company.com^$dnsrewrite=NOERROR;A;192.168.1.11

推荐用 corp.example.com 或 internal.company.com 作为内网域名后缀,不要用 .local.local 属于 mDNS/Multicast DNS 协议专用,如苹果的 Bonjour、Avahi,企业DNS使用会冲突)。

第五步:配置广告和追踪器拦截

打开 过滤器 → DNS黑名单,启用以下推荐规则:

推荐过滤规则

EasyList(去广告) EasyList China(中文广告) AdGuard DNS filter

开启后,广告域名直接DNS层面返回空响应,广告插件都省了。

拦截效果测试

Shell

# 在客户端执行(测试广告域名是否被拦截) nslookup ad.doubleclick.net 你的AdGuard服务器IP # 如果返回 NXDOMAIN 或 0.0.0.0,说明拦截生效 #(AdGuard Home 也可能返回 REFUSED 或空地址,都表示拦截成功)

第六步:让你的设备用上加密DNS

路由器全局配置(推荐):登录路由器 → DHCP设置 → DNS服务器填AdGuard Home的IP → 保存。路由器配置后,连接该路由器的所有设备自动使用,无需单独配置每个设备。

验证配置是否生效

在任意设备上打开:https://browserleaks.com/dns

如果显示你的 AdGuard 服务器IP,且DNS查询类型显示”DOH”或”DOT”,说明配置成功——DNS查询已加密,但ISP仍可通过IP、SNI等推断访问目标

快速排错清单

配置完DNS后,用这个清单自查一遍:

✅内网域名(如 oa.company.com)解析由负责它的 DNS 处理吗?

✅反向解析配了吗?

✅TTL 设置合理吗(不是随意留默认值)?

✅递归查询限制了吗(内网DNS不对外开放)?

✅DNSSEC 开了吗?

✅防火墙放行了 DNS 端口(UDP 53)吗?

✅日志功能开了吗(方便排错)?

✅DNS 缓存清了吗(改了配置客户端不生效可能是缓存问题)?

快速验证命令

Shell · 排错命令

# 1. 测试解析是否正常 nslookup oa.company.com 192.168.1.10  # 2. 查看解析详细过程 dig +trace oa.company.com  # 3. 测试反向解析 dig -x 192.168.1.100  # 4. 检查DNSSEC验证结果 dig +dnssec oa.company.com  # 5. 查看DNS查询耗时 dig oa.company.com | grep "Query time"

往期精彩

运维的内网DNS进阶:Split Horizon 配置指南

渗透测试从业者的全能工具箱:76,700+ Star、185+工具一键到位(HackingTool 从零到实战)

甲方运维应急响应的日志分析利器:Klogg 大文件秒开,朴实可靠


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:网络安全老宋 宝十八 宝十八《甲方运维收藏:内网DNS配置5个坑 第3个90%的人都踩过》

评论:0   参与:  0