本机 SSMS 能连、远程客户端连不上命名实例?
命名实例默认动态端口导致远程客户端连不上的原因,以及固定端口、启用 SQL Browser 两种解法的具体操作。
简短答案
命名实例默认用动态端口:每次服务启动端口都可能变,靠 SQL Browser 服务对外通告。本机连上是因为 SSMS 本机走共享内存/本地查询协议不依赖浏览器;远程客户端要拿到正确端口,就必须 Browser 服务 + 防火墙放行。最稳的解法是把实例改成固定端口,绕开动态端口的不确定性。
现象对照
| 现象 | 原因 | 处理 |
|---|---|---|
| 本机 SSMS 连命名实例正常,远程报错/连不上 | 动态端口没被 Browser 通告 | 开 Browser + 放行 UDP,或改固定端口 |
| 远程时好时坏,重启服务端就断 | 动态端口重启后变了 | 改固定端口 |
| 固定端口后远程通了 | 客户端按端口直连 | 保持现状 |
处理步骤
方案 A(推荐)固定端口
- 「SQL Server 配置管理器」→ 该命名实例的 TCP/IP → 把端口改成固定值(如 1434),禁用动态。
- 重启 SQL Server 服务。
- 防火墙放行该端口(入站 TCP);客户端连接串写
机器名\实例名,1434或机器名,1434。
方案 B 走 Browser
- 启动并设自动 SQL Browser 服务。
- 防火墙放行 UDP 135(及 Browser 对应端口)。
- 客户端按
机器名\实例名连接,由 Browser 解析端口。
验证:远程用 SSMS 连新写法,通即成功;各版本端口与 Browser 行为一致,见 SQL Server 2022 Developer、SQL Server 2019 Developer 条目页。
固定端口一次配置长期有效,比依赖 Browser + 防火墙两条链更省心;需要 Browser 的方案要同时盯「服务在跑」与「防火墙放行」两点。
操作小结
- 命名实例远程连不上,根源多为动态端口。
- 首选固定端口 + 放行该 TCP 端口。
- 次选开 Browser + 放行 UDP,客户端用「机器名\实例名」。