SQL Browser 服务是干什么的?什么时候要用
SQL Browser 服务的职责:应答 UDP 1434 查询、告知客户端命名实例当前端口;什么时候必须开它,什么时候不用。
结论先行
SQL Browser 是一个轻量 Windows 服务,专职回答一个问题:「这台机器上某实例现在监听哪个 TCP 端口」。客户端连命名实例且实例用动态端口时,必须先经 Browser(UDP 1434)拿到端口再直连。默认实例、固定端口的实例,远程连接都不需要 Browser。
它在哪条链路里
客户端连 主机名\INST1
→ UDP 1434 问 Browser:INST1 的端口是?
→ Browser 回:现在是 14340
→ 客户端直连 主机名:14340
- 实例改固定端口后,客户端写
主机名,端口直连,Browser 被完全绕开。 - 连默认实例(1433 固定)也不需要 Browser。
什么时候必须开
| 场景 | 是否需要 Browser |
|---|---|
| 命名实例 + 动态端口 + 远程客户端 | 需要(且放行 UDP 1434) |
| 命名实例 + 固定端口 | 不需要 |
| 默认实例(任何远程客户端) | 不需要 |
| 纯本机连接 | 不需要 |
启用方法(实例所在机器上):services.msc 中找到 SQL Browser 服务,设启动类型为自动并启动;防火墙放行 UDP 1434。
Browser 默认可能是「手动」状态——服务刚装好没起过,远程连命名实例就会报「找不到实例」类错误,把 Browser 服务状态查一遍是排查第一步。
在 SSMS 里看端口
确认某实例端口后可对照:SSMS(SSMS 管理工具条目)右键实例 → 属性 → 数据库引擎 → 连接,查看当前 TCP/IP 端口与动态开关。SQL Server 2022 Developer、SQL Server 2019 Developer 条目环境下 Browser 服务随引擎一起安装,行为一致;动态端口问题的完整机制另见「命名实例动态端口问题」相关条目,SQL Server 产品族条目 中各版本通用。