Cách đơn giản nhất để gửi tệp qua mạng


14

Cách đơn giản nhất và linh hoạt nhất để gửi các tập tin qua mạng đến các máy tính khác là gì? Điều đó có nghĩa là máy tính mà người khác đang sử dụng tại thời điểm này. Tôi không nghĩ SSH hoạt động nếu máy tính có phiên hoạt động mở.

Cho đến nay tôi đang sử dụng netcat, hoạt động ổn. Nhưng có cách nào đơn giản khác để làm điều này? Một vấn đề tôi gặp phải netcatlà người nhận cần biết tệp kết thúc và phải đưa ra tên cho luồng.


1
Nếu bạn muốn tiếp tục sử dụng, netcatbạn có thể gửi một tarkho lưu trữ và giải nén nó một cách nhanh chóng. Điều đó sẽ giải quyết vấn đề tên tệp và nó linh hoạt hơn. Nhưng cuối cùng tôi đoán scphoặc rsynclà lựa chọn dễ dàng hơn.
Marco

Làm thế nào để gửi một tar và trích xuất nó trên bay làm việc?
TomTom

1
Tôi cho rằng đó sẽ là netcat hostname | tar -xtrong thư mục mà bạn muốn đặt các tập tin.
Dmitry Grigoryev

Câu trả lời:


21

Bạn đang làm phức tạp cuộc sống của bạn một cách không cần thiết. Sử dụng scp.

Để chuyển một tệp myfile từ thư mục cục bộ của bạn sang thư mục / foo / bar trên máy otherhost với tư cách là người dùng , đây là cú pháp : scp myfile user@otherhost:/foo/bar.

EDIT: Điều đáng chú ý là chuyển khoản qua scp / SSH được mã hóa trong khi chuyển qua netcat hoặc HTTP thì không. Vì vậy, nếu bạn đang chuyển các tập tin nhạy cảm, luôn luôn sử dụng trước đây.


Tôi không cần mật khẩu cho scptài khoản người dùng?
TomTom

Phải, tất nhiên. Bạn cần một mật khẩu cho tài khoản user@otherhost.
dr01

2
Không, bạn không cần mật khẩu nếu bạn sử dụng xác thực khóa công khai
YoMismo

9
Ok, nếu bạn muốn kén chọn, hãy nói rằng bạn phải xác thựcuser@otherhost.
dr01

1
Ngoài ra, để đơn giản hóa, nếu tên người dùng của bạn giống nhau trên cả hai máy, bạn có thể loại trừ tên người dùng. Mặc dù vậy, nó vẫn sẽ yêu cầu bạn nhập mật khẩu.
Sildoreth

10

Bạn cũng có thể thử

python -m SimpleHTTPServer 8180

Nó sẽ phục vụ các tệp trong thư mục mà nó thực thi qua HTTP, bạn có thể truy cập nó qua Trình duyệt.


Hoặc sử dụng darkhttpd khi không hài lòng với hiệu suất.
TNW

1
Đối với Python 3 : python3 -m http.server <port>.
dotancohen

Xem tại đây để biết thêm thông tin về tùy chọn này: Askubfox.com/a/95607/42073
Erel Segal-Halevi

Cảm ơn! Hoàn hảo để nhận một số tệp vào hệ thống kiểm tra Windows
QwertyChouskie

9

Nếu bạn hài lòng với netcatbạn, bạn có thể giải quyết vấn đề về tên tệp bằng cách xâm nhập tar. Điều này cũng đơn giản hóa việc gửi nhiều tệp cùng một lúc cũng như gửi thư mục.

Về phía gửi sử dụng:

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

Và về phía tiếp nhận:

nc -l <port> | tar x

Một giải pháp khác là sử dụng rsynchoặc scp.


Tôi cũng thường thêm -q2 vào việc gửi netcat, để làm cho nó tắt kết nối ở cuối luồng.
Simon Richter

Tôi không hiểu tại sao điều này nên được yêu cầu. Nó tự động tắt mà không có -qtùy chọn.
Marco

Điều đó phụ thuộc vào việc bạn sử dụng netcat nào. Có các triển khai chỉ đóng một hướng của luồng TCP khi đóng stdin, vì hướng khác có thể vẫn đang hoạt động.
Simon Richter

tar | ssh tarcũng hoạt động rất độc đáo trong trường hợp scp rơi xuống và rsync không khả dụng.
hobbs

2

Tất nhiên sshhoạt động nếu một phiên khác được mở. Bạn chỉ có thể làm

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

Hoặc, để sao chép vào thư mục địa phương của bạn:

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

Có thể là cách khác xung quanh ví dụ ssh lubuntu '>newfile.txt' <file.txt?
heemayl

1
@heemayl vâng, để cat vào một tập tin từ xa, bạn sẽ làm cat local.file | ssh user@host "cat > remote.file", hoặc ssh user@host "cat > remote.file" < local.file.
terdon

0

Nếu cả hai máy chủ lưu trữ trong cùng một mạng LAN, bạn có thể sử dụng woos .

Nó cực kỳ đơn giản trong cách sử dụng.

Nếu người gửi và người nhận ở bất kỳ nơi nào trên internet và bạn phải chuyển LỚN LỚN, bạn nên cài đặt F * EX: http://fex.belwue.de/index.html


1
scp cơ bản cũng cực kỳ đơn giản và một công cụ thực sự được phân phối, tin cậy và sử dụng bởi hàng triệu người, không giống như các công cụ tự làm này dường như được quảng bá bởi tác giả của họ.
Jack Wasey
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.