Со всеми возможностями для межсетевых экранов, блокирующих пакеты ICMP или определенные порты, единственный способ гарантировать, что служба работает, - это сделать что-то, что использует эту службу.
Например, если бы это был сервер JDBC, вы могли бы выполнить неразрушающий SQL-запрос, такой как select * from sysibm.sysdummy1
для DB2. Если это HTTP-сервер, вы можете создать пакет GET для index.htm.
Если у вас фактически есть контроль над службой, просто создать специальную вспомогательную службу для обработки этих запросов (например, отправить через пакет CHECK и получить ответ OKAY).
Таким образом, вы избегаете всех возможных проблем с брандмауэром, и этот тест является действительно комплексным. PING и traceroutes смогут определить, можете ли вы добраться до машины (если брандмауэры позволяют), но они не сообщат вам, работает ли ваша служба.
Возьми это у кого-то, кто должен был сражаться с сетевыми богами в корпоративной среде, где машины заперты так же тесно, как пресловутые рыбы ...