配置 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 以了解分配给特定应用程序的端口号列表。 选择一个未分配的端口号。 更多详细信息,请参阅 TCP/IP 的默认动态端口范围在 Windows Vista 和 Windows Server 2008 中已更改

警告

重新启动时,数据库引擎开始侦听新端口。 但是, 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. 在“IPn 属性”区域框的“TCP 端口”框中,键入希望此 IP 地址侦听的端口号,然后选择“确定”。 通过逗号分隔,可指定多个端口。 选择“确定”。

    注意

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

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

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

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

连接

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

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

请参阅