Как показать проваленный пинг?

Когда мы используем пинг Windows, он покажет сбой пингов. Имеет ли Ubuntu аналогичную функцию?

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

24
задан 6 April 2013 в 21:28

5 ответов

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

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

Даже на моем телефоне на базе Android, утилита ping запаса поддерживает эти 2 опции:
- D печатает метку времени перед каждым сообщением
- O печатает сообщение, когда ответ не получен вовремя, и это более или менее, что спросили.
Однако эти опции, кажется, не поддерживаются везде (например, Debian Хрипящий испытывает недостаток в них насколько я знаю, в то время как у Jessie есть они. busybox ping не поддерживает их).

Вот вывод в качестве примера, который мне удалось получить (неважные пропущенные ответы ping):

u0_a93@NX505J:/ $ ping -D -O 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
[1440545014.805478] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=244 time=116 ms
~~~~~~~~~~
[1440545142.995443] 64 bytes from 8.8.8.8: icmp_seq=129 ttl=244 time=110 ms
[1440545144.885601] no answer yet for icmp_seq=130
[1440545145.455485] 64 bytes from 8.8.8.8: icmp_seq=131 ttl=244 time=568 ms
[1440545145.455780] 64 bytes from 8.8.8.8: icmp_seq=130 ttl=244 time=1569 ms
[1440545146.005850] 64 bytes from 8.8.8.8: icmp_seq=132 ttl=244 time=119 ms
~~~~~~~~~~
[1440545254.055962] 64 bytes from 8.8.8.8: icmp_seq=240 ttl=244 time=115 ms
^C
--- 8.8.8.8 ping statistics ---
240 packets transmitted, 240 received, 0% packet loss, time 239250ms
rtt min/avg/max/mdev = 109.062/138.757/1569.620/101.608 ms, pipe 2

Отметьте, как № 130 сначала объявляют пропавшим без вести, затем получают после № 131, и наконец потеря пакетов, как сообщают, является нулем.


Дополнительное примечание о Windows:

В Windows ping, кажется, ожидает ответа дольше и затем объявляет это пропавшие без вести и игнорирует его, если он прибывает позже.

По умолчанию интервал составляет 1 секунду, и тайм-аут составляет 4 секунды, таким образом:
На низком RTT ping будут отправлены с 1 вторым интервалом.
На RTT> 4, ping отправят с 4-секундными интервалами (или 5, не уверенные) и все сообщат, как отказавший, то же, как будто сервер не ответил.

26
ответ дан 6 April 2013 в 21:28

Частично отклоняясь от ответа EvgEnZh, но с моей собственной версией:

ping -O -q 8.8.8.8

Это заставляет его печатать сообщение, когда ответ занимает слишком много времени или никогда не возвращается (-O) и подавляет сообщения когда они вернутся (-q). В результате вы получаете вывод только тогда, когда пакеты пропадают. Это может упростить поиск периодически возникающих проблем, сделав его таким образом, чтобы вам не приходилось просеивать кучу сообщений «все сработало» в тех немногих местах, которые он сломал.

0
ответ дан 6 April 2013 в 21:28

Может быть, ping -f подходит для вас. Из руководства по пингу:

-f

Флуд пинг. Для каждого отправленного ECHO_REQUEST выводится точка ''. '', В то время как для каждого полученного ECHO_REPLY выводится обратное пространство. Это обеспечивает быстрое отображение количества отбрасываемых пакетов. Если интервал не задан, он устанавливает интервал в ноль и выводит пакеты так же быстро, как они возвращаются или сто раз в секунду, в зависимости от того, что больше. Только суперпользователь может использовать эту опцию с нулевым интервалом.

Для 1 echo_request каждую секунду это будет выглядеть как ping -i 1 -f 8.8.8.8

0
ответ дан 6 April 2013 в 21:28

Даже с опцией -v, ping этого не делает. См. этот вопрос . Но если это действительно важно (или забавно) для вас, вы можете скачать исходный код, изменить код, чтобы включить подходящий вызов printf. Хорошее место для этого было бы в конце метода 'send_probe' (строка 619 на 12.10) ...

Сначала вы получите исходный код

apt-get source iputils
cd iputils*

Внесите изменения

gedit ping.c

Создайте и установите созданный пакет ...

apt-get install libsysfs-dev
dpkg-buildpackage
0
ответ дан 6 April 2013 в 21:28

Спасибо за все ответы. Кажется, что последний пинг Ubuntu может показать сбой пинга

Еще раз спасибо.

0
ответ дан 6 April 2013 в 21:28

Другие вопросы по тегам:

Похожие вопросы: