netcat을 통한 파일 전송


23

한 컴퓨터에서 다른 컴퓨터로 파일을 보내기 위해 다음과 같은 것을 사용하고 있습니다.

파일을 제공하려면 (컴퓨터 A에서) :

cat something.zip | nc -l -p 1234

컴퓨터 B에서 파일을 받으려면 :

netcat server.ip.here. 1234 > something.zip

내 질문은 ... 나는 반대로 할 수 있습니까? 컴퓨터 B에 파일이 있고 파일을 A로 보내고 싶지만 위에서 쓴 방식이 아니라 파일 (A)를 수신 해야하는 컴퓨터를 '듣기'서버로 만들고 '보내기'파일 인 컴퓨터를 연결한다고 가정 해 봅시다 ( B) 서버에 파일을 보내시겠습니까? 가능합니까? 그럴 수도 있지만 어떻게 해야할지 모르겠습니다.

위의 설명이 엉망인 경우 : 서버에서 파일을 제공 한 다음 파일을 가져 오는 대신 '서버'로 파일을 보내려면 어떻게해야합니까?


참고 : 너무 느리고 암호화가 필요하지 nc않기 때문에 사용중인 경우 superuser.com/questions/692294/…scp 로 전환하십시오 udpcast.
unhammer

답변:


38

서버 (A)에서 :

nc -l -p 1234 -q 1> something.zip </ dev / null
"발송 인"(B)에서 :
고양이 something.zip | netcat server.ip.here 1234


네, 어떻게 든 측면을 전환해야한다고 생각했지만 어떻게 확신하지 못했습니다 :). 고마워요!
Phil

귀여운 넷캣 트릭입니다.
DaveParillo

2
왜 그 < /dev/null부분?
törzsmókus

7
netcat은 stdin을 읽고 stdout을 동시에 쓰므로 stdin에서 읽은 모든 것을 네트워크로 보내고 stdout에서 네트워크에서 수신 한 모든 것을 인쇄합니다. </ dev / null은 수신 된 파일이 완료되었을 때 netcat이 콘솔에서 입력을 기다리지 않고 (어쨌든 읽지 않아야 함) 보장하지 않으며, 계속해서 들리지 않도록합니다. 실행하려는 다음 명령을 입력하는 등 터미널에서 사용 가능한 모든 입력
martinwguy

4
을 가지고 있다면 pv"서버 클라이언트"를 다음과 같이 운영하는 것이 좋습니다 pv soemthing.zip | .... 그러면 파이프로 들어가는 파일 읽기의 진행률이 표시됩니다.
ThorSummoner

6

참고로 파일 권한, 소유권 및 타임 스탬프도 유지하려면 tarnetcat 과 함께 사용 하여 디렉토리와 파일을 전송합니다.

수신 시스템에서 :

nc -l -p 12345 -q 1 | tar xz -C /path/to/root/of/tree

발신 시스템에서 :

tar czf - ./directory_tree_to_xfer | nc <host name or IP address of receiving system> 12345 

희망이 도움이됩니다.


1
답변에 좋은 추가 기능이지만 별도의 답변이 아닌 의견으로 남겨주세요.
agtoever

2
이 서브 보드에 Rep 포인트가 부족하여 위의 코멘트를 추가 할 수 없었으므로 답변으로 제공해야했지만 분명히 자신의 답변에 댓글을 달 수 있습니다.
B.Kaatz

3

컴퓨터 A : nc -l -p 1234 > filename.txt

컴퓨터 B : nc server.com 1234 < filename.txt

너무 작동해야합니다.)


0

컴퓨터 B에서 다른 netcat 인스턴스를 시작하십시오. 컴퓨터 A에서 수행 한 작업을 수행하고 B에서 제공하십시오. 새 서버에 새 포트를 제공하십시오.


나는 똑같이하고 싶지 않고 명령을 다른 것으로 변경하고 싶습니다 (가능한지 확실하지 않습니다) ... 내 질문에서 굵은 글씨를보십시오. 내 말은 B에서 봉사하고 싶지 않다는 것입니다. A는 입력을 수신 대기하는 서버가 되길 원합니다 ... 그리고 난 청취하지 않는 B에서 청취 A로 파일 내용을 보내고 싶습니다.
Phil

그것은 netcat이 작동하는 방식이 아닙니다.
DaveParillo

1
허용 된 답변에서 볼 수 있듯이 netcat이 작동하는 방식입니다.
Phil

네가 옳아. 나는 매일 새로운 것을 배웁니다!
DaveParillo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.