네트워크를 통해 파일을 보내는 가장 간단한 방법


14

네트워크를 통해 다른 컴퓨터로 파일을 보내는 가장 간단하고 다양한 방법은 무엇입니까? 그것은 다른 사람들이 현재 사용하고있는 컴퓨터를 의미합니다. 컴퓨터에 활성 세션이 열려 있으면 SSH가 작동하지 않는다고 생각합니다.

지금까지 나는을 사용 netcat하고 있습니다. 그러나 이것을 수행하는 다른 간단한 방법이 있습니까? 내가 가진 한 가지 문제 netcat는 수신자가 파일 끝을 알아야하고 스트림의 이름을 생각해 내야한다는 것입니다.


1
계속 사용 netcat하려면 tar보관소를 보내고 즉시 추출 할 수 있습니다 . 그러면 파일 이름 문제가 해결되고 더 유연 해집니다. 그러나 결국 내가 생각 scp하거나 rsync쉽게 옵션입니다.
Marco

타르를 보내고 즉시 추출하는 방법은 무엇입니까?
TomTom

1
netcat hostname | tar -x파일을 넣을 디렉토리에 있다고 가정 합니다.
Dmitry Grigoryev

답변:


21

당신은 불필요하게 인생을 복잡하게 만들고 있습니다. 사용하십시오 scp.

파일 전송하려면 myfile을을 디렉토리로 로컬 디렉토리에서 / foo는 / 바 기계에 otherhost 사용자로 사용자 , 여기 구문은 다음과 같습니다 scp myfile user@otherhost:/foo/bar.

편집 : netcat 또는 HTTP를 통한 전송이 아닌 동안 scp / SSH를 통한 전송은 암호화된다는 점에 주목할 가치가 있습니다. 따라서 민감한 파일을 전송하는 경우 항상 전자를 사용하십시오.


scp사용자 계정 의 비밀번호가 필요하지 않습니까?
TomTom

물론입니다. 계정의 비밀번호가 필요합니다 user@otherhost.
dr01

2
아니요, 공개 키 인증을 사용하는 경우 비밀번호가 필요하지 않습니다
YoMismo

9
당신이 까다 롭고하려면 확인, 있음의 상태를 보자 당신이 인증을해야 으로 user@otherhost.
dr01

1
또한 단순화하기 위해 두 시스템에서 사용자 이름이 동일하면 사용자 이름을 제외 할 수 있습니다. 적용 가능한 경우 여전히 비밀번호를 묻습니다.
Sildoreth

10

시도해 볼 수도 있습니다

python -m SimpleHTTPServer 8180

HTTP를 통해 실행되는 디렉토리의 파일을 제공하며 브라우저를 통해 액세스 할 수 있습니다.


또는 성능에 불만이있을 때는 darkhttpd를 사용하십시오.
TNW

1
파이썬 3의 경우 : python3 -m http.server <port>.
dotancohen

이 옵션에 대한 자세한 내용은 여기를 참조하십시오 : askubuntu.com/a/95607/42073
Erel Segal-Halevi

감사! Windows 테스트 시스템으로 파일을 가져 오는 데
이상적

9

마음 netcat에 드시면 님을 소개하여 파일 이름 문제를 해결할 수 있습니다 tar. 또한 여러 파일을 한 번에 보내고 디렉터리를 보내는 것을 단순화합니다.

송신 측에서 :

tar cf - <files> | nc <host> <port>

그리고받는 쪽에서 :

nc -l <port> | tar x

또 다른 해결책은 rsync또는 을 사용하는 것 scp입니다.


일반적으로 netcat스트림 끝에 -q2를 추가 하여 스트림 끝에서 연결을 종료합니다.
Simon Richter

왜 이것이 필요한지 이해하지 못합니다. -q옵션 없이 자동으로 종료됩니다 .
Marco

사용하는 netcat 구현에 따라 다릅니다. stdin이 닫힐 때 다른 방향이 여전히 활성 일 수 있으므로 TCP 스트림의 한 방향 만 닫는 구현이 있습니다.
Simon Richter

tar | ssh tarscp가 떨어지고 rsync를 사용할 수없는 경우에도 매우 잘 작동합니다.
hobbs

2

물론 ssh다른 세션이 열려 있으면 작동합니다. 당신은 할 수 있습니다

ssh user@host cat /path/to/file.tar  > localfile.tar

또는 로컬 디렉토리로 복사하려면 다음을 수행하십시오.

scp user@host:/path/to/file.tar .

예를 들어 다른 방법으로 가능 ssh lubuntu '>newfile.txt' <file.txt합니까?
heemayl

1
@heemayl 예, 원격 파일로 연결하려면 cat local.file | ssh user@host "cat > remote.file", 또는을 수행하십시오 ssh user@host "cat > remote.file" < local.file.
terdon

0

두 호스트가 모두 동일한 LAN에있는 경우 woos 를 사용할 수 있습니다 .

사용법이 매우 간단합니다.

인터넷에서 발신자와 수신자가 어디에서나 큰 파일을 전송해야하는 경우 F * EX를 설치해야합니다. http://fex.belwue.de/index.html


1
basic scp는 매우 간단하며 저자가 홍보 한 것으로 보이는 집에서 만든 도구와 달리 수백만 명이 실제로 배포, 신뢰 및 사용하는 도구입니다.
Jack Wasey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.