nc (netcat) 명령어
TCP 또는 UDP 프로토콜을 사용하는 네트워크 연결에서 데이터를 읽고 쓰는 간단한 명령어.
예를들어, 해당 서버로 방화벽이 막혀있는지 점검할 때도 활용할 수 있음
프로그램 다운로드 : http://netcat.sourceforge.net/
옵션
.Bk -words [-46DdhklnrStUuvz] [-i interval] [-p source_port] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol] [Xo -x proxy_address[: port]] [hostname] [port[s]]
.Ek
주요 옵션 설명
옵션 | 설명 |
---|---|
-4 | IPv4 주소 사용. |
-6 | IPv6 주소 사용. |
-D | 소켓에서 디버깅 활성화. |
-h | 도움말 출력. |
-l | 소켓 서버로서 리스닝 함. |
-u | 디폴트인 TCP 대신에 UDP 사용. |
-z | 데이터 전송없이 단순히 포트 스캔. |
시용 예제
1) 방화벽 테스트 및 포트 스캔
예제#1) 해당 IP주소의 80포트가 방화벽이 막혀있는지 테스트한다.
$ nc -v -z 10.x.x.x 80
방화벽이 열려있으면 "Connteced" 라는 메시지가 출력됨
예제#2) 포트 20부터 30번까지 스캔한다.
$ nc www.example.com 20-30
예제#3) 해당 서버의 특정 포트로 접속 가능한지 점검한다. 예를들어 방화벽으로 막혀있으면 응답이 실패된다.
$ nc www.example.com 22
2) TCP 테스트
예제#1) TCP 소켓 서버로 12345 포트로 리스닝한다.
$ nc -l 12345
예제#2) TCP 소켓 localhost 서버의 12345 포트 연결한다.
$ nc localhost 12345
참고로, "문자열"을 송신하면, Listen하는 nc 데몬에서 해당 "문자열"을 출력함
3) UDP 테스트
예제#1) UDP 소켓 서버로 12345 포트로 리스닝한다.
$ nc -u -l 12345
예제#2) UDP 소켓 localhost 서버의 12345 포트 연결한다.
$ nc -u localhost 12345
4) HTTP 및 방화벽 오픈 여부 테스트
예제#1) 해당 URL로 HTTP Head 목록 조회를 요청한다.
$ echo -e "HEAD / HTTP/1.1\n\n" | nc www.test.co.kr 80
'OS > LINUX' 카테고리의 다른 글
[툴] sysstat 설명 (0) | 2016.08.20 |
---|---|
[명령어] vmstat 설명 (3) | 2016.08.20 |
[Tips] 리눅스 필수 툴 (1) | 2016.07.12 |
[명령어] script 명령어 (1) | 2016.07.01 |
[Tips] core 파일 생성법 (0) | 2016.06.13 |