如何检查 Sql Server 的端口 1433 是否正常工作?

19

我该如何检查Sql Server的端口1433是否开放?我已经设置了入站和出站规则,并在SQL配置管理器中进行了检查,但不确定是否有效。


这会有所帮助:http://dba.stackexchange.com/questions/23704/easy-way-to-check-connectivity-to-sql-server-from-client - anon
4个回答

22
如果已安装了 TELNET,您可以使用 TELNET 1433 来验证端口连接性。否则,以下 PowerShell 命令可以使用 .NET TcpClient 完成此任务。
$server="yourserver"; $port=1433; echo ((new-object Net.Sockets.TcpClient).Connect($server,$port)) "$server is listening on TCP port $port";

PowerShell的新版本包括一个Test-NetConnection cmdlet (别名为tnc),以便测试ICMP和端口连接。从Windows命令提示符中进行示例调用:

新版 PowerShell 包含一个 Test-NetConnection 命令 (别名为 tnc),方便测试 ICMP 和端口连接。以下是在 Windows 命令提示符中执行的示例调用:

powershell -Command "Test-NetConnection -ComputerName 'yourserver' -Port 1433"
powershell -Command "tnc -ComputerName 'yourserver' -Port 1433"
powershell -Command "tnc 'yourserver' -Port 1433"

10
你可能希望它是开放的,因为你在询问。我发现这是最省时的图片,可以在这里找到:
这是对问题的推断回答,有点超越主题,但在我看来,这才是最重要的。

computer administration win 10


这个配置在我标准安装的SQL Server 2019上缺失,IPAll的TCP端口为空。当我将其设置为1433后,一切都正常了,谢谢! - Tim_Mac

8

如果服务器使用TCP/IP,则简单的方法是通过telnet连接到SQL Server端口,查看是否连接。默认情况下,该端口为1433,因此可以使用以下命令:

telnet servername 1433

在大多数情况下,这可能是合适的。

如果它使用不同的端口或动态端口(通常与命名实例一起使用),那么您需要确定它当前正在侦听哪个端口。检查SQL Server配置管理器以查看是否为特定端口或动态端口。如果使用动态端口,则只要服务器上没有多个实例,netstat -abn可能是找到它使用的最简单方法。否则,请查看Windows事件日志或SQL Server错误日志,以查找指示该实例正在使用的端口的消息。

如果SQL Server正在使用命名管道,则我认为如果您能够访问计算机上的共享,则具有足够的网络连接性。 本文说您可以进一步尝试连接到IPC$共享:

 net use \\servername\IPC$

这是针对SQL Server 2000编写的,但我不认为这个方面有太大变化。


@Neeraj 我收到了“无法打开回环连接”的错误。 - LittleBirdy
@Sprezlaus 是的,这正是我想要的。 - LittleBirdy
@LittleBirdy,如果您已经验证了SQL Server服务正在运行,并在SQL Server错误日志中看到端口1433正在侦听的消息,则必须是网络连接问题。除了Windows防火墙之外,可能还有其他防火墙阻止了连接。 - Dan Guzman
@LittleBirdy,也许网络跟踪(客户端和服务器)可以提供线索。如果您没有看到数据包进入服务器,则可能是中间的防火墙。运行TRACEROUTE以查看涉及的跳数并检查每个跳数。 - Dan Guzman
@Dan Guzman 跟踪完成 '1 < 1 毫秒 <1 毫秒 <1 毫秒 Myservername.Domain.com [10.211.55.3]' - LittleBirdy
显示剩余4条评论

3
您可以安装Netstat,或者使用命令提示符。
netstat -abn

查看正在使用的端口。
您还可以使用Rackspace的此方法远程连接到您的服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接