如何通过 Windows 工具检查与服务器的连接?

如何通过 Windows 工具检查与服务器的连接?

我需要检查客户端是否可以通过特定 TCP 端口连接到服务器。服务器正在监听该端口。尝试了“telnet server_IP port”,但当我看到它已连接到服务器时,telnet 卡住了。似乎 telnet 正在等待服务器的特定回复。

我需要的只是检查我是否可以从这个工作站连接到服务器。有什么办法吗?我更喜欢 telnet 之类的 Windows 工具或其他东西。

编辑:主要目标是检查特定工作站是否可以通过此端口访问服务器。它是诊断工具的一部分。此工具是从服务器运行的简单脚本,用于诊断此客户端/服务器系统的不同方面。它获取工作站名称并检查是否可以从此工作站连接到服务器。我想通过标准工具(如 telnet 或 Microsoft 的其他任何工具)检查连接性,最好它应该已安装在工作站上。我计划通过工作站上的 Sysinternals 中的 psexec 运行它并在服务器上接收结果。

答案1

尝试端口查询,Microsoft 命令行端口扫描器。这将告诉您可以从系统连接到哪些端口

答案2

如果telnet hostname port结果为空白屏幕,且左上角有光标,则表示您已连接。

无需其他工具。

答案3

以下是我想出的 VBScript TCP Ping 解决方案,使用 MSXML2 ServerXMLHTTP 控件来测试与端口的 TCP 连接。它应该可以在大多数系统上运行,无需任何额外下载。

address = "www.example.com"
WScript.Echo "http: " & TCPPing( address, 80)
WScript.Echo "ssh: " & TCPPing( address, 22)
WScript.Echo "smb: " & TCPPing( address, 139)
WScript.Echo "https: " & TCPPing( address, 443)

Function TCPPing( address, port )
  Set xhr = WScript.CreateObject("MSXML2.ServerXMLHTTP")
  xhr.SetTimeouts 8000,8000,8000,8000
  On Error Resume Next
  xhr.Open "GET", "http://" & address & ":" & port, False
  xhr.Send
  Select Case Err.Number
    ' ok, tcp connect but no web response, 401 auth failure
    Case 0,  -2147012744, -2147024891
      msg = "OK"
    Case -2147012867
      msg = "Connection Rejected"
    Case -2147012894
      msg = "Timed out"
    Case -2147012889
      msg = "Could not resolve address"
    Case -2147467259
      msg = "Cannot test that port with this tool"
    Case Else
      msg = "Unknown error " & Err.Number
  End Select
  On Error Goto 0
  Set xhr = Nothing
  TCPPing = msg
End Function

答案4

如果您正在测试防火墙阻止端口,则不要使用自定义应用程序,而是在相关端口上的服务器计算机上运行 netcat,然后从客户端连接到它,netcat 将让您看到结果。这将告诉您端口是否被阻止,而不会引入有关应用程序功能的变量。

相关内容