首页/网络/常用端口速查/8600 Consul DNS 服务发现
8000-8999 注册端口65 条

8600 Consul DNS 服务发现

Consul 的 DNS 接口:应用通过它把服务名解析成健康实例 IP(如 web.service.consul),是现代服务发现的一种经典形态。

常用端口速查网络更新于 2026-10-13

Consul DNS 与 8600 端口

8600 是 Consul 的 DNS 接口端口。Consul 在集群中维护服务与节点的注册信息及健康状态,并在 8600 上提供 DNS 应答:应用用常见的 DNS 查询语法就能把服务名解析成健康实例的 IP,形如 web.service.consul。这是服务发现最经典的一种形态,不引入新协议,直接借用 DNS。

基本信息

服务Consul DNS interface
端口/协议UDP 与 TCP 8600
记录类型A/AAAA 返回健康实例,SRV 附加端口与权重
子域结构service、node、datacenter 与标签过滤
权限要求默认查询无需认证,启用 ACL 后可限制查询
安全等级仅业务与集群网段

典型使用场景

  • 服务发现:应用按服务名解析出健康实例 IP,替代硬编码地址
  • 负载分发:A 记录返回多个实例,客户端自行轮询与重试
  • 端口发现:SRV 记录同时给出目标端口,适合动态端口场景
  • 健康检查联动:不健康实例自动从应答中剔除
  • 跨机房寻址:用数据中心子域解析同名服务

DNS 查询示例

DNS 查询示例
dig @127.0.0.1 -p 8600 web.service.consul                  # 解析健康实例的 A 记录
dig @127.0.0.1 -p 8600 web.service.consul SRV              # 同时拿到实例与端口
dig @127.0.0.1 -p 8600 web.service.dc1.consul              # 指定数据中心
dig @127.0.0.1 -p 8600 _http._tcp.web.service.consul SRV  # 带标签的查询
ss -lntup | grep 8600                                       # 核对 UDP 与 TCP 监听

查询语法读法

查询含义返回内容
web.service.consul当前数据中心内的服务健康实例的 IP 列表
web.service.dc1.consul指定数据中心的服务该区的健康实例 IP
web.node.consul按节点名查询节点的地址信息
SRV 类型查询服务加端口实例地址、端口与权重
tag.web.service.consul带标签筛选只返回带该标签的实例

运维要点

  • 解析结果无缓存语义,客户端要按秒级 TTL 重新查询才能跟上实例变化
  • 递归解析器只把 .consul 域转发到 8600,其余域名仍走上游 DNS
  • 健康检查阈值与间隔决定剔除速度,调大间隔会让故障实例多存活一段时间
  • 跨机房解析要显式写数据中心子域,否则拿到的是本地实例
  • 把查询数量纳入监控,异常的解析激增通常意味着客户端缓存失效
Consul DNS 只返回通过健康检查的实例,解析结果会随检查状态变化。排查问题时把 DNS 结果与健康检查状态一起看,而不是单纯比对 IP 列表。
把系统 DNS 直接指向 8600 而不配置上游转发,未注册域名会解析失败,整机网络访问异常。生产环境一般经 dnsmasq 或 Unbound 转发,只把 .consul 域交给 Consul。

易错点

  • 只用 A 记录忽略 SRV:动态端口场景拿不到真实端口,只能靠约定,容易配错
  • 把 resolv.conf 直接指向 Consul 且不配转发:非 .consul 域名全部解析失败,主机看似断网
  • 把 8600 开放给业务以外的网段:可读全部服务拓扑与实例地址
  • 忽略健康检查状态:实例数变少常被误认为服务崩溃,实际是检查不通过被剔除

数据来源与参考

  • HashiCorp Consul 官方文档(DNS 8600)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌