Способы проверки доступности TCP-портов

12.05.19

База данных - Инструменты администратора БД

Как проверить доступен ли порт сервера? Или внешний веб-сервис? Приведены несколько способов для использования на Windows-системах.

В процессе разворачивания и эксплуатации информационных систем часто требуется проверка доступности порта того или иного ресурса. Это может быть сервер приложений 1С, к которому не удается подключиться пользователю. Или же это внешний веб-ресурс, к которому происходит обращение. Или что-то еще.

Для проверки доступности самого сервера обычно используется команда ping. Но, в силу того, что данная утилита работает с ICMP-пакетами, для конкретного порта проверить доступ таким образом невозможно. Кроме того, на ресурсе в целях безопасности может быть заблокирован ответ на ICMP-пакеты, соответственно, результат доступности нельзя считать однозначным, если ресурс "не пингуется".

Как проверить доступен ли порт?

 
Традиционный способ.

Первое, что приходит на ум - использовать "старый добрый" telnet.

Для примера проверять будем доступность менеджера кластера:

C:\>telnet ks-app-02 2141

Получили в ответ "кракозябру" - значит доступ есть

Осталось выйти сначала из кракозябры по 'CTRL+]' и затем из самого telnet-а 

Microsoft Telnet> q

Загвоздка в том, что в большинстве современных Windows-систем telnet-клиент не установлен по-умолчанию, и требуется доустанавливать этот компонент. Что не всегда возможно, т.к. компьютер может быть и не своим и/или нет соответствующих прав.

 

Способ без инсталляции программ.

Хотелось бы иметь какой-то инструмент, не требующий установки, портабельный, чтобы можно было  его просто скопировать и пользоваться, а при необходимости, легко удалить после использования.

В качестве такого инструмента удобно использовать утилиту psping от Sysinternals.

Эту утилиту можно скачать как отдельно, так и в составе пакета SysinternalsSuite, который содержит  множество других необходимых инструментов.

C:\>psping ks-app-02:2141

 

Еще один портабельный инструмент, позволяющий решить задачу:

tcping (https://elifulkerson.com/projects/tcping.php)

C:\>tcping ks-app-02 2141

 

Встроенный инструментарий.

Однако есть возможность обойтись и совсем без сторонних утилит. В Windows есть встроенный инструмент, позволяющий выполнить такую проверку.

Это powershell-командлет Test-NetConnection

PS C:\> Test-NetConnection ks-app-02 -Port 2141

В ответе нас интересует последняя строка - TcpTestSucceeded: True.  В данном случае - доступ есть.

Также, в ответе может содержаться еще значение PingSucceeded  - это "обычный" ping по ICMP.

У командлета есть очень удобный для запоминания и быстрого ввода альяс tnc, а также ключ позволяющий ограничить вывод только результатом.

C:\>tnc ks-app-02 -Port 2141 -InformationLevel Quiet

Разумеется, запускать командлет необходимо в окне PowerShell, а не "командной строки".

Хотя, из командной строки тоже можно, вызвав PowerShell:

C:\>powershell tnc ks-app-02 -port 2141

Следует заметить, что командлет доступен в версиях PowerShell от 4.0 и выше, т.е. начиная с Windows Server 2012 R2 и Windows 8.1

Документация: Test-NetConnection (Microsoft, eng)

 

Заключение

Заметка не предполагает исчерпывающего списка и анализа всех возможных способов. Приведены три варианта, которые можно было бы охарактеризовать как "традиционный", "портабельный" и "встроенный". Каждый из них имеет свою область применения, в зависимости от системы, на которой необходимо выполнить проверку.

Полагаю, опытные администраторы смогут добавить еще несколько способов. Каким способом пользуетесь Вы и почему?

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

14400 руб.

06.12.2023    3621    19    1    

40

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4301    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178682    1084    0    

862

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27948    82    146    

61

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61548    91    59    

74

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11859    5    9    

7

Конфигурация Session Monitor

Мониторинг Инструменты администратора БД Платформа 1С v8.3 Россия Платные (руб)

Конфигурация Session Monitor предназначена для мониторинга сервера 1С с целью отслеживания чрезмерной нагрузки от конкретных сеансов и скорости реакции рабочих процессов.

1500 руб.

01.12.2020    14407    34    0    

49

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    11176    5    8    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. i_lo 214 13.05.19 16:30 Сейчас в теме
Спасибо за psping и powershell tnc!
Сам чаще всего пользуюсь PortQryUI - https://www.microsoft.com/en-US/download/details.aspx?id=24009. Легко скачивается. Не требует установки. Командная строка или графический интерфейс. Можно тестировать набор портов.
tormozit; +1 Ответить
2. VKislitsin 968 13.05.19 17:29 Сейчас в теме
(1) Александр, спасибо и Вам!
Протестировал, дейтвительно удобная штука. Возможность тестирования по списку или диапазону портов - просто клад!
3. starik-2005 3036 13.05.19 18:34 Сейчас в теме
https://www.shellhacks.com/ru/20-nmap-examples/

не благодарите...

https://habr.com/ru/post/399375/ - очень интересная статейка для настоящих кулхацкерофф.
4. VKislitsin 968 13.05.19 19:09 Сейчас в теме
(3) Сергей, я прямо ждал, что nmap будет упомянут.
Насколько я понимаю, ему требуется инсталляция. По крайней мере в Windows. Или есть портабельный?
5. starik-2005 3036 13.05.19 19:13 Сейчас в теме
(4) предположу, что если его статически слинковать, то он вполне себе портабельный будет - он же опенсорсный и Вы можете творить с ним что угодно...
6. user1243696 26.06.19 10:08 Сейчас в теме
(4) Не nmap конечно https://portscaner.ru/tools-open-local-ports но программы использующие порты покажет и портабельна!
7. fd34 28.06.19 07:17 Сейчас в теме
tcping

https://www.elifulkerson.com/projects/tcping.php

Аналог стандартного ping-а, но для tcp.

........>tcping -t ya.ru 443

** Pinging continuously.  Press control-c to stop **

Probing 87.250.250.242:443/tcp - Port is open - time=28.584ms
Probing 87.250.250.242:443/tcp - Port is open - time=16.356ms
Probing 87.250.250.242:443/tcp - Port is open - time=15.093ms
Probing 87.250.250.242:443/tcp - Port is open - time=26.543ms
Probing 87.250.250.242:443/tcp - Port is open - time=21.468ms
Probing 87.250.250.242:443/tcp - Port is open - time=15.896ms
Probing 87.250.250.242:443/tcp - Port is open - time=18.567ms
Control-C

Ping statistics for 87.250.250.242:443
     7 probes sent.
     7 successful, 0 failed.  (0.00% fail)
Approximate trip times in milli-seconds:
     Minimum = 15.093ms, Maximum = 28.584ms, Average = 20.358ms
Показать
8. ManyakRus 484 17.10.19 12:47 Сейчас в теме
1) очень полезно написано :)
"в ответ "кракозябру" - значит доступ есть"
крякозябру я видел раньше, но не думал что это "доказательство"

2) а как можно свой компьютер проверить ?
(без постороннего компьютера)
на наличие открытых портов 1540-15хх
ато отладка в 1С не работала без портов,
чтоб сисадминам в морду тыкнуть :)
9. VKislitsin 968 17.10.19 13:07 Сейчас в теме
(8)
Свой компьютер проверяется точно так же, как и любой другой. Только вместо имени удаленного компьютера подставляете "localhost" или имя, которое Вам отобразит команда hostname.
Например:
psping localhost:1540
или
powershell tnc mycompname -p 1540

Вопрос только в том, что такая проверка даст. Она ведь осуществляется "изнутри". Поэтому внешние ограничения (на уровне сетевой инфраструктуры) на неё не влияют.

При этом, нужно учитывать, что на проверяемом порту что-то должно работать, чтобы был положительный ответ.
Т.е. если установлен сервер 1С предприятия, но служба не запущена, то результат проверки будет такой же как и при недоступном порту.
Это относится ко всем проверкам, а не только локального компьютера.

Обычно таким образом проверяется не доступность, а именно работоспособность какой-то службы, например веб-сервера.
10. пользователь 06.09.21 14:48
Сообщение было скрыто модератором.
...
Оставьте свое сообщение