netstat은 네트워크 연결정보를 알아보는 명령어입니다.
netstat -an 을 command 창에 쳤을 때 아래와 같은 결과창을 볼 수 있습니다.
IP주소를 Blur처리해서 보이지는 않겠지만, 해당 사진에서 일반적으로 알고 있는 IP Address 이외에 두 가지 이상한 내용을 볼 수 있습니다.
(127.0.0.1 은 사용자 자신의 컴퓨터 Local Address 입니다.)
첫 번째는 0.0.0.0 입니다.
0.0.0.0에 대해서 microsoft는 아래와 같이 설명하고 있습니다.
증상
-
When you carry out the command
netstat -an, you may receive a display that shows an IP address of 0.0.0.0 in
LISTENING status similar to the following:
TCP 0.0.0.0:110 0.0.0.0:0 LISTENING
NOTE: The normal, or expected, behavior is to have your local computer's IP address listed instead of 0.0.0.0.
-
command 창에서 netstat –an 명령어를 사용했을 때, Listening 상태의
IP Address 0.0.0.0을 볼 수 있습니다.
혹은
0.0.0.0 대신에 당신 Local 컴퓨터의 IP Address를
보여줄 수도 있습니다.
이유
- The Winsock application that is listening on the designated port was written so that it binds to any local IP address by using INADDR_ANY. This means that the application will listen to all local interfaces and you can connect to the port of any of them. This is why netstat -an shows IP address 0.0.0.0 listening on the port.
-
지정된 포트에서 수신 대기하는 Winsock 응용프로그램은
INADDR_ANY를 사용하여 Local IP Address에
바인딩 하도록 작성되었습니다.
이것은 응용프로그램이 모든 Local 인터페이스를
들을 수 있고, 당신이 그들을 어떤 것의 포트와도 연결될 수 있음을 의미합니다.
이것이 netstat –an이
0.0.0.0 IP Address를 보여주는 이유입니다.
출처 : http://support.microsoft.com/?scid=kb%3Ben-us%3B175952&x=6&y=11
영문으로 작성된 내용을 대충 해석하여 올리다보니까 조금 돌려서 얘기하는 듯 한데요.
INADDR_ANY는 0.0.0.0으로 대기하다가 특정 서버로 접속하는 경우 소켓이 바인드되어서 그 서버의 주소 혹은 이름을 표시하게
됨을 의미합니다.
즉, 0.0.0.0은 모든 Local Address를 받을 수 있고, 특정 서버에 접속하기를 대기하고 있어서 늘 Listening 상태에서만
볼 수 있지영.
잠깐 netstat 명령어 뒤에 썼던 추가기능에 대해서 알아보면,
-na에서 a는
all을 뜻하고, n은
numeral이므로 숫자로 표시하게 합니다.
n을 제외한 netstat –a를
쓰게 되면 아래와 같은 모습을 볼 수 있습니다.
-n 을 쓰게 되면 mysql의 경우 3306으로 표시하고, n을 안쓰면 3306을 mysql로 표시하게 됩니다.
첫 번째로 썼던 netstat -an 를 통해서 0.0.0.0 으로 표시되던 주소들은 netstat -a 를 사용했을 때는
* 로 나타나는 것을 알 수 있습니다. 위에서 설명한 대로 모든 내용을 받을 수 있음을 의미합니다. (ANY)
두 번째는, :: 입니다.
:: 은 netstat –a의 명령어를 쳤을 경우에는 [::] 로 표시되어, 문자로 표시하나 숫자로 표시하나 별 다를 바가 없습니다.
하지만 ::은 0.0.0.0을
미리 알고 왔으므로, 알아내는 데 큰 문제가 없습니다.
왜냐하면, IP Address를 나타내는 IPv4 체계와 IPv6의 차이일 뿐이니까요.
IPv4에서 “any”를 나타내려면 4개의 0을 찍어야 합니다. 0.0.0.0 이렇게요.
IPv6에서 “any”를 나타내려면 2개의 Colon이 필요합니다. :: 이렇게요.
이상으로 netstat 명령어에서 궁금했던 점에 대해서 정리해봤습니다.
다른 내용을 쓰고 있네영. ㅠㅠ 9월 한달도 열심히 삽시다.
'Server > Window' 카테고리의 다른 글
내 컴퓨터 localhost의 주소를 변경하는 방법 (2) | 2013.03.17 |
---|---|
윈도우의 파일시스템, 그리고 포맷? (2) | 2011.04.07 |
Window에서 Linux 환경 쓰기 (1) | 2011.01.28 |
시스템 등록정보의 환경변수 설정 (1) | 2011.01.28 |