Мне нужно проверить, может ли клиент подключиться к серверу через определенный TCP-порт. Сервер слушает его. Пытался "telnet server_IP port", но telnet завис, когда я увидел, что он подключен к серверу. Кажется, что telnet ждет определенного ответа от сервера.
Мне нужно просто проверить, могу ли я подключиться к серверу с этой рабочей станции. Есть какой-либо способ сделать это? Я бы предпочел инструменты Windows, такие как telnet или что-то еще.
EDIT: основная цель - проверить, может ли конкретная рабочая станция подключиться к серверу через этот порт. Это часть диагностического инструмента. Этот инструмент представляет собой простой сценарий, запускаемый с сервера для диагностики различных аспектов этой системы клиент / сервер. Он берет имя рабочей станции и проверяет, можно ли подключиться к серверу с этой рабочей станции. Я хотел бы проверить подключение с помощью стандартного инструмента, такого как telnet или что-нибудь еще от Microsoft, желательно, чтобы он был уже установлен на рабочей станции. Я планирую запустить его с помощью psexec от Sysinternals на рабочей станции и получить результат на сервере.
Пытаться порткран , сканер портов командной строки Microsoft. Это скажет вам, к каким портам вы можете подключиться из системы.
Вот решение 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
Если telnet hostname port
приводит к пустому экрану с курсором в верхнем левом углу, вы подключены.
Никаких дополнительных инструментов не требуется.
Если вы тестируете брандмауэры, блокирующие порт, вместо того, чтобы ваше пользовательское приложение запускало netcat на сервере на этом порту, затем подключитесь к нему с клиента, и netcat позволит вам увидеть результаты. Это сообщит вам, заблокирован порт или нет, и не добавит переменных, касающихся функциональности вашего приложения.