Ping — как проверить сеть
Слово «пинг» используется для разных проверок. От вида проверки зависит, что именно ты видишь.
ICMP-пинг (обычный)
Команда ping 8.8.8.8. Шлёт ICMP echo request, ждёт echo reply.
- Проверяет: жив ли IP-адрес, доходят ли пакеты, потери, задержка.
- Не проверяет: работают ли TCP/UDP-порты, работает ли конкретный сервис.
- Многие фаерволы блокируют ICMP — «нет ответа» не значит «сервер мёртв».
TCP-пинг
Утилиты: tcping, nc -z host 443, hping3 --syn -p 443 host.
Открывает TCP SYN на конкретный порт и ждёт SYN-ACK.
- Проверяет: слушает ли сервер порт, есть ли ответ в TCP-стеке.
- Не проверяет: работает ли конкретный сервис на этом порту, отвечает ли он корректно.
HTTP HEAD и GET
Команды:
curl -I https://example.com # HEAD
curl https://example.com # GET
- HEAD — запрашивает только заголовки, без тела ответа. Быстро, экономит трафик.
- GET — полноценный запрос с телом.
- Проверяет: работает ли HTTP-сервис, отвечает ли корректными кодами.
Сравнение
| Метод | Уровень OSI | Что проверяет |
|---|---|---|
| ICMP | L3 | IP-адрес живой, маршрут есть |
| TCP SYN | L4 | порт открыт, стек отвечает |
| HTTP HEAD | L7 | сервис отвечает, но без тела |
| HTTP GET | L7 | сервис отвечает и отдаёт контент |
Важно: пинг ≠ проверка «VPN-ключа»
«VPN-ключом» в народе называют строку конфига прокси: VLESS/Trojan/Shadowsocks/etc. На деле это прокси-протокол L7, но название «ключ» удобное — оставим.
Так вот, ICMP и TCP-пинг НЕ проверяют, рабочий ли ключ.
- ICMP-пинг сервера даст ответ, если IP-адрес жив. Про твой ключ он ничего не знает.
- TCP-пинг порта (например 443) покажет, что порт слушает — но не покажет, примет ли сервер именно ТВОЙ ключ, не заблокирован ли он на панели, не истёк ли по трафику.
- Порт может слушать Xray с активной конфигурацией, а ключ уже отозван — TCP-пинг всё равно вернёт «OK».
Как правильно проверить ключ
Только через реальный HTTP-запрос ЧЕРЕЗ прокси:
- Подключи ключ в клиенте (v2rayN, Karing, Nekobox, Hiddify — любом).
- Направь трафик через прокси.
- Открой
ifconfig.me,ipinfo.ioили сделайcurl -x socks5://127.0.0.1:10808 https://ifconfig.me. - Вернулся IP сервера (не твой) — ключ работает.
- Ошибка / твой родной IP / долго висит — ключ мёртв, дело не в пинге.
Итог: «сервер пингуется» ≠ «мой ключ рабочий». Для проверки ключа нужен реальный трафик через прокси, а не ICMP/TCP-пинг.
Когда что использовать
- «Сервер вообще жив?» →
ping(ICMP). Если не отвечает — попробуй TCP-пинг, ICMP может быть просто заблокирован фаерволом. - «Слушает ли порт?» →
nc -zv host 443илиtcping host 443. Быстро и точно. - «Работает ли веб-сервис?» →
curl -I(HEAD). Заголовки без лишнего трафика. - «Отдаёт ли сервис контент?» →
curl(GET). Полный ответ. - «Работает ли мой VPN-ключ / прокси-ключ?» → подключить в клиенте и
curl -x socks5://127.0.0.1:10808 https://ifconfig.me. Всё остальное — не показатель. - «Стабильна ли трасса?» →
mtr host. Комбинирует ping + traceroute, видно на каком хопе теряются пакеты и растёт задержка.
Что означают числа
- Latency (задержка) — время в одну сторону + обратно (RTT). Меньше = лучше. До 50 мс — отлично, 50-150 мс — норма, 200+ — заметно тормозит.
- Jitter (джиттер) — разброс задержек. Для голоса/видео важнее чем сама задержка. Если ping скачет 30 → 200 → 40 мс — будут заикания.
- Packet loss (потери) — сколько пакетов не дошло. 0% идеал. 1-2% ещё терпимо. 5%+ — соединение практически неработоспособно для TCP.
Мифы
- «Не пингуется — значит выключен». Нет. Многие сервера/фаерволы дропают ICMP по умолчанию, работая при этом нормально по TCP/UDP.
- «Пингуется — значит всё ок». Нет. IP жив, но сервис на нужном порту может лежать или отказывать в подключении.
- «Пинг = скорость интернета». Нет. Пинг — задержка. Скорость измеряется пропускной способностью (Мбит/с), это другое.