Почему так происходит
ping использует ICMP, а SSH и HTTPS — порты TCP. Это разные виды трафика: межсетевой экран может отбрасывать один и пропускать другой. Многие сети и облачные группы безопасности по умолчанию блокируют ICMP echo. Поэтому отсутствие ответа не означает, что сервер не работает, а наличие ответа не доказывает работоспособность его служб.
Проверяйте службу, а не ping
Проверьте именно те порты и протоколы, которые вам нужны. Если проверки успешны, сервер доступен для этих служб, а неудачный ping лишь указывает на фильтр где-то на пути.
nc -vz -w 5 server.example 22
nc -vz -w 5 server.example 443
curl -sSI https://server.example/Проследите маршрут с помощью TCP
Обычный traceroute может показывать только звёздочки, если ICMP или UDP фильтруются. С TCP на открытый порт часто удаётся продвинуться дальше. Для этого нужен root; возможно, сначала придётся установить traceroute, поскольку в минимальных системах его нет.
sudo traceroute -T -p 443 server.exampleПоищите фильтр на своём сервере
Если вы администрируете сервер, проверьте его межсетевой экран и параметр ядра, отвечающий за игнорирование эхо-запросов. Помните, что блокировка может быть и вне сервера — в группе безопасности или маршрутизаторе, а провайдер может фильтровать ICMP в своей сети без видимого вам правила.
sysctl net.ipv4.icmp_echo_ignore_all
sudo nft list ruleset | grep -i icmp
sudo ufw status verboseКогда блокировка ICMP действительно вызывает сбои
Блокировка эхо-запросов обычно безвредна, но блокировка всего ICMP — нет. Обнаружение MTU пути зависит от сообщений о слишком больших пакетах. Без них небольшие обмены данными проходят, а большие зависают: например, вход по SSH удаётся, но затем соединение зависает при объёмном выводе. IPv6 ещё сильнее зависит от ICMPv6. Вторая команда проверяет в Linux путь для MTU 1500 байт.
ip route get 192.0.2.10
ping -M do -s 1472 -c 3 192.0.2.10Сравнение в CH-J Server Manager
Server Diagnostics запускает ping системным инструментом без root наряду с отдельными проверками TCP, идентификации SSH, HTTP и TLS, поэтому неудачный ping можно оценить в контексте. Неудачный ping здесь означает, что ответ не пришёл. Он не показывает, где был отброшен пакет; traceroute тоже может не дать ответа.