실패한 핑을 표시하는 방법?


24

windows ping을 사용하면 실패한 ping이 표시됩니다. 우분투에는 비슷한 기능이 있습니까?

실패한 핑은 네트워크를 디버깅 할 때 매우 유용합니다. 너희들은 이것을 어떻게 해결합니까? 글쎄, 나는 간단한 해결책 만 원하고 긴 스크립트를 원하지 않습니다.


2
질문을 보충하기 위해 샘플 출력 또는 스크린 샷을 제공 할 수 있습니까?
green

1
보다 자세한 정보를 찾고 있습니까 5 packets transmitted, 0 received, 100% packet loss, time 4032ms(Ping 자체 또는 Ctrl + C에 상관없이 ping이 종료 될 때 인쇄되는 정보)? 각 개별 핑에 대한 별도의 데이터를 찾고 있습니까?
Eliah Kagan

1
리눅스는 훌륭하고 우리 모두는 여러 가지 이유로 그것을 좋아하지만 때로는 Windows가 제대로하고 Linux가 잘못했습니다. 기본 CLI 도구에서도 가능합니다. 예, 기본 네트워킹 CLI 도구에서도! 문제가 발생했을 때 화면에 메시지를 표시하는 쉬운 방법이 없다면 "우리가 놓친 기능"으로 인식해야합니다. 우리는 그것이 OP가 요구하는 것이 무엇인지 정확히 알 수없는 너무 복잡한 척하고 싶지 않습니다 (특히 주변의 몇 백만 상자에 기본적으로 기능이 켜져있을 때).
ndemou

이 기능이 이전 리눅스 핑에서 존재한다고 맹세 할 수있었습니다. MacOS에도 있습니다 (UNIX 기반으로 구축 됨). 왜 거기에 있어서는 안 되는가. 간헐적으로 작동하는 선이 있는데 선을 명확하게 구분하는 대신 점프를 찾기 위해 출력을 탐색 해야하는 정전의 길이를 알 수 있습니다.
Silvio Levy

답변:


26

정답은 " 실패한 핑" 과 같은 것은 없습니다 . ( "도착할 수 없음"과 같은 실패한 응답은 항상 인쇄되며 응답이없는 것과 다릅니다.)

Ping 유틸리티는 먹는 사람이이 특정 Ping이 유실되었다고 판단하더라도 수신 된 모든 응답을 인쇄합니다. 순서대로 응답을받는 것은 전적으로 가능합니다.

: 심지어 내 안드로이드 전화에, 주식 핑 유틸리티는이 2 개의 옵션을 지원
-D 모든 메시지 전에 인쇄 타임 스탬프를
-O는 응답이 시간에 접수되지 않은 메시지를 출력, 그리고 더 많거나 적은 질문을 받았다 것입니다 .
그러나 이러한 옵션은 어느 곳에서나 지원되지 않는 것 같습니다 (예 : 데비안 Wheezy는 내가 아는 한 옵션이 부족하지만 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 이후에 수신 된 패킷 손실이 0으로보고되는 방법에 유의하십시오 .


Windows에 대한 추가 참고 사항 :

Windows에서 ping은 응답을 더 오래 기다렸다가 누락 된 것으로 선언하고 나중에 오는 경우 무시합니다.

기본적으로 interval은 1 초이고 timeout은 4 초이므로
RTT가 낮 으면 ping이 1 초 간격으로 전송됩니다.
RTT> 4에서 핑은 4 초 간격 (또는 5, 확실하지 않음)으로 전송되며 서버가 응답하지 않는 것처럼 모두 실패로보고됩니다.


1
-O옵션에 +1이 있으며 iputils-ping 패키지 버전 3 : 20121221-4ubuntu1.1
Xen2050

11

EvgEnZh의 답변에서 부분적으로 벗어 났지만 내 버전은 다음과 같습니다.

ping -O -q 8.8.8.8

응답이 너무 오래 걸리거나 다시 돌아 오지 않을 때 메시지를 인쇄하고 ( -O) 돌아올 때 메시지를 표시하지 않습니다 ( -q). 결과적으로 패킷이 누락 된 경우에만 출력됩니다. 이렇게하면 간헐적 인 문제를 훨씬 쉽게 찾을 수 있으므로 문제가 발생한 몇 군데에 대해 "작동 한"메시지 더미를 거칠 필요가 없습니다.


-O 트리거링은 대기 시간이 예상보다 높음을 의미합니다. 그것은 종종 실제 문제를 나타내지 만 항상 그런 것은 아닙니다. 내 답변에 게시 한 로그는 약한 GPRS 연결에서 획득되었으며 2 분이 지나도 단일 주문 실패 응답 만 잡았지만 "늦은"응답이 많이있었습니다. 엉뚱한 연결이 몇 번 압도되어 여러 핑이 연속으로 누락 된 것을보고 몇 초 후에 모두 들어 왔습니다. 연결은 여전히 ​​신뢰할 수 있었지만 (GPRS는 내부적으로 재전송을 처리했을 수도 있습니다. 모릅니다) SSH 액세스에도 매우 고통 스럽습니다.
EvgEnZh

3

아마도 ping -f당신에게 적합 할 것입니다. 핑 매뉴얼에서 :

-에프

홍수 핑. 전송 된 모든 ECHO_REQUEST에 대해 ''. ''가 인쇄되는 반면, ECHO_REPLY 수신에는 백 스페이스가 인쇄됩니다. 삭제 된 패킷 수를 빠르게 표시합니다. interval을 지정하지 않으면 interval을 0으로 설정하고 패킷이 돌아 오는 속도 또는 초당 100 회 중 빠른 속도로 패킷을 출력합니다. 수퍼 유저 만이 옵션을 간격없이 사용할 수 있습니다.

매초 1 개의 echo_request를 위해 ping -i 1 -f 8.8.8.8


새로운 기능인지 확실하지 않으면 핑 실패를 볼 수 있습니다.
王子 1986

실패한 핑을보고하기 위해 어떤 옵션을 사용 했습니까? 핑 실패에 대한 어떤 메시지가 표시됩니까?
Daniel Yuste Aroca

방금 ping을 사용했지만 메시지는 다음과 같습니다. $ ping 172.18.1.12 PING 172.18.1.12 (172.18.1.12) 56 (84) 바이트의 데이터. 172.18.1.224부터 icmp_seq = 1 도달 할 수없는 대상 호스트 172.18.1.224부터 icmp_seq = 2 172.18.1.224부터 도달 할 수없는 대상 호스트 icmp_seq = 3 목적지 호스트에 도달 할 수 없음
王子 1986

2
"대상 호스트에 연결할 수 없음"은 핑 시간 초과와
다릅니다.

ping -f는 레코드를 남기지 않기 때문에 답이 아닙니다. 성공적인 핑을위한 한 가지 유형의 라인과 실패를위한 다른 유형이 필요하므로, 서비스가 간헐적으로 발생하는 시간과 정전 시간을 즉시 알 수 있습니다.
Silvio Levy

0

-v 옵션을 사용하더라도 핑은 그렇게하지 않습니다. 이 질문을 참조하십시오 . 그러나 이것이 정말로 중요하거나 재미있는 경우 소스를 다운로드하고 적절한 printf 호출을 포함하도록 코드를 수정할 수 있습니다. 그것에 대한 좋은 장소는 'send_probe'메서드 끝에있을 것입니다 (12.10의 619 줄) ...

먼저 소스를 얻습니다

apt-get source iputils
cd iputils*

수정

gedit ping.c

생성 된 패키지 빌드 및 설치 ...

apt-get install libsysfs-dev
dpkg-buildpackage

나는 이것을하고 싶습니다 (그리고이 답변을 10 번 찬성하십시오). sudo -s에서 일하고 있습니다. ping.c를 편집 한 후 "make"를 시도하면 "치명적인 오류 : sys / capability.h : No such file"이 표시됩니다. 대답에서 다음 두 줄 (apt-get install 및 dpkg -...)을 따르면 오류가 발생하지 않지만 실행 파일이 어디에 배치되어 있는지 알 수 없습니다. 이전 실행 파일 (/ bin / ping)은 여전히 ​​존재합니다. 타임 스탬프에서 오래되었으며 다르게 작동하지 않기 때문에 알고 있습니다.
Silvio Levy

-1

모든 답변에 감사드립니다. 최신 우분투 핑이 핑 실패를 나타낼 수있는 것처럼 보입니다.

다시 감사합니다.


1
아니요 (2015 년 1 월까지) "대상 호스트에 연결할 수 없음"은 핑 시간 초과와
다릅니다.

이것이 왜 대답입니까? ping -O -q 8.8.8.8갈 길입니다.
V0ID
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.