Programming/etc

#ping 에 대해서 알아보자

현무랑 2019. 10. 1. 14:16
반응형

문제:
작업하던 중에 API 서버가 제대로 응답하지 않는 것 같아 `ping`을 던져봤다.

 

가만... 내가 왜 `ping`을 보내고 있지...

맞다. 서버 응답이 늦어서, 해당 서버가 죽었는지 확인할 목적이었지.

 

그러고보니, 습관적으로 `ping`을 날리면서도 자세히 알아본 적이 없었던 것 같다.

그저, 도메인이나 서버 IP로 던지고, 로그가 출력되면 "아~ 죽진 않았구만.." 정도로만 생각했다.

 

이참에 좀 더 자세히 알아보자.

 


해결책:

`ping`은 네트워크 연결이 잘 되어 있는지 확인하는 목적의 명령이다.

좀 어려운 말로, IP 수준을 확인하는 용도이다.

 

`ping`을 사용해서 대상 호스트 이름 또는 IP 주소로 요청을 보낼 수 있고,

이 때 `ICMP`라는 프로토콜을 이용한다.

 

ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)는,

네트워크 위에서 돌아가는 운영체제에서 오류 메시지를 전송받는데 주로 쓰이며,

인터넷 프로토콜의 주요 구성원 중 하나로 인터넷 프로토콜에 의존하여 작업을 수행한다고 한다.

엔드 시스템간 자료를 주고 받는 역할은 수행하지 않는다는 점에서 TCP나 UDP와는 성질이 다르다.

 

 

여튼, `ping` 명령으로 대상이 되는 호스트 컴퓨터가

TCP/IP 네트워크 및 네트워크 리소스에 연결할 수 있는지 확인할 수 있다.

 

네트워크가 잘 연결되어 있는지 연결하려면 아래 단계를 수행하면 된다.

 

1. 먼저, 내 로컬 컴퓨터에 TCP/IP가 올바로 구성되어 있는지 확인한다.

    $ ping 127.0.0.1

 

2. 로컬 컴퓨터에 할당된 IP 주소에 대해 `ping`을 수행해서, 네트워크에 올바로 추가되어있는지 확인한다.

    $ ping 로컬호스트의 IP 주소

 

3. 로컬 컴퓨터를 포함하고 있는 기본 게이트웨이의 IP 주소에 대해 `ping`을 수행한다.

    이는 기본 게이트웨이가 작동하고 있는지, 로컬 네트워크의 로컬 호스트와 통신할 수 있는지 확인한다.

    $ ping 기본게이트웨이의 IP 주소

 

4. 대상 서버나 컴퓨터, 즉 원격 호스트의 IP 주소에 대해 `ping`을 수행하여,

    라우터를 통해 통신할 수 있는지 확인한다.

    $ ping 원격 호스트의 IP 주소


위 절차를 통해, 내 컴퓨터의 네트워크 구성이 잘못 되었는지, 게이트웨이가 문제인지,

원격 호스트의 네트워크가 문제인지 파악할 수 있다.

 

앞으론 잘 이해하고 사용하자.

 

 

논의:

 

특정 포트가 열려있는지 확인할 목적이라면 ping은 적합하지 않다.

검색해보니, 이 목적이라면 `nmap`을 사용해보라고 한다. (https://nmap.org/)

 

    nmap -p [포트] [IP 또는 호스트]

 

로 확인해볼 수 있다. (포트를 생략하면 열려있는 전체 포트를 확인한다)

 

 

$ nmap naver.com

 

Starting Nmap 7.40 ( https://nmap.org ) at 2017-03-08 16:24 KST

Nmap scan report for naver.com (125.209.222.142)

Host is up (0.0065s latency).

Other addresses for naver.com (not scanned): 202.179.177.21 202.179.177.22 125.209.222.141

Not shown: 971 filtered ports, 28 closed ports

PORT   STATE SERVICE

80/tcp open  http

 

Nmap done: 1 IP address (1 host up) scanned in 3.97 seconds

 

 

 

참고:

http://technet.microsoft.com/ko-kr/library/cc732509(v=ws.10).aspx

http://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%EB%84%B7_%EC%A0%9C%EC%96%B4_%EB%A9%94%EC%8B%9C%EC%A7%80_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

http://serverfault.com/questions/309357/ping-a-specific-port

 

Ping a Specific Port

Just a quick sanity check here. Can you ping a specific port of a machine, and if so, can you provide an example? I'm looking for something like ping ip address portNum.

serverfault.com

출처 : https://ohgyun.com/450

반응형

'Programming > etc' 카테고리의 다른 글

#NotePad ++ 로그 보기  (1) 2019.10.15
putty 자동로그인  (1) 2019.10.10
Tomcat 프로세스 강제종료  (0) 2019.09.19
# 톰켓 프로세스 확인  (0) 2019.09.19
window 10 web browser 기본세팅 변경하기  (0) 2019.07.03