Search

nc : -zv & -lv

Tags
unix
difference
tcp
port
listen
request
Created
2024/05/19 19:51
Created time
2024/05/19 10:51
category
unix

개요

많은 서비스들이 TCP/UDP를 이용하여 통신을 수행하고, 해당 서비스들을 기동했을 때 정상 동작하는지 확인을 위한 방법을 탐색
또한 초기 인스턴스 설정 시 방화벽에 막히지 않고 인스턴스 내부로 전송 계층까지 잘 도달하는지 확인하는 방법을 탐색

-zv

-z는 특정 포트 혹은 범위로 지정한 포트가 열려 있는지 확인할 때 주로 이용
따라서 열려 있는 포트를 파악하거나 서비스되고 있는 포트를 찾기 용이
만일 포트가 열려 있지 않은 경우 별도의 출력 메시지가 없기 때문에 verbose 옵션 (-v)와 함께 사용하면 상세 정보를 함께 확인 가능
** 좌) 포트가 열려 있는 경우 / 우) 포트가 열려 있지 않은 경우

-lv

-l 옵션은 포트의 listening을 목적으로, TCP 및 UDP 포트가 정상 동작하는지 확인하는데 사용할 수 있음
-zv의 경우 netcat 자체가 수신 대기로 들어가지는 않고 단순히 포트의 점유 및 연결 여부를 확인했었다면, -lv의 경우 netcat 자체가 수신 대기로 들어가서 전송 계층의 연결을 수행
** 단순히 정보만 보고 싶다면 -zv, 연결 및 동작을 확인하고 싶다면 -lv
따라서 이미 사용 중인 포트를 대상으로 -lv를 수행 시 오류가 발생
예를 들어, 9200 포트를 사용할 예정인 상태에서 방화벽을 해제해두고, 원격에서 -lv 옵션을 이용하여 9200을 열어서 로컬에서 요청을 날려보면 원격의 포트가 정상 동작하는지 확인 가능

호스트네임 이용 시 2개 결과가 보이는 이유

nc의 경우 IPv4, IPv6, 호스트네임을 기재하여 사용할 수 있고, 호스트네임을 이용하는 경우엔 IPv4와 IPv6 두가지를 대상으로 모두 동작
특히 디폴트로 IPv6를 이용하기 때문에 IPv6에 대한 결과를 먼저 보이고, 그 다음에 IPv4 결과를 볼 수 있음
따라서 만일 IPv4로만 서비스가 되고 있다면, IPv6에서는 connection refused, 그리고 IPv4에서는 succeeded가 나타나는 것을 볼 수 있음