内网 DNS 解析失败决策树:外网能上但打不开内部 OA 怎么查
我在企业办公网现场见过不止一次:某部门多人同时反馈"微信能正常聊、网页也能开,就是内部 OA 系统打不开"。第一反应往往是"OA 服务器宕了"或者"OA 前端出 bug",结果运维扑过去查半天服务器,最后发现服务器根本没毛病——是终端解析不出内网域名。
这类故障最坑的地方在于:它长得像服务器故障,其实根子在终端的 DNS 配置。下面这张决策树专门处理"外网正常、内网域名不通"这一类,避免你一上来就误判。
60 秒判断:是不是 DNS 问题
先别急着动服务器。用一句话自测:
外网(百度、微信网页版、github)都能开,唯独公司内网域名(oa.xxx.com、git.xxx.com)打不开 → 高度怀疑 DNS 下发错误。
如果连外网也打不开,那不是本文范围,先查网关和物理链路。
排障决策树
用户反馈:OA 网页打不开,但外网正常
│
├─ 先确认范围
│ ├─ 只有一个人打不开?→ 多半是他本机 DNS 缓存/配置问题(看本机)
│ └─ 多人同时打不开? → 大概率是 DHCP 下发了错误 DNS(看 DHCP/网络)
│
├─ ping OA 的 IP 地址(用 IP 直连,绕开域名)
│ ├─ IP 能通、域名不通 → 坐实是 DNS 解析问题(不是服务器挂了)★入口最常见
│ └─ IP 也不通 → 不是 DNS,去查 OA 服务器/网络连通性(本文不展开)
│
├─ ipconfig /all 看"DNS Servers"一行
│ ├─ 显示的是公网 DNS(114.114.114.114 / 8.8.8.8)?
│ │ → 终端错拿了外网 DNS,内网域名自然解析不出 → 切回内网 DNS
│ └─ 显示的确实是内网 DNS?
│ ├─ 但 nslookup oa.xxx.com 仍失败 → 内网 DNS 本身没这条记录/转发坏了
│ └─ nslookup 正常 → 是终端缓存作怪,flushdns 即可
│
└─ 根因定位(多人场景)
├─ 私接小路由器抢 DHCP?→ 关掉它,保留唯一受控 DHCP
├─ Option 43 配错下发外网 DNS?→ 修正作用域选项
└─ 终端残留旧网络 DNS?→ 释放重获 / 组策略固化
决策树的核心就一句:先分清"服务器挂了"还是"域名解析不出",再决定去查服务器还是查 DNS 配置。前面那步 ping IP 是整个判断的支点——IP 通说明服务器活着,问题立刻收敛到 DNS。
三步定位命令
按这个顺序跑,基本能在五分钟内定性。
第一步:确认是不是只卡在域名上
说明:用 IP 直连绕开了域名解析。IP 能通、域名不通,就等于证明了"服务器活着,是名字查不出来"。
第二步:看终端到底拿到了哪个 DNS
找"DNS Servers"那一行。正常应该显示公司内网 DNS(例如 10.20.30.10)。如果显示的是 114.114.114.114、8.8.8.8 或手机热点的 DNS,那就是错拿了外网 DNS。
第三步:针对性验证解析
nslookup oa.xxx.com :: 用系统默认 DNS 查,失败说明默认 DNS 不认内网域名
nslookup oa.xxx.com 10.20.30.10 :: 指定内网 DNS 查,能通 → 证明内网 DNS 本身没问题,是终端没用它
ipconfig /displaydns :: 看系统缓存里 oa.xxx.com 是不是停在了错误记录
ipconfig /flushdns :: 清缓存后重试,排除"旧缓存作怪"
一键修复脚本(应急用,复制即用)
下面这段 PowerShell 在靠 DHCP 下发 DNS 的终端上最稳妥:释放旧地址、重获新地址(拿到正确的内网 DNS),再清一次缓存。
# 一键切回内网 DNS(应急脚本,需以管理员运行)
# 仅适用于"DHCP 自动获取 DNS"的终端;固定 IP 环境请勿直接用,见下文说明
Write-Host ">> 释放当前 IP 与 DNS 租约..." -ForegroundColor Cyan
ipconfig /release | Out-Null
Write-Host ">> 重新获取地址(含正确的内网 DNS)..." -ForegroundColor Cyan
ipconfig /renew | Out-Null
Write-Host ">> 清空 DNS 缓存..." -ForegroundColor Cyan
ipconfig /flushdns | Out-Null
# 校验结果
$dns = (Get-DnsClientServerAddress -AddressFamily IPv4 | Where-Object { $_.ServerAddresses } | Select-Object -ExpandProperty ServerAddresses) -join ", "
Write-Host ">> 当前 DNS 服务器: $dns" -ForegroundColor Yellow
Write-Host ">> 请再次尝试打开内部 OA;若仍失败,检查 DHCP Option 43 下发是否正确。" -ForegroundColor Green
诚实说明:这段脚本只做"释放/重获 DHCP + 清缓存",它不在任何 HA/网络设备上执行,也不模拟你的网络。它解决的是"终端残留错误 DNS"这一类;如果根因在 DHCP 下发本身(多人同时中招),脚本治标不治本,必须去 DHCP 侧修(见下节)。
固定 IP 环境的机器不要跑上面的 /release /renew,那会把静态配置冲掉。这类机器应改用组策略或手动在"网络连接→IPv4→DNS"里指定内网 DNS,再用 Set-DnsClientServerAddress 固化:
# 固定 IP 终端:直接指定内网 DNS(示例,按你内网实际地址改)
Set-DnsClientServerAddress -InterfaceIndex (Get-NetAdapter | Where-Object { $_.Status -eq 'Up' }).ifIndex `
-ServerAddresses ("10.20.30.10","10.20.30.11")
治本:让"错的下发"不再发生
单台修完只是止血。多人同时中招,根因一定在 DHCP 或网络结构,按这三层收口:
| 层级 | 动作 | 防的是什么 |
|---|---|---|
| 网络层 | 全网只允许一台受控 DHCP 服务器;关掉私接小路由器的 DHCP | 私接设备抢答、把外网 DNS 塞给终端 |
| 配置层 | DHCP 作用域 Option 43 固定下发内网 DNS;域环境用 GPO 强制指定 | Option 配错把公网 DNS 当内网下发 |
| 终端层 | 固定 IP 机器做 DNS 基线检查,纳入装机模板 | 单台终端残留旧网络 DNS |
一个常被忽略的点:DHCP Option 43 不只是给 AP/电话用的。很多企业在 Option 43 里顺手写了 DNS,结果写成了外网地址,终端拿到就错。改 Option 43 前先 ipconfig /all 抓一台正常的终端,照着它"对的那行"去配,别凭记忆填。
决策速查表(拿来即用)
| 现象 | 第一反应(误判) | 真实根因 | 该去查哪 |
|---|---|---|---|
| 外网正常、OA 打不开 | OA 服务器宕机 | 终端 DNS 错拿外网 | 本机 ipconfig /all |
| 单人打不开、别人正常 | OA 前端 bug | 本机 DNS 缓存/残留 | flushdns + 重获 DHCP |
| 多人同时打不开 | OA 系统挂了 | DHCP 下发错误 DNS | DHCP Option 43 / 私接路由 |
| IP 能通域名不通 | 网络不通 | 域名解析失败 | DNS 服务器与转发 |
| IP 也不通 | 一定是 DNS | 其实是服务器/链路 | OA 服务器本身 |
这张表就是"最容易被误判成什么"的落地版——前五条故障里,八成工单一开始都被报成了"OA 坏了",按表反着查能省掉一大半无效排查。
常见问题(FAQ)
Q:为什么外网正常、偏偏内网 OA 打不开?
A:内网 OA 用的是公司内网域名(如 oa.corp.local),只有内网 DNS 服务器认得怎么解析;公网 DNS(114、8.8.8.8)根本不认这个域名。终端一旦错拿公网 DNS,外网照常、内网域名全失效,表现就是"微信能聊、OA 打不开"。
Q:ipconfig /all 和 /displaydns 看哪个?
A:/all 看"终端当前从 DHCP 拿到了哪个 DNS 服务器",用来判断下发对不对;/displaydns 看"系统已缓存了哪些解析结果",用来排查旧缓存。排障第一步看 /all 确认 DNS 服务器本身,第二步才清 /flushdns 缓存。
Q:一键修复脚本会不会把正常的网络配置搞坏?
A:脚本只做释放并重获 DHCP、把 DNS 切回指定内网服务器,不删驱动、不改注册表。但固定 IP 环境本就不靠 DHCP 下发 DNS,"重获 DHCP"反而可能清空静态配置,这种环境应改用组策略或手动指定,脚本仅作应急参考。
Q:为什么 DHCP 会下发错误的 DNS?
A:常见三种:① 网络里混入了非受控 DHCP 服务器(如私接小路由器)抢答;② 多 DHCP 作用域的 Option 43/51 配错,把外网 DNS 当内网下发;③ 终端曾连过别的网络,残留旧 DNS 配置没清。根因通常在 DHCP 侧,不是终端侧。
Q:修复完怎么防止再犯?
A:三层固化:网络层确保只有受控 DHCP 能下发、关掉私接路由器的 DHCP;配置层用 Option 43 固定下发内网 DNS、必要时域控 GPO 强制指定;终端层对固定 IP 机器做基线检查。治标是切回 DNS,治本是让"错的下发"根本不发生。
延伸阅读与参考
- Microsoft Learn — ipconfig 命令参考 —
/all、/release、/renew、/flushdns的官方参数说明 - Microsoft Learn — nslookup 命令参考 — 指定 DNS 服务器查询、排错用法
- Cloudflare — 什么是 DNS — 递归/迭代解析、转发器的基础概念
- Microsoft Learn — DHCP 选项(Option 43 等) — 作用域选项如何下发、配错会怎样
本文是面向运维排障的决策资产,外部链接仅作权威概念出处;具体命令以你内网实际地址与作用域为准。
相关教程与工具
- DNS 排障检测:dig +trace 从递归到权威的六症状决策树 — 公网 DNS 的六类症状与 dig 姿势,本文是它的"企业内网版"补位
- DNS 解析原理与递归查询 — 想搞懂递归/迭代、转发器为什么重要,先看这篇
- dnsmasq 配置与内网解析 — 内网 DNS 自己搭建时的参考
- NTP 时间同步 — 另一个"多人同时中招"的企业现场故障,机制不同但排法同源
本文故障案例来自一线办公网现场,作为判断依据的可信锚点;具体命令以你内网实际地址与作用域为准。