알아두면 좋은 IT 지식/Network

[리눅스] TCP 소켓 통신 테스트 명령어 nc(ncat) 사용법

uutopia 2022. 7. 18. 13:09

리눅스에서 소캣 통신 테스트를 위한 도구로 ncat(줄여서 nc)을 제공한다. (TCP, UDP)
혹시 설치가 필요하다면 yum install nc 등 을 통해서 설치 후 사용한다.
nc는 소켓 통신에서 클라이언트 역할뿐만 아니라 -l 옵션을 통해서 서버 역할도 수행이 가능한데 오늘은 이 기능에 대해서 예제를 통해서 알아보려고 한다.

 

 

1. TCP 소켓 생성 후 접속 대기

nc -v -l -k IP PORT
ex.
$ nc -v -l -k 10.0.2.15 1111
Ncat: Listening on 10.0.2.15:1111

서버(IP : 10.0.2.15)에서 소켓(PORT : 1111) 생성 후 클라이언트의 접속을 기다린다. (LISTEN)

 



2. TCP 소켓 생성 후 다른 TCP 소켓에 접속

nc -v -s SOURCE_IP -p SOURCE_PORT DESTINATION_IP DESTINATION_PORT
ex.
$ nc -v -s 10.0.2.16 -p 2222 10.0.2.15 1111
Ncat: Connected to 10.0.2.15:1111.

클라이언트(IP : 10.0.2.16)에서 소켓(PORT : 2222) 생성 후 서버(IP : 10.0.2.15)의 소켓(PORT : 1111)으로 접속을 시도한다. (SENT)

 



3. 네트워크 상태 확인

netstat -an | grep PORT
ex.
$ netstat -an | grep 1111
tcp   0   0   10.0.2.15:1111   10.0.2.16:2222   ESTABLISHED

1111번 포트의 네트워크 상태를 확인한다. (ESTABLISHED)

 


한줄의 명령어로 간단하게 TCP 소켓 서버를 생성하고 연결, 데이터 송수신 테스트까지 수행할 수 있다.