OS/LINUX

[명령어] nc 또는 netcat

투칼론 2016. 7. 27. 23:11
반응형

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


참고로, 방화벽 오픈여부 체크를 위해 telnet 명령어와 함께 많이 사용된다.



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


참고로, "문자열"을 송신하면, Listen하는 nc 데몬에서 해당 "문자열"을 출력함



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