配置 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 端口号

  1. 在 SQL Server 配置管理器的控制台窗格中,展开“SQL Server 网络配置”,选择“<实例名称> 的协议”,然后在右侧窗格中双击“TCP/IP”。

    注意

    如果无法打开 SQL Server Configuration Manager,请参阅 SQL Server Configuration Manager

  2. 在“TCP/IP 属性”对话框的“IP 地址”选项卡上,将显示若干个 IP 地址,格式为:IP1IP2...,一直到 IPAll。 这些 IP 地址中有一个条目是环回适配器的 IP 地址 127.0.0.1。 其他 IP 地址是计算机上的各个 IP 地址。 (可以同时看到 IP 版本 4 和 IP 版本 6 地址。)右键单击每个地址,然后选择“属性”,标识要配置的 IP 地址。

  3. 如果“TCP 动态端口”对话框包含 0,则表示数据库引擎正在侦听动态端口,请删除 0

    显示 TCP 端口的屏幕截图。

  4. 在“IP n 属性”区域框的“TCP 端口”框中,键入希望此 IP 地址侦听的端口号,然后选择“确定”。 通过逗号分隔,可指定多个端口。 选择“确定”

    如果“协议”选项卡上的“全部侦听”设置为“”,则仅使用 IPAll 部分下面的“TCP 端口”和“TCP 动态端口”值,并将完全忽略各 IP n 部分。 如果“全部侦听”设置为“”,将忽略 IPAll 部分下面的“TCP 端口”和“TCP 动态端口”设置,而改用各 IP n 部分的“TCP 端口”、“TCP 动态端口”和“已启用”设置。

    每个 IP n 部分的“已启用”设置的默认值为“否”,这样会使 SQL Server 忽略此 IP 地址,即使它已定义端口。

  5. 在控制台窗格中,选择“SQL Server 服务”。

  6. 在细节窗格中,右键单击“SQL Server (<实例名称>)”,然后选择“重启”,停止并重启 SQL Server。

连接

在配置 SQL Server 以侦听特定端口后,可以通过下列三种方式使用客户端应用程序连接到特定端口:

  • 若要按名称连接到数据库引擎实例,请在服务器上运行 SQL Server Browser 服务。
  • 在客户端上创建一个别名,指定端口号。
  • 对客户端进行编程,以便使用自定义连接字符串进行连接。