PowerShell: Как Проверить Открыт ли TCP-Порт

Во время диагностики различных проблем часто требуется проверить, открыт ли какой-то TCP-порт на удаленном хосте, и не заблокирован ли он файерволом.

Команда telnet является наиболее распространенным инструментом для этого, но она может быть не установлена или вам может понадобиться скопировать вывод команды, чтобы вставить его в тикет или отправить кому-то, что с telnet сделать не всегда возможно.

Также команда telnet не особо удобна, если вам необходимо проверить подключение к нескольким хостам/портам, что может быть с легкостью сделано с помощью PowerShell.

В Windows вы можете проверить подключение к TCP-порту из командной строки с помощью PowerShell, и в этой заметке я покажу, как это сделать.

Дельный Совет: Как установить telnet в Windows! Читать далее →

Узнать Открыт Ли Порт С Помощью PowerShell

Используйте одну из следующих команд в PowerShell, чтобы проверить, открыт ли TCP-порт на удаленном хосте:

PS C:\> tnc www.shellhacks.com -p 443

— или —

PS C:\> New-Object System.Net.Sockets.TcpClient("www.shellhacks.com", 443)

Проверка Открытых Портов На Нескольких Хостах

Если необходимо протестировать несколько TCP подключений, перечислите хосты/порты, которые нужно проверить и скопируйте/вставьте скрипт в консоль PowerShell:

PS C:\> @"
        # List of hosts and ports to check
        www.shellhacks.com:443
        8.8.8.8:53
        8.8.4.4:53
        "@.split("`n") | ForEach-Object {
            $server,$port = $_.split(':')
            echo "Host: $_"
            New-Object System.Net.Sockets.TcpClient("$server", $port) | 
            Out-String -Stream | Select-String "Connected"
        }

2 Replies to “PowerShell: Как Проверить Открыт ли TCP-Порт”

  1. Also u can use tnc command in Windows 10 PowerShell:

    PS C:\> tnc HOST_NAME -port PORT_NUMBER
    1. Thanks. Added to the article.

Добавить комментарий