DNS Port 是多少?53、853、443 端口与 UDP/TCP 区别
简答:DNS Port 的核心答案是 53。传统 DNS 通常先用 UDP 53,遇到响应较大、UDP 截断或需要可靠传输时会改用 TCP 53;加密 DNS 中,DNS over TLS 通常使用 TCP 853,DNS over HTTPS 则通过 HTTPS 通常使用 443。配置防火墙时,不能只放行 UDP 53 后永久关闭 TCP 53。
定义:DNS Port 是 DNS 客户端、递归解析器或权威服务器传输查询与响应时使用的网络端口,传统 DNS 主要使用 UDP/TCP 53。
先看结论:DNS Port 对照表
如果你正在设置防火墙、路由器、服务器或抓包过滤器,可以先按传输方式判断端口。IANA 将传统 DNS 的 domain 服务登记在 TCP 53 和 UDP 53;DNS over TLS 的登记端口为 TCP 853。IANA 服务名称与端口注册表
| 方式 | 常见端口 | 传输协议 | 适用场景 |
|---|---|---|---|
| 传统 DNS 查询 | 53 | UDP | 大多数普通查询,交互开销较低 |
| 传统 DNS 回退或可靠传输 | 53 | TCP | 响应被截断、响应较大或需要 TCP 传输时 |
| DNS over TLS(DoT) | 853 | TCP | 通过 TLS 加密 DNS 查询和响应 |
| DNS over HTTPS(DoH) | 443 | HTTPS | 将 DNS 请求封装在 HTTPS 中 |
最快判断:普通 DNS 看 53,DoT 看 853,DoH 看 443。但 443 也承载普通 HTTPS,因此不能仅凭端口号判断某条连接一定是 DoH。Google Public DNS 的加密传输说明
UDP 53 和 TCP 53 为什么都要保留
传统 DNS 通常优先使用 UDP 53,因为不需要先建立 TCP 连接。DNS 客户端一般从系统分配的临时高位源端口发起请求,目标端口才是 DNS 服务器的 53;服务器返回响应时,通常从源端口 53 回到客户端的临时端口。Windows Server 的端口说明列出了这种源端口、目标端口和返回方向的区别。Microsoft Learn:DNS 使用的网络端口
如果 UDP 响应无法完整放入当前报文,服务器可能设置截断标志,客户端再使用 TCP 53 重新查询。EDNS0 可以让客户端声明更大的 UDP 负载空间,但它并不会让 TCP 53 失去作用。DNSSEC、TXT、SRV 等记录在某些情况下可能产生较大的响应,因此防火墙只放行 UDP 53,可能导致部分域名或记录类型解析失败。Microsoft 也提示,防火墙若错误拦截较大的 EDNS0 UDP 报文,可能造成部分查询失败。Microsoft Learn:部分 DNS 查询失败与 EDNS0
配置结论:传统 DNS 客户端通常需要向指定解析器出站允许 UDP 53 和 TCP 53;DNS 服务器则应根据角色和来源网段限制入站流量,而不是简单地把 53 端口向所有来源开放。
客户端源端口不是 53
普通客户端通常不会监听 53 端口。它会使用一个临时高位源端口访问 DNS 服务器的目标端口 53。Windows Server 文档列出的动态端口范围通常从 49152 开始,但具体系统、应用或网络设备可能存在差异,因此防火墙应优先使用有状态规则跟踪返回流量,避免手工写死客户端临时端口。
防火墙按设备角色怎么放行
DNS 客户端、递归解析器和权威 DNS 服务器的规则不同。先确认设备角色,再修改规则;修改前记录现有 DNS 地址和防火墙配置,修改后保留回滚方法。
| 设备角色 | 通常需要检查的流量 | 规则重点 |
|---|---|---|
| 普通电脑或手机 | 向指定解析器出站 UDP 53、TCP 53 | 允许有状态返回流量到客户端临时源端口 |
| 递归 DNS 服务器 | 客户端到本机的 UDP/TCP 53,以及本机到上游 DNS 的 UDP/TCP 53 | 限制可使用递归服务的来源网段,避免无范围开放 |
| 权威 DNS 服务器 | 公网或指定网络到本机的 UDP/TCP 53 | TCP 53不能简单关闭;还应按实际业务限制管理接口和区域传送 |
| DoT 客户端 | 向解析器出站 TCP 853 | 验证 TLS 连接和服务器名称,不要按明文 53 处理 |
| DoH 客户端 | 向 HTTPS 服务出站 TCP 443,具体实现也可能涉及其他 HTTPS 传输机制 | 不能仅凭 443 判断是否为 DoH |
Google 的公开文档说明,其 DoT 服务使用 853 端口,DoH 服务通过 HTTPS 443 提供;实际客户端仍应以所使用解析器的官方配置为准。Google Public DNS:DNS over TLS
- 先确认配置对象:记录当前解析器地址、传统 DNS 或加密 DNS 模式,以及现有防火墙规则。
- 只增加必要方向:普通客户端先允许到指定解析器的 UDP/TCP 53;使用 DoT 时再检查 TCP 853;使用 DoH 时检查对应 HTTPS 访问。
- 验证成功信号:查询能返回预期记录,TCP 回退不超时,防火墙日志显示请求和返回流量方向匹配。
- 失败时回滚:如果改规则后所有解析都失败,先恢复原规则和原 DNS 地址,再分别测试 UDP、TCP 或加密 DNS,不要同时修改多个变量。
DNS 端口异常怎么查:先分清 UDP、TCP 和加密 DNS
排查时不要只测试“能不能打开网页”。网页打不开可能来自 DNS、路由、代理、MTU 或应用层问题。更稳妥的顺序是先确认解析器,再分别验证传统 DNS 的 UDP/TCP 路径。
Windows 用 nslookup 测试
- 打开命令提示符,输入
nslookup进入交互模式。 - 输入
server 你的DNS服务器地址,切换到实际使用的解析器。 - 输入
set port=53确认 DNS 服务器端口。Microsoft 文档说明该命令会修改 nslookup 使用的 TCP/UDP DNS 服务器端口,默认值是 53。Microsoft Learn:nslookup set port - 先执行一次普通查询,记录是否返回 A、AAAA 或其他记录。
- 输入
set vc,再查询同一个域名,用于强制使用虚电路,也就是 TCP 方式。Microsoft 将set vc定义为选择是否使用虚电路发送请求。Microsoft Learn:nslookup set vc
如果普通查询成功、启用set vc后失败,优先检查 TCP 53 的防火墙、ACL、NAT 或服务器监听;如果两者都失败,再检查 DNS 地址、路由和本机网络。如果传统 53 失败而 DoT 或 DoH 正常,说明问题可能集中在明文 DNS 路径,但不能仅凭这一现象断定具体拦截位置。
抓包时怎么筛选
抓包可以先用port 53观察传统 DNS,再单独查看 TCP 53 是否出现重新查询。若使用 DoT,应查看 TCP 853 的 TLS 连接;若使用 DoH,则应结合目标域名、应用日志或加密 DNS 配置判断,因为普通 HTTPS 也会使用 443。不要把端口号本身当作服务身份的唯一证据。
DNS 能不能把域名指向 8080 等指定端口
普通 A 和 AAAA 记录只负责把域名映射到 IPv4 或 IPv6 地址,不能写成“域名:端口”来改变网站或应用的连接端口。需要访问非默认端口时,通常由 URL、客户端配置或应用协议决定,例如在 URL 中明确写出端口。
SRV 记录是例外场景。RFC 2782 定义的 SRV 记录包含 Priority、Weight、Port 和 Target 字段,可以为明确支持 SRV 服务发现的客户端提供目标端口。它不会强迫普通浏览器、普通 A/AAAA 查询或不支持 SRV 的应用自动改用该端口。IETF RFC 2782:DNS SRV 记录
| 需求 | 适合的方式 | 限制 |
|---|---|---|
| 把域名解析到服务器地址 | A 或 AAAA | 不携带应用端口 |
| 让支持服务发现的客户端获取端口 | SRV | 客户端必须明确支持 SRV |
| 访问网站的非默认端口 | URL 中写明端口 | 由客户端和应用协议决定是否接受 |
常见误区速查
- 只用 UDP 53:不完整。传统 DNS 仍可能需要 TCP 53 进行回退或承载较大响应;IETF 的 DNS over TCP 规范要求 DNS 实现支持 TCP 传输。IETF RFC 7766:DNS over TCP
- 客户端必须监听 53:通常不对。客户端一般使用临时源端口,服务器目标端口通常才是 53。
- 853 就是普通 DNS:不对。853通常对应 DNS over TLS,是否可用还取决于客户端、服务器名称和 TLS 验证。
- 443 一定是 DoH:不对。443是通用 HTTPS 端口,DoH 只是其中一种可能的应用。
- A 记录可以写端口:不对。A、AAAA 与端口是不同层面的信息,SRV 也只有在客户端支持时才有效。
常见问题
DNS Port 是 53 还是 853?
传统 DNS 使用 53,通常包括 UDP 53 和 TCP 53。853通常用于 DNS over TLS,不能把 53 和 853 当作同一种连接。
防火墙只开放 UDP 53 可以吗?
如果只是临时测试,部分普通查询可能正常;但作为完整的传统 DNS 规则不建议这样配置。响应较大、出现 UDP 截断或需要 TCP 回退时,还需要 TCP 53。
DNS over HTTPS 使用哪个端口?
DoH 通过 HTTPS 传输,常见端口是 443。但 443同时承载普通 HTTPS,因此仅凭端口号无法确认连接一定是 DoH。
DNS 客户端的源端口也是 53 吗?
通常不是。客户端一般使用系统分配的临时高位源端口访问 DNS 服务器的目标端口 53,返回流量再回到这个临时端口。
DNS 能不能通过 A 记录指向 8080?
不能。A 和 AAAA 记录只提供地址,不携带应用端口。支持服务发现的应用可以使用 SRV 记录;网站访问非默认端口通常要在 URL 中明确写出。
Windows 怎么测试 DNS 的 TCP 53?
在 nslookup 交互模式中先设置 DNS 服务器,再输入 set port=53 和 set vc,然后查询同一个域名。若普通查询成功但 TCP 查询失败,优先检查 TCP 53 的防火墙、ACL、NAT 和服务器监听。
相关阅读
- DNS over TLS是什么:工作原理、端口与 DoH 区别
- DNS over HTTPS是什么:工作原理与启用方法
- 如何测试 DNS 是否生效:三层验证方法
- DNS 53端口被占用怎么办
- 不同网络下 DNS 异常怎么排查
参考资料
- IANA:Service Name and Transport Protocol Port Number Registry
- Microsoft Learn:Network Ports Used by DNS
- Microsoft Learn:Some DNS name queries are unsuccessful
- Google Public DNS:Secure transports for DNS
- Google Public DNS:DNS-over-TLS
- Microsoft Learn:nslookup set port
- Microsoft Learn:nslookup set vc
- IETF RFC 2782:A DNS RR for specifying the location of services
- IETF RFC 7766:DNS Transport over TCP