配置 SQL Server 以侦听特定 TCP 端口
适用于:SQL Server
本文说明如何使用 SQL Server 配置管理器配置 SQL Server 数据库引擎实例,以便侦听特定的固定端口。 如果启用, SQL Server 数据库引擎 的默认实例将侦听 TCP 端口 1433。 数据库引擎 和 SQL Server Compact 的命名实例配置为使用 动态端口。 这意味着启动 SQL Server 服务时,它们将选择可用的端口。 通过防火墙连接到命名实例时,请将数据库引擎配置为侦听特定端口,以便可以在防火墙中打开相应的端口。
注意
由于端口 1433 是 SQL Server 的已知标准,某些组织指定应更改 SQL Server 端口号以增强安全性。 这在某些环境中可能很有用。 但是,TCP/IP 体系结构允许端口扫描程序查询打开的端口,因此更改端口号并不是一种可靠的安全措施。
有关默认 Windows 防火墙设置的详细信息以及有关影响数据库引擎、Analysis Services、Reporting Services 和 Integration Services 的 TCP 端口的说明,请参阅配置 Windows 防火墙以允许 SQL Server 访问。
提示
选择端口号时,请查看 https://www.iana.org/assignments/port-numbers 以了解分配给特定应用程序的端口号列表。 选择一个未分配的端口号。 有关详细信息,请参阅自 Windows Vista 和 Windows Server 2008 以来,TCP/IP 的默认动态端口范围已更改。
注解
重新启动时,数据库引擎开始侦听新端口。 但是, SQL Server Browser 服务监视注册表并在配置更改时报告新端口号,即使数据库引擎可能未使用该端口。 重新启动数据库引擎可确保一致性并避免连接失败。
使用 SQL Server 配置管理器
为 SQL Server 数据库引擎分配 TCP/IP 端口号
在 SQL Server 配置管理器的控制台窗格中,展开“SQL Server 网络配置”,选择“<实例名称> 的协议”,然后在右侧窗格中双击“TCP/IP”。
注意
如果无法打开 SQL Server Configuration Manager,请参阅 SQL Server Configuration Manager。
在“TCP/IP 属性”对话框的“IP 地址”选项卡上,将显示若干个 IP 地址,格式为:IP1、IP2...,一直到 IPAll。 这些 IP 地址中有一个条目是环回适配器的 IP 地址
127.0.0.1
。 其他 IP 地址是计算机上的各个 IP 地址。 (可以同时看到 IP 版本 4 和 IP 版本 6 地址。)右键单击每个地址,然后选择“属性”,标识要配置的 IP 地址。如果“TCP 动态端口”对话框包含
0
,则表示数据库引擎正在侦听动态端口,请删除0
。在“IP n 属性”区域框的“TCP 端口”框中,键入希望此 IP 地址侦听的端口号,然后选择“确定”。 通过逗号分隔,可指定多个端口。 选择“确定”。
如果“协议”选项卡上的“全部侦听”设置为“是”,则仅使用 IPAll 部分下面的“TCP 端口”和“TCP 动态端口”值,并将完全忽略各 IP n 部分。 如果“全部侦听”设置为“否”,将忽略 IPAll 部分下面的“TCP 端口”和“TCP 动态端口”设置,而改用各 IP n 部分的“TCP 端口”、“TCP 动态端口”和“已启用”设置。
每个 IP n 部分的“已启用”设置的默认值为“否”,这样会使 SQL Server 忽略此 IP 地址,即使它已定义端口。
在控制台窗格中,选择“SQL Server 服务”。
在细节窗格中,右键单击“SQL Server (<实例名称>)”,然后选择“重启”,停止并重启 SQL Server。
连接
在配置 SQL Server 以侦听特定端口后,可以通过下列三种方式使用客户端应用程序连接到特定端口:
- 若要按名称连接到数据库引擎实例,请在服务器上运行 SQL Server Browser 服务。
- 在客户端上创建一个别名,指定端口号。
- 对客户端进行编程,以便使用自定义连接字符串进行连接。