Диагностика проблем с подключением с помощью команды ping

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

Если вы не можете подключиться к компьютеру в локальной сети или к серверу в Интернете, вы можете пропинговать его. Ping отправляет пакет протокола управляющих сообщений Интернета (ICMP) на IP-адрес назначения. ICMP изначально является рудиментарным форматом, используемым в основном для диагностики: это, по сути, сигнал запроса и ответа.

Процесс устранения неполадок начинается из дома. Сначала проверьте связь со своим компьютером, чтобы убедиться, что у вас работает сетевой стек. Компьютер, на котором вы работаете, также называется локальным хостом (localhost), и ему назначен специальный IP-адрес для разговора с самим собой: 127.0.0.1.

Команда ping понимает имя хоста localhost, его короткий IP-адрес просто 0.

Вы можете контролировать количество отправляемых сигналов с помощью опции -c (as in count).

ping 0 -c1
PING 0 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms

--- 0 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.069/0.069/0.069/0.000 ms

После того, как вы установили, что ваш локальный сетевой стек запущен и работает, вы можете пропинговать свой маршрутизатор. Адрес маршрутизатора обычно начинается с 192.168 или 10. Точный IP-адрес зависит от конфигурации вашего маршрутизатора.

Остановить выполнение пинга можно с помощью Ctrl + C.

ping 192.168.0.1 
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.100: icmp_seq=2 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=3 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=4 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=5 Redirect Host(New nexthop: 192.168.0.1)
^C

Если вы можете подключиться к маршрутизатору, это означает, что ваше проводное или беспроводное соединение работает.

А как насчет других хостов в моей сети? Вы можете пинговать все виды устройств. Не все гарантированно ответят (некоторые устройства отбрасывают пакеты ICMP), но многие это делают. Например, я могу пропинговать свой принтер:

<span class="co4">$ </span><span class="kw2">ping</span> 192.168.0.4 

Проверка связи за пределами вашей сети

Помимо проверки работы домашней сети, вы также можете выйти в «большой мир» за пределами вашего маршрутизатора. Не всем серверам разрешено получать ICMP, а тем более отвечать на него. Тем не менее, некоторые из них работают, и жизненно важный сервер для работы в Интернете — это DNS-сервер.

Адрес DNS-сервера Google относительно легко запомнить, и он отвечает на эхо-запросы:

ping -c 2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.5 ms

--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 53.304/53.424/53.544/0.120 ms

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

Например, вы безуспешно пытаетесь перейти на example.com. Сначала найдите IP-адрес с помощью команды host:

$ host example.com
example.com has address 93.184.216.34
example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946
example.com mail is handled by 0

А затем пингуйте хост сайта по IP:

<span class="co4">$</span> <span class="kw2">ping</span> 93.184.216.34 <span class="re5">-c</span> <span class="nu0">1</span>

Ping и IPv6

Ping работает как по IPv4, так и по IPv6. Явное использование только одного из них можно принудительно применить, указав -4 или -6.

Размер пакета

Вы можете изменить размер отправляемых ICMP-пакетов с помощью параметра -s. Размер пакета по умолчанию составляет 56, что в сочетании с 8-байтовым заголовком преобразуется в 64 байта данных ICMP. Эта команда отправляет 43 байта:

<span class="co4">$ </span><span class="kw2">ping</span> <span class="re5">-s</span> <span class="nu0">35</span> <span class="re5">-c</span> <span class="nu0">5</span> 8.8.8.8

Вы можете распечатать временную метку перед каждым отчетом ping в вашем терминале с опцией -D:

ping -D 8.8.8.8 
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
[1634013430.297468] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms
[1634013431.298738] 64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.1 ms

Время пинга

Вы можете изменить временной интервал между эхо-запросами, используя параметр -i. Команда меняет интервал ping на две секунды:

<span class="co4">$ </span><span class="kw2">ping</span> <span class="re5">-i</span> <span class="nu0">2</span> 

Вы также можете остановить пинг через определенное время (в секундах) с помощью опции -w:

<span class="co4">$ </span><span class="kw2">ping</span> <span class="re5">-w</span> <span class="nu0">6</span>

Варианты

Есть много реализаций ping. В пакете iputils есть команда ping, в Busybox есть команда ping, еще одна — от BSD и других. Есть даже графический интерфейс для ping: Gping доступен для Linux, macOS и Windows. Дополнительную информацию о gping можно найти на Github.

Научитесь пинговать

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

Поделитесь с друзьями

Добавить комментарий

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x