Welcome to Our Website

리눅스 nc 명령

업데이트:03/06/2020 컴퓨터에 의해 희망

On Unix-like operating systems,nc 명령을 실행 Netcat,유틸리티를 보내는 원시 데이터 네트워크를 통해 연결합니다.

이 문서는 Nc 의 Linux 버전을 다룹니다.

설명

Netcat 은 tcp 또는 UDP 프로토콜을 사용하여 네트워크 연결을 통해 데이터를 읽고 쓰는 유틸리티입니다. 직접 사용하거나 다른 프로그램 및 스크립트로 구동 할 수있는 신뢰할 수있는”백엔드”도구가되도록 설계되었습니다., 동일한 시간에,그것은 풍부한 기능의 네트워크를 디버깅하고 탐사 도구를 할 수 있기 때문에 만들 거의 모든 종류의 연결을 해야하고 몇 가지 흥미로운 건축-기능입니다. 일반적인 용도는 다음을 포함합니다:

  • 간단한 처리하도록 하였습니다
  • 쉘 스크립트를 기반으로한 HTTP 클라이언트와 서버
  • 네트워크 daemon 테스트
  • Socks 또는 HTTP ProxyCommand ssh

Syntax

옵션

-4 력 nc IPv4 주소를 사용하다.
-6 nc 가 IPv6 주소 만 사용하도록 강제합니다.,
-b 방송 허용.이 작업을 수행하려면 다음 작업을 수행해야합니다.
D 디버깅을 사용하려면 소켓에.stdin 에서 읽으려고하지 마십시오.
-h nc 도움말을 인쇄합니다.
-I length 는 TCP 수신 버퍼의 크기를 지정합니다.
-i 간격 지정하는 지연 시간 간격을 줄의 텍스트 전송 및 수신합니다. 또한 여러 포트에 대한 연결간에 지연 시간이 발생합니다.,
-k 는 현재 연결이 완료된 후 nc 가 다른 연결을 청취하도록 강제합니다. 이 옵션을-l 옵션없이 사용하는 것은 오류입니다.
-l 을 지정하는 데 사용되는 nc 들어야 들어오는 연결을 대기보다는 연결을 시작하는 원격 호스트. 이 옵션을-p,-s 또는-z 옵션과 함께 사용하는 것은 오류입니다. 또한-w 옵션으로 지정된 시간 제한은 무시됩니다.
n 하지 않는 모든 DNS 또는 서비스에 대한 조회는 지정된 주소,호스트 이름 또는 포트가 있습니다.,
-o 길이 는 TCP 송신 버퍼의 크기를 지정합니다.
-P proxy_username 지정 사용자 이름을 제공하는 프록시 서버에 인증이 필요합니다. 사용자 이름을 지정하지 않으면 인증을 시도하지 않습니다. 프록시 인증은 현재 HTTP CONNECT 프록시에 대해서만 지원됩니다.
-p source_port 원본을 지정합니다 포트 nc 사용해야 하는,대상 권한의 제한과 가용성입니다.,
-q 초 stdin 에서 EOF 후 지정된 초 수를 기다린 다음 종료하십시오. 초가 음수이면 영원히 기다리십시오.
r 지정된 원본 또는 대상에 포트를 선택해야 합작 대신 순차적으로 범위 내에서 또는 시스템을 이용하여 할당합니다.
-S 는 RFC2385TCP MD5 서명 옵션을 활성화합니다.
-s source 패킷을 전송하는 데 사용되는 인터페이스의 IP 를 지정합니다., UNIX-domain 데이터그램 소켓의 경우 데이터그램을 수신할 수 있도록 만들고 사용할 로컬 임시 소켓 파일을 지정합니다. 이 옵션을-l 옵션과 함께 사용하는 것은 오류입니다.
-T toskeyword 변경 IPv4TOS 값. toskeyword 는 critical,inetcontrol,lowcost,lowdelay,netcontrol,throughput,reliability 또는 diffserv 코드 포인트 중 하나 인 ef,af11 중 하나 일 수 있습니다… af43,cs0… cs7;또는 16 진수 또는 10 진수의 숫자.
-t 는 nc 가 RFC854DO NOT 및 WON NOT 응답을 RFC854DO 및 WILL 요청에 보내도록합니다., 이를 통해 nc 를 사용하여 텔넷 세션을 스크립팅 할 수 있습니다.
-U 유닉스 도메인 소켓을 사용하도록 지정합니다.
-u TCP 의 기본 옵션 대신 UDP 를 사용하십시오. 유닉스 도메인 소켓의 경우 스트림 소켓 대신 데이터 그램 소켓을 사용하십시오. UNIX-domain 소켓을 사용하는 경우-s 플래그가 주어지지 않는 한/tmp 에 임시 수신 소켓이 생성됩니다.
-V rtable 사용할 라우팅 테이블을 설정합니다. 기본값은 0 입니다.이 경우,나는 더 많은 출력을 제공 할 것입니다.,
-w timeout 연결할 수 없는 설립 또는 유휴지 시간 제한 시간 제한을 초입니다. -W 플래그는-l 옵션에 아무런 영향을 미치지 않습니다.nc 는-w 플래그의 유무에 관계없이 연결을 위해 영원히 청취합니다. 기본값은 시간 초과가 없습니다.
X proxy_protocol 요청하는 nc 사용해야 한다는 지정된 프로토콜을 이야기 할 때는 프록시 서버입니다. 지원되는 프로토콜은”4″(SOCKS v.4),”5″(SOCKS v.5)및”connect”(HTTPS 프록시)입니다. 프로토콜이 지정되지 않은 경우 양말 버전 5 가 사용됩니다.,
x proxy_address 요청하는 nc 연결해야합니다를 사용하여 대상 프록시에 proxy_address 과 포트가 있습니다. 포트를 지정하지 않으면 프록시 프로토콜의 잘 알려진 포트가 사용됩니다(SOCKS 의 경우 1080,HTTPS 의 경우 3128).
-Z DCCP 모드.
-z 지정하는 nc 만 검색 듣기 위해 데몬을 보내지 않고,모든 데이터습니다. 이 옵션을-l 옵션과 함께 사용하는 것은 오류입니다.,

목적지할 수 있습 숫자의 IP 주소 또는 상징적인 호스트 이름(하지 않는 한-n 옵션을 지정). 일반적으로-l 옵션이 제공되지 않는 한 대상을 지정해야합니다(이 경우 로컬 호스트가 사용됩니다). UNIX-domain 소켓의 경우 대상이 필요하며 연결할 소켓 경로입니다(또는-l 옵션이 제공되는 경우 수신 대기).

포트는 단일 정수 또는 포트 범위 일 수 있습니다. 범위는 nn-mm 형식입니다.일반적으로-U 옵션이 제공되지 않는 한 대상 포트를 지정해야합니다.,

클라이언트/서버 모델

그것은 매우 간단을 구축하는 매우 기본 서버/클라이언트 모델을 사용하여 nc. 하나의 콘솔에서 연결을 위해 특정 포트에서 nc 청취를 시작하십시오. 예:

nc -l 1234

nc 는 이제 연결을 위해 포트 1234 에서 수신 대기 중입니다. 에서 두 번째 콘솔(또는 두 번째 기계),연결 컴퓨터와 포트가 듣고:

nc 127.0.0.1 1234

이제 없어야 사이의 연결 포트가 있습니다. 두 번째 콘솔에서 입력 한 모든 것은 첫 번째 콘솔에 연결되고 그 반대도 마찬가지입니다., 연결이 설정된 후 nc 는 실제로 어느 쪽이’서버’로 사용되고 어떤 쪽이’클라이언트’로 사용되고 있는지 상관하지 않습니다. Eof(‘^D’)를 사용하여 연결이 종료 될 수 있습니다.

현대 netcat 에는-c 또는-e 옵션이 없지만 파일 설명자를 리디렉션하여 연결이 설정된 후에도 여전히 명령을 실행할 수 있습니다. 포트를 열고 연결된 사람이 사이트에서 임의의 명령을 실행하도록하는 것은 위험하기 때문에 여기에주의하십시오., 당신이 정말로 필요 이렇게하려면,다음 예를 참고하십시오.

에’서버의 측면:

rm -f /tmp/f; mkfifo /tmp/f
cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f

On’클라이언트의 옆:

nc host.example.com 1234

(쉘 프롬프트에서 host.example.com)

이렇게 함으로써, 을 만들 fifo at/tmp/f 고 nc 들어에 포트 1234 의 주소 127.0.0.1 에’서버의 측면을 때는’클라이언트의 연결을 성공적으로는 포트/bin/sh 얻에서 실행된’서버의 측면 및 쉘 프롬프트가 부여하는’클라이언트 있습니다.

연결이 종료되면 nc 도 종료됩니다., 계속 듣고 싶지만 명령이 종료되면이 옵션이 다시 시작되지 않거나 nc 가 계속 실행되도록하려면-k 를 사용하십시오. 또한,는 것을 잊지 않을 제거하는 파일기술자 일단 당신이 더 이상 필요하지 않:

rm -f /tmp/f

데이터 전송

이 예제는 이전 섹션에서 확장할 수 있을 구축하는 기본적인 데이터 전송 모델입니다. 모든 정보를 입력 하나로 연결 될 것 출력하고 다른 끝을 입력 및 출력할 수 있습 쉽게 캡처을 에뮬레이트 파일을 전송합니다.,

시작을 사용하여 nc 을 듣고 특정 포트에서 출력을 캡처 파일로:

nc -l 1234 > filename.out

를 사용하여 두 번째 컴퓨터에 연결하고,듣고 nc 프로세스,그것을 먹이는 파일을 전송할 수:

nc host.example.com 1234 < filename.in

후 파일을 전송되는 연결이 자동으로 종료됩니다.

서버와의 대화

사용자 인터페이스를 통해서가 아니라”손으로”서버와 대화하는 것이 때때로 유용합니다., 클라이언트가 발행 한 명령에 대한 응답으로 서버가 보내는 데이터를 확인해야 할 수도있는 경우 문제 해결에 도움이 될 수 있습니다. 예를 들어,을 검색하의 홈페이지는 웹 사이트:

printf "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80

이하시는 헤더를 보낸 웹 서버에 있습니다. 필요한 경우 sed 와 같은 도구를 사용하여 필터링 할 수 있습니다.

사용자가 서버에 필요한 요청의 형식을 알고있을 때 더 복잡한 예제를 구축 할 수 있습니다., 다른 예로는 e-mail 로 제출할 수 있습 SMTP 서버를 사용:

포트 스캔

그것이 유용할 수 있습니다 알고있는 포트가 열려 있고 서비스를 실행하는 대상에 기계입니다. -Z 플래그는 연결을 시작하기보다는 nc 에 열린 포트를보고하도록 지시하는 데 사용할 수 있습니다. 일반적으로이 옵션을-v 옵션과 함께 사용하여 stderr 에 대한 자세한 출력을 켜는 것이 유용합니다.

예를 들어,

nc -zv host.example.com 20-30
Connection to host.example.com 22 port succeeded!Connection to host.example.com 25 port succeeded!

포트 범위를 지정하는 한도 검색하여 포트를 20-30,그리고 스캔합니다.,

지정할 수도 있습니다 포트 목록을 검색:예를 들어,

nc -zv host.example.com 80 20 22

포트 스캔하여 주문을 받는다.또는 어떤 서버 소프트웨어가 실행 중인지,어떤 버전인지를 아는 것이 유용 할 수 있습니다. 이 정보는 종종 인사말 배너에 포함되어 있습니다. 이들을 검색하려면 먼저 연결을 한 다음 배너가 검색되었을 때 연결을 끊을 필요가 있습니다., 이 작업을 수행할 수 있습을 지정하여 소 시간 제한으로 w 플래그,또는 아마도 발행하여”QUIT”명령을 서버가:

echo "QUIT" | nc host.example.com 20-30
SSH-1.99-OpenSSH_3.6.1p2 Protocol mismatch. 220 host.example.com IMS SMTP Receiver Version 0.84 Ready

nc -p 31337 -w 5 host.example.com 42

열리면 TCP 연결을 포 42host.example.com 를 사용하여,포트 31337 소 포트, 는 제한 시간이 5 초입니다.

nc -u host.example.com 53

열 UDP 연결하 port53host.example.com.

nc -s 10.1.2.3 host.example.com 42

열리면 TCP 연결을 포 42host.example.com 사용 10.1.2.3 으로 IP 에 대한 지역의 끝을 연결합니다.,

nc -lU /var/tmp/dsocket

유닉스 도메인 스트림 소켓에서 생성하고 수신합니다.

nc -x10.2.3.4:8080 -Xconnect host.example.com 42

의 포트 42 에 연결 host.example.com 10.2.3.4,포트 8080 의 HTTP 프록시를 통해. 이 예제는 ssh 에서도 사용할 수 있습니다.

nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42

으로 동일 위를 들어,이번 활성화하는 프록시 인증과 함께 사용자 이름”ruser”는 경우에 프록시가 필요합니다.

ifconfig—네트워크 인터페이스의 구성을 보거나 수정합니다.피>

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다