본문 바로가기

OS/Unix

[UNIX] 네트워크 연결 확인 - netstat / + port,socket

팀장님(짱천재)께서 자주 사용하게 될 명령어니까 제발 외우라고 했던 [ netstat -an ] !!

유닉스 명령어와 친해지기... 쉽지 않다..!

 

 

 

맥북 IP 확인 방법

ifconfig | grep inet

 

윈도우 IP 확인 방법

ipconfig all

 

 


 

netstat

netstat [옵션] [| grep 포트 번호 or 서비스 명]
  • 네트워크 접속, 라우팅 테이블, 네트워크 인터페이스의 통계 정보를 보여주는 도구
  • 네트워크 관련한 정보를 보는 유틸리티로 현재 리슨중인 포트, 모든 내외부/연결 정보 등을 확인할 수 있다.
  • 해당 명령을 수행하는 서버가 다른 시스템과 어떤 서비스, 또는 어떤 포트로 연결되어 있는지를 확인할 수 있다.

 

 

option 

옵션 설명
-a 모든 소켓을 표시한다.
-t  TCP 로 연결된 socket 만 표시한다.
-u UDP 로 연결된 socket 만 표시한다.
-n 포트번호를 표시한다. 
-p 소켓을 사용하고 있는 프로그램 이름(PID)을 표시한다.
-r 라우팅 테이블을 표시한다.
-l 연결 대기 상태(listen)인 소켓만 표시한다. 

> 더 많은 옵션은 man 명령어를 통해 확인할 수 있다.  

 

$ sudo netstat -a

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:hostmon         0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp6       0      0 [::]:hostmon            [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
udp        0      0 0.0.0.0:hostmon         0.0.0.0:*                          
udp        0      0 localhost:323           0.0.0.0:*                          
udp        0      0 ip-127-0-0-53.ap:domain 0.0.0.0:*                          
udp        0      0 ip-172-31-23-247:bootpc 0.0.0.0:*                          
udp6       0      0 [::]:hostmon            [::]:*                             
udp6       0      0 localhost:323           [::]:*                             
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     19709    /run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     21522    /var/lib/sss/pipes/nss
  •   Proto : TCP / UDP / RAW 등 프로토콜의 종류
  •   Recv-Q : 해당 process가 현재 받는 바이트 
  •   Send-Q : 해당 process가 현재 보내는 바이트 
  •   Local Address : 출발지 주소 및 포트(자신의 주소 및 포트)
  •   Foreign Address : 목적지 주소 및 포트
  •   State : 포트의 상태

예시

netstat -an
-> 열려있는 모든 포트를 확인한다.

netstat  -an | grep LISTEN
-> 상태가 LISTEN인 모든 포트를 확인한다.

 

- netstat -a

 

 

 

- netstat -an

 

 

 

 

 

상태값

 

TCP 상태전이 다이어그램 / 출처 : 구글이미지

 

상태
설명
LISTEN 서버의 데몬이 떠 있어서 클라이언트의 접속 요청을 기다리고 있는 상태
SYN_SENT 클라이언트가 서버에게 연결을 요청한 상태
SYN_RECEIVED 서버가 클라이언트로부터 접속 요구(SYN)을 받아 클라이언트에게 응답(SYN/ACK)하였지만,
아직 클라이언트에게 확인 메시지(ACK)는 받지 못한 상태
ESTABLISHED 서버와 클라이언트 간에 세션 연결이 성립되어 통신이 이루어지고 있는 상태
(클라이언트가 서버의 SYN을 받아서 세션이 연결된 상태)
FIN_WAIT1 클라이언트가 서버에게 연결을 끊고자 요청하는 상태 (FIN을 보낸 상태)
CLOSE_WAIT TCP 연결이 상위 응용프로그램 레벨로부터 연결 종료를 기다리는 상태
FIN_WAIT2
서버가 클라이언트로부터 연결 종료 응답을 기다리는 상태
(서버가 클라이언트로부터 최초로 FIN을 받은 후, 클라이언트에게 ACK를 주었을 때)
LAST_ACK
호스트가 원격지 호스트의 연결 종료 요구 승인을 기다리는 상태
(서버가 클라이언트에게 FIN을 보냈을 때의 상태)
TIME_WAIT 연결은 종결되었지만 당분간 소켓을 열어 놓은 상태.
약 1분 정도이며 시간이 지나면 사라진다. 
CLOSED
완전히 연결이 종료된 상태
CLOSING
흔하지 않으나 주로 확인 메시지가 전송 도중 유실된 상태
UNKNOWN
소켓의 상태를 알 수 없는 상태. 

 

 

 

 

 

Port와 Socket

이미지 출처 : 구글

 

PORT 

  • 네트워크를 통해 데이터를 주고받는 프로세스를 식별하기 위해 호스트 내부적으로 프로세스가 할당받는 고유한 값.
    이때 호스트란? IP를 가지고 있고 양방향 통신이 가능한 컴퓨터 ...
  • 한 호스트 내에서 네트워크 통신을 하고 있는 프로세스를 식별하기 위해 사용되는 값이다. 즉 같은 호스트 내에서 서로 다른 프로세스가 같은 포트넘버를 가질 수 없다.
  • 포트는 쉽게 말하면 '사용 용도를 숫자로 표현한 것'이라고 할 수 있다! 

Socket

  • 프로세스가 네트워크를 통해서 데이터를 주고받으려면 반드시 열어야 하는 창구 같은 것.
  • 프로세스가 데이터를 보내거나 받기 위해서는 반드시 소켓을 열어 소켓에 데이터를 써 보내거나 소켓으로부터 데이터를 읽어 들여야 한다. 
  • 소켓을 열기 위해선 호스트에 할당된 IP주소, 포트넘버, 프로토콜 등이 필요하며 이 세 가지가 소켓을 정의한다.

 

 

 


 

https://blog.naver.com/ncloud24/221388026417

 

netstat 명령어를 통한 네트워크 상태 확인 방법

netstat - 네트워크 접속, 라우팅 테이블, 네트워크 인터페이스의 통계 정보를 보여주는 도구사용 방...

blog.naver.com

https://blog.voidmainvoid.net/201

 

[linux] netstat 명령어 설명 및 예제

netstat 소개netstat(network statistics)는 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스(네트워크 인터페이스 컨트롤러 또는 소프트웨어 정의 네트워크 인터페이스), 네트워크 프로

blog.voidmainvoid.net

https://www.lesstif.com/lpt/linux-netstat-93127510.html

 

linux netstat 명령어 사용법

 

www.lesstif.com

https://ktdsoss.tistory.com/282

 

[UNIX/LINUX] netstat 상태값, 옵션 정리

netstat 과 관련하여 글 올립니다.아시다시피 netstat 은 해당 명령을 수행하는 서버가 다른 시스템과 어떤 서비스 또는 포트로 연결되어 있는지를 확인하는 명령어입니다.알아두면 매우 유용한 명

ktdsoss.tistory.com

https://blog.naver.com/ding-dong/221389847130

 

소켓(Socket) 포트(Port) 뜻과 차이

나도 개발자지만 소켓과 포트의 정확한 의미 차이가 헷갈릴 때가 있어서, 최근에 다시 꼼꼼하게 공부를 했...

blog.naver.com

https://livenow14.tistory.com/57

 

[Network] TCP 연결과정에 대해 알아보자

전반적인 흐름은 이전에 정리했어요. [Network] OSI 7계층이란? [Network] http의 특징과 각각에 대해 간략히 설명해 주세요 TCP는 TCP/IP 모델의 3계층인 트랜스포트 계층의 프로토콜이에요. Port번호를 사

livenow14.tistory.com

https://velog.io/@ragnarok_code/Network-TCP-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%97%B0%EA%B2%B0%EC%A2%85%EB%A3%8C-%EA%B3%BC%EC%A0%95

 

[Network] TCP 프로토콜 연결/종료 과정

TCP 프로토콜 연결/종료 과정 3-way handshaking (연결 과정) 3-way handshake란 ? TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정(Connection Establish)하는 과정 양쪽 모두 데이터를 전송할

velog.io

https://www.ictshore.com/free-ccna-course/transmission-control-protocol-advanced/

 

Transmission Control Protocol (TCP): The advanced stuff - ICTShore.com

Transmission Control Protocol (TCP) advanced features include windowing, selective acknowledgement, congestion control, header compression, ECN and more...

www.ictshore.com

 

 

...

 

TCP/UDP 차이점 정리 참고 블로그!

https://velog.io/@kimyeji203/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-TCPUDP

 

[네트워크] TCP/UDP

TCP와 UDP는 4계층 Transport Layer의 프로토콜이다.

velog.io

'OS > Unix' 카테고리의 다른 글

[UNIX] crontab 스캐줄러  (0) 2023.04.18
[UNIX] 디스크 용량 확인 - df, du  (0) 2023.02.11
[UNIX] grep, find  (1) 2022.12.11