Ping은 호스트가 인터넷 프로토콜 (IP) 네트워크에서 도달 가능한지 테스트하는 간단하고 널리 사용되는 플랫폼 간 네트워킹 유틸리티입니다. 이는 대상 호스트로 일련의 인터넷 제어 메시지 프로토콜 (ICMP) ECHO_REQUEST 메시지를 보내고 ICMP 에코 응답(또는 ECHO_RESPONSE)을 대기함으로써 작동합니다.
컴퓨터가 다른 컴퓨터(대상 호스트)와 통신할 수 있는지를 확인하기 위해 핑 테스트를 실행할 수 있으며, 이는 다음을 결정하는 데 도움이 됩니다:
- 대상 호스트에 도달할 수 있는지 여부 (활성화되었는지 여부).
- 패킷이 대상 호스트에 도달하고 다시 컴퓨터로 돌아오는 시간(대상 호스트와의 통신에서 왕복 시간 (rtt))을 측정하고
- 패킷 손실을 백분율로 표시합니다.
출력은 대상 호스트로부터의 응답 목록과 마지막 패킷이 대상 호스트로 이동하고 다시 컴퓨터로 돌아오는 데 걸린 시간을 포함합니다.
일반적으로 전송된 패킷 수 및 수신된 패킷 수, 패킷 손실의 백분율, 최소, 최대, 평균 왕복 시간 및 평균의 표준 편차를 포함한 테스트의 통계적 요약이 표시됩니다. 핑 테스트가 실패하는 경우 출력으로 오류 메시지가 표시됩니다.
리눅스에서의 핑 명령 예제
이 문서에서는 네트워크에서 호스트의 접근 가능성을 테스트하기 위한 12가지 실용적인 핑 명령 예제를 설명할 것입니다.
목차
1. 도메인 또는 IP 주소에 핑 보내기
대상 호스트인 www.google.com이 접근 가능한지 여부를 확인하기 위해 간단한 ping 테스트를 실행할 수 있습니다. 도메인 이름 대신 IP 주소를 사용할 수도 있습니다.
$ ping www.google.com OR $ ping 172.217.27.196
샘플 출력:
ping www.google.com PING www.google.com (172.217.27.196) 56(84) bytes of data. 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=1 ttl=111 time=5.01 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=2 ttl=111 time=4.75 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=3 ttl=111 time=5.37 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=4 ttl=111 time=4.99 ms ^C --- www.google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 4.751/5.030/5.373/0.222 ms ...
위 명령의 결과에서, ping이 성공하고 패킷이 손실되지 않았습니다. 핑 테스트 출력에서 주의해야 할 중요한 점은 각 핑 응답의 끝에 있는 시간입니다.
서버에서 핑 테스트를 수행하는 경우, 여기 값이 매우 중요합니다. 서버에서 실행 중인 응용 프로그램 종류에 따라 다릅니다.
예를 들어, UI에서 결과를 생성하기 위해 데이터베이스에 많은 쿼리를 수행하는 웹 응용 프로그램이 있는 경우, 해당 서버로의 핑 시간이 낮다면 지연 없이 더 많은 데이터가 전송된다는 것을 의미하며 그 반대도 마찬가지입니다.
2. 핑 에코 요청
ECHO_REQUESTs 를 보낸 후 ping이 종료되는 횟수를 지정할 수 있습니다. 이를 위해 -c
플래그를 사용하여 표시합니다 (이 경우 ping 테스트는 5개의 패킷을 보낸 후 중지됩니다).
$ ping -c 5 www.google.com PING www.google.com (172.217.27.196) 56(84) bytes of data. 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=1 ttl=111 time=4.31 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=2 ttl=111 time=4.35 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=3 ttl=111 time=4.06 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=4 ttl=111 time=5.20 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=5 ttl=111 time=4.41 ms --- www.google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 4.064/4.464/5.195/0.383 ms
3. Ping 간격 시간 설정
-i
플래그를 사용하여 각 패킷을 보내는 간격을 초 단위로 설정할 수 있습니다. 기본값은 1초입니다.
$ ping -i 3 -c 5 www.google.com PING www.google.com (172.217.27.196) 56(84) bytes of data. 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=1 ttl=111 time=5.71 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=2 ttl=111 time=6.19 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=3 ttl=111 time=5.39 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=4 ttl=111 time=7.34 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=5 ttl=111 time=4.77 ms --- www.google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 12014ms rtt min/avg/max/mdev = 4.768/5.879/7.341/0.863 ms
4. Ping Flood 공격으로의 DoS 공격
고부하 조건 하에서 네트워크 응답을 결정하기 위해 “플러드 ping”을 실행할 수 있습니다. 이는 가능한 한 빠르게 요청을 보내는 것입니다. 이를 위해 -f
스위치를 사용합니다. 루트만이 이 옵션을 사용할 수 있으며, 그렇지 않으면 루트 권한을 얻기 위해 sudo 명령어를 사용하십시오.
$ sudo ping -f www.google.com OR $ sudo ping -f -i 3 www.google.com #specify interval between requests PING www.google.com (172.217.163.36) 56(84) bytes of data. .......................................................................................................................................................................................^C --- www.google.com ping statistics --- 2331 packets transmitted, 2084 received, 10% packet loss, time 34095ms rtt min/avg/max/mdev = 29.096/29.530/61.474/1.417 ms, pipe 4, ipg/ewma 14.633/29.341 ms
5. LAN의 Ping 브로드캐스트
LAN 네트워크에 연결된 모든 IP 주소에서 응답을 받을 수 있도록 브로드캐스트 핑을 활성화할 수 있습니다. 이를 위해 -b
옵션을 사용하십시오.
$ ping -b 192.168.0.0
6. Ping TTL 값을 설정합니다.
네트워크 호핑을 제한하기 위해 (TTL – 타임 투 라이브) 프로브가 통과하는 네트워크 횟수를 제한하려면 -t
플래그를 사용하십시오.
각 패킷을 수신하는 라우터는 카운트에서 최소 1을 빼고 카운트가 여전히 0보다 크면 패킷을 다음 호스트로 전달하고, 그렇지 않으면 버립니다. 그리고 컴퓨터에 ICMP 응답을 보냅니다.
이 예에서 TTL이 초과되었으며 핑 테스트가 실패했습니다. 스크린샷에 표시된대로입니다.
$ ping -t 10 www.google.com

7. 핑 패킷 크기 설정
기본 패킷 크기는 핑 테스트에 충분해야 하지만, 특정 테스트 요구 사항을 충족하기 위해 변경할 수 있습니다. -s
옵션을 사용하여 바이트 단위로 페이로드 크기를 지정할 수 있으며, 제공된 값에 ICMP 헤더에 대한 추가 8바이트가 포함된 전체 패킷 크기가 됩니다.
$ ping -s 1000 www.google.com
8. 핑 프리로드 설정
프리로드를 추가하면 핑이 해당 수만큼의 패킷을 기다리지 않고 보냅니다. 루트만 3보다 많은 양의 프리로드를 선택할 수 있으며, 그렇지 않으면 루트 권한을 얻기 위해 sudo 명령을 사용하십시오.
$ sudo ping -l 5 www.google.com
9. 핑 타임아웃 설정
$ ping -W 10 www.google.com
10. 초 단위로 핑 타임아웃 설정
핑이 보낸 패킷 수나 받은 패킷 수와 관계없이 핑이 종료되기 전에 초 단위로 타임아웃을 설정하려면 -w
플래그를 사용합니다.
$ ping -w 5 www.google.com
11. 핑 디버그 ICMP 패킷
-d
옵션을 사용하여 디버그 IP 패킷 세부 정보를 활성화할 수 있습니다.
$ ping -d www.google.com
12. 핑 자세한 출력
-v
플래그를 사용하여 자세한 출력을 활성화할 수 있습니다.
$ ping -v www.google.com
참고: 핑은 일반적으로 네트워크 연결을 테스트하기 위해 사용되는 것은 아니며, 단순히 IP 주소가 활성화되었는지 비활성화되었는지를 알려줍니다.
보통 traceroute 프로그램과 함께 사용되지만, MTR – 현대적인 네트워크 진단 도구는 핑과 traceroute의 기능을 결합하고 많은 추가 기능을 제공합니다.
다음과 같은 포괄적인 네트워킹 도구 목록을 확인하십시오: 리눅스 네트워크 관리, 문제 해결 및 디버깅
요약
Ping은 네트워크 상의 호스트의 접근 가능성을 해결하는 매우 일반적인 방법입니다. 이 기사에서는 네트워크 장치의 접근 가능성을 테스트하기 위한 실용적인 ping 명령 예제 12개를 설명했습니다. 아래의 댓글 양식을 통해 의견을 공유해 주십시오.