Linux / 명령어 / nc - TCP·UDP 연결과 포트 점검
nc(Netcat)는 TCP·UDP 연결을 열거나 수신해 데이터를 주고받는 범용 도구입니다. 허가된 호스트의 포트 접근 여부를 빠르게 확인할 때도 사용합니다.
nc 명령어란?
Linux 배포판에는 OpenBSD netcat, Nmap Ncat 등 서로 다른 구현이 nc라는 이름으로 설치될 수 있습니다. -z는 데이터를 보내지 않고 연결 가능 여부를 확인하고, -v는 진단 메시지를 표시합니다. 일부 옵션과 수신 모드 문법은 구현마다 다릅니다.
기본 문법
nc [옵션] 호스트 포트
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man nc으로 현재 시스템의 설명을 확인하세요.
사용 예제
로컬 SSH 포트 점검
자신의 컴퓨터의 TCP 22번 포트가 연결을 받는지 확인합니다.
nc -vz 127.0.0.1 22
연결 시간 제한
응답 없는 로컬 포트에서 오래 기다리지 않도록 제한합니다.
nc -w 3 -vz 127.0.0.1 80
직접 연결
자신의 컴퓨터의 서비스가 보내는 데이터를 관찰합니다. Ctrl+C로 종료합니다.
nc -v 127.0.0.1 22
포트 연결 검사 결과 해석
nc -vz는 데이터를 주고받지 않고 TCP 포트 연결 가능 여부를 간단히 확인할 수 있습니다. 옵션 지원과 출력 문구는 netcat 구현에 따라 다릅니다.
nc -vz example.com 443
연결에 성공했을 때 가능한 출력 예시:
Connection to example.com 443 port [tcp/https] succeeded!
연결 성공은 해당 포트가 TCP 연결을 받았다는 뜻일 뿐 TLS 인증서나 HTTP 응답이 정상이라는 뜻은 아닙니다. 타임아웃이면 방화벽·경로·서버 대기 상태를, 즉시 거부되면 대상에서 연결을 받지 않는지 살펴보세요. 허가받은 대상에만 검사 패킷을 보내세요.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-z |
데이터 전송 없이 연결 가능 여부를 점검합니다. |
-v |
진단 출력을 자세히 표시합니다. |
-w 초 |
연결·입출력 시간 제한을 설정합니다. 구현별 의미가 다를 수 있습니다. |
-u |
UDP 모드로 사용합니다. |
-l |
연결을 기다리는 수신 모드입니다. 구현별 문법을 확인합니다. |
사용할 때 주의할 점
포트가 열렸다는 것은 애플리케이션이 정상 동작하거나 인증이 안전하다는 보장이 아닙니다. UDP의 -z 결과는 응답이 없어 해석이 특히 어렵습니다. 외부 호스트 점검은 소유자 허가를 받은 범위에서만 하세요. nc -h로 현재 구현의 옵션을 확인합니다.
자주 묻는 질문
nc와 ncat은 같은 도구인가요?
둘 다 Netcat 계열이지만 구현이 다를 수 있습니다. 설치된 패키지와 nc -h 출력을 확인해 옵션을 구분하세요.
공식 문서
옵션의 정확한 동작과 구현별 차이는 nc 관련 공식 문서에서 확인할 수 있습니다.









