Способы проверки доступности 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    5030    22    1    

48

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

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

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

14400 руб.

29.04.2020    29382    87    151    

61

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

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

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

10000 руб.

10.11.2023    6492    16    2    

42

SALE! %

PowerTools

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

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

3600 2880 руб.

14.01.2013    180679    1100    0    

873

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

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

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

4200 руб.

10.11.2015    61914    90    59    

75

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

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

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

1500 руб.

01.12.2020    14817    37    0    

52

Автоматическое резервное копирование любой клиент-серверной базы 1С в формате DT с удалением сеансов, архивацией, изменением расширения (8.3.14+, расширение)

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней.

6000 руб.

06.11.2012    70923    622    44    

81

Анализируем SQL сервер глазами 1С-ника

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

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

1 стартмани

15.02.2024    9492    192    ZAOSTG    74    

105
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 983 13.05.19 17:29 Сейчас в теме
(1) Александр, спасибо и Вам!
Протестировал, дейтвительно удобная штука. Возможность тестирования по списку или диапазону портов - просто клад!
3. starik-2005 3051 13.05.19 18:34 Сейчас в теме
https://www.shellhacks.com/ru/20-nmap-examples/

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

https://habr.com/ru/post/399375/ - очень интересная статейка для настоящих кулхацкерофф.
4. VKislitsin 983 13.05.19 19:09 Сейчас в теме
(3) Сергей, я прямо ждал, что nmap будет упомянут.
Насколько я понимаю, ему требуется инсталляция. По крайней мере в Windows. Или есть портабельный?
5. starik-2005 3051 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 983 17.10.19 13:07 Сейчас в теме
(8)
Свой компьютер проверяется точно так же, как и любой другой. Только вместо имени удаленного компьютера подставляете "localhost" или имя, которое Вам отобразит команда hostname.
Например:
psping localhost:1540
или
powershell tnc mycompname -p 1540

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

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

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