以 SQL Server 2008 R2 为例进行分析:


SQL Server 连接端口号分析

SQL Server Browser
启动
停止

静态端口

1433 ① √ ④ √or×
xxxxx ② √ ⑤ √or×
动态端口 yyyyy ③ √ ⑥ ×


①②③

    启动 SQL Server Browser 服务后,不管是单实例还是多实例,实例端口号是静态指定还是动态分配,客户端均能正常连接。

    客户端首先访问SQL Server 服务器的 UDP 1434 端口,然后由 UDP 1434 端口返回给客户端 SQL Server 服务器上所有实例的实例名、端口号和版本号等信息。

    最后客户端根据端口号连接到某个实例。

    注:对于静态端口,客户端在知道实例与端口号对应关系的情况下,也可以直接通过端口号访问实例。

④⑤

    客户端在知道实例与端口号对应关系的情况下,可以直接通过端口号访问实例。

    若不知道实例与端口号对应关系的情况下,也没有SQL Server Browser 服务可以查询,不知道访问某个实例需要连接哪个端口号,所以不能访问实例。

    没有SQL Server Browser 服务可以查询,不知道访问某个实例需要连接哪个端口号,所以不能访问实例。

    注:动态端口每次重启完服务都会改变。