Chuyển trực tiếp một tập tin giữa hai máy tính trên Internet


27

Tôi đang tìm kiếm một cách đơn giản nhưng trực tiếp để chuyển một tập tin thuộc bất kỳ loại nào và bất kỳ kích cỡ nào giữa hai người. Nếu có thể, chỉ có một trình duyệt web, mà không có tệp được lưu trữ trên máy thứ ba trong khi đó.

Tôi muốn làm điều đó mà không yêu cầu người dùng cuối kết nối với máy chủ thứ ba, bởi vì cách đó dữ liệu sẽ chảy qua máy xyz.com, có thể làm chậm quá trình chuyển và gây rủi ro bảo mật.

Tôi muốn tránh thiết lập toàn bộ máy chủ FTP chỉ để chuyển tập tin thỉnh thoảng. Cho đến nay tôi đã khám phá ra JetBytes , Click2CopyPipeBytes . Những dịch vụ web sẽ giúp việc chuyển tiền trở nên dễ dàng. Tuy nhiên, lưu lượng truy cập đi qua máy chủ của họ vì vậy họ không tốt với những gì tôi muốn.

Tôi muốn chuyển khoản được trực tiếp giữa khách hàng và tôi. Mã hóa sẽ là một tính năng bổ sung tốt đẹp.

Tôi biết rằng làm như vậy tôi phải mở một cổng trên máy tính của mình và định cấu hình chuyển hướng cổng bit trên bộ định tuyến của mình. Tuy nhiên, NAT traversal cũng sẽ là sự bổ sung tốt đẹp.

Câu hỏi của tôi là:

Có cách nào đơn giản cho một lần chuyển tập tin trực tiếp từ đầu đến cuối giữa hai máy tính, tránh bên thứ ba không? (nếu có thể, với mã hóa và truyền tải NAT)


bạn đang tìm kiếm một giải pháp chỉ chuyển qua HTTP hay sao?
Pacerier

Cá nhân tôi sử dụng một máy chủ web bị bỏ tù chroot với tính năng tự động bật được bật để chia sẻ tệp với người khác. Sau đó, tôi có một tài khoản ẩn danh ftp mà mọi người có thể sử dụng để gửi tệp trực tiếp cho tôi. Giải pháp Skype là điều tôi muốn nói với mẹ nếu mẹ muốn chia sẻ tệp với ai đó. Nó tốt hơn là sử dụng tệp đính kèm email ít nhất.
isuldor

1
có thể là chương trình truyền tệp trực tiếp sourceforge.net/projects/file-transfer - mã nguồn mở, kéo và thả, hứa hẹn tùy chọn upnp (trên xp?), teredo, kết nối an toàn và khám phá tự động, (công cụ tùy chọn cần đánh dấu trong trang cài đặt )
n611x007

Chúng ta có thể mở lại cái này không? Tôi đã điều chỉnh lại để thực hiện các đề xuất
n611x007

Câu trả lời:


13

Cách bẩn nhất nếu bạn sử dụng * nix là sử dụng netcat ( nc) để gửi tệp đến máy chủ từ xa. Nhưng nếu bạn muốn mã hóa, bạn cũng có thể sử dụng SCP / SSH.

Bạn phải nhận ra rằng nếu một trong hai bên đứng sau NAT và bạn không muốn thiết lập chuyển tiếp cổng thì không thể thực hiện kết nối trực tiếp mà không kết nối với máy chủ của bên thứ ba trước. Máy chủ không nhất thiết phải chuyển tiếp lưu lượng truy cập (xem http://en.wikipedia.org/wiki/UDP_hole_punching ) và hầu hết trong số chúng không làm băng thông tốn kém.

Ví dụ: Skype sẽ cố gắng sử dụng nhiều phương thức truyền tải NAT để thiết lập kết nối trực tiếp trước khi quay lại chuyển tiếp lưu lượng truy cập thông qua các siêu nút của chúng. (Skype là một mạng rất P2P.)

Đối với vấn đề tài khoản. Tôi đoán đó là điều không thể tránh khỏi. Tất cả các phương pháp sẽ yêu cầu một số loại cấu hình hoặc thiết lập thường khó hơn đăng ký tài khoản.


3
cryptcat là netcat với mã hóa
Journeyman Geek

netcat cũng có sẵn cho Windows. Tôi thích cách này.
Benoit

Để tham khảo, Skype không còn sử dụng P2P: support.skype.com/en/faq/FA12381/what-is-the-cloud
Radderz

10

Các giải pháp dựa trên WebRTC cung cấp những gì bạn cần, có lẽ ở dạng đơn giản nhất. Bạn kết nối với một trang web của bên thứ ba nhưng điều đó chỉ để kết nối các đồng nghiệp chứ không phải là phần chuyển tập tin.

Dịch vụ ví dụ:
https://www.justbeamit.com/ https : //
www. Sharedrop.io/

EDIT: Tôi hiểu điều này không đáp ứng tất cả các yêu cầu của OP nhưng có một giải pháp khác rất hữu dụng: Firefox Send . Sử dụng điều này, bạn tải tệp của mình lên máy chủ của bên thứ ba ở dạng được mã hóa. Dịch vụ này cung cấp cho bạn một URL mà bạn có thể chia sẻ với người khác. URL cũng chứa khóa để giải mã tập tin. Sau đó họ có thể tải tập tin. Tập tin sẽ tự động bị xóa sau một số lần tải xuống đã đặt hoặc sau 24 giờ. Máy chủ không bao giờ nhìn thấy khóa và vì vậy không thể giải mã tập tin. Ưu điểm trong việc sử dụng máy chủ của bên thứ ba là bên chia sẻ và bên tải xuống không cần phải trực tuyến đồng thời.


Trên mạng công ty (bảo mật cao) của tôi, reep.io không hoạt động, nhưng justbeamit.com đã làm được! Tôi đã mong đợi cả hai dịch vụ đều hoạt động như nhau vì cả hai đều dựa trên công nghệ WebRTC, nhưng có vẻ như nó phức tạp hơn một chút so với điều đó. Cảm ơn rất nhiều cho gợi ý!
gabious

8

Bạn có thể đồng bộ hóa các tệp giữa các máy tính từ xa bằng cách sử dụng rsync. Tiện ích này có sẵn cho Windows trong cygwin hoặc bạn có thể cài đặt nó với cwRsync được đóng gói sẵn .

Tôi sẽ để nguyên câu trả lời trước đây của mình ở đây, nhưng với những tiết lộ gần đây về NSA, tôi sẽ không còn đề xuất Skype để chuyển tập tin an toàn nữa.

Bạn có thể gửi tệp trực tiếp cho người khác bằng Skype . Skype đôi khi thậm chí hoạt động khi cả hai người dùng đều đứng sau NAT. Nếu bạn đủ tinh tế để mở một cổng trên bộ định tuyến của mình, làm như vậy sẽ tăng khả năng đàm phán kết nối trực tiếp.

Rộng hơn, nhiều chương trình trò chuyện bao gồm cơ chế chia sẻ / gửi tệp. Hầu hết không cung cấp mã hóa theo mặc định như Skype. Nhưng miễn là bạn và người nhận của bạn có cùng một ứng dụng trò chuyện, bạn có một "công cụ đơn giản" để chia sẻ tệp.


Cảm ơn bạn cho câu trả lời này. Vấn đề ở đây là tôi luôn phải dựa vào một công ty thứ ba, tạo một tài khoản cụ thể cho điều đó và dịch vụ đó có thể phá vỡ hoặc điều khoản dịch vụ có thể thay đổi. Nếu có thể tôi muốn tránh điều đó. Tuy nhiên tôi không biết rằng Skype có thể thương lượng kết nối trực tiếp. Vẫn từ câu trả lời của bạn tôi có thể suy ra rằng điều này không phải luôn luôn như vậy?
Benoit

@Benoit - Tôi chưa bao giờ bị skype không thể gửi tệp. Lưu lượng truy cập duy nhất đến các máy chủ skype là để thiết lập kết nối. Tất cả dữ liệu đi giữa bạn và người nhận của bạn. Đối với các điều khoản dịch vụ rất rõ ràng vì chia sẻ tệp là một phần trung tâm của skype.
Nifle

@Benoit Skype luôn sử dụng các kết nối trực tiếp; thậm chí cơ sở dữ liệu của người dùng Skype được phân phối. Lợi ích của Skype là mã hóa đầu cuối; Skype không thể xem dữ liệu bạn đang truyền. (+1 btw)
vòng tròn

5

Nếu Linux / unix ssh đang chạy của bạn là một cách an toàn để truyền tệp trong mô hình máy chủ máy khách. cổng chuyển tiếp cần thiết trên các kết nối đến nếu phía sau NAT mặc dù.


3

FTP. Nó đã có từ rất lâu đời. Nó không an toàn như quái. Và nó đơn giản.

Tải xuống Filezilla, có thể hoạt động như cả máy chủ và máy khách. Hãy chắc chắn rằng tường lửa của bạn được đặt để cho phép nó ra bên ngoài. Có điểm đến của bạn tải xuống filezilla và kết nối với máy chủ filezilla của bạn. Chuyển tập tin.

Cứ như vậy, tất cả các bit của bạn được tung lên internet để mọi người thấy giống như có quá nhiều đồ giặt tung bay trong gió ở sân sau.


Cũng không đáng tin. Bạn cần kiểm tra băm để đảm bảo những gì bạn nhận được chính xác là những gì bạn đã gửi. TCP / IP giả vờ đáng tin cậy nhưng vào cuối ngày không phải là 100%. Ví dụ: Chỉ cần cố gắng gửi một bản sao lưu byte giga và thấy rằng zip mà tôi tạo ra có lỗi trên mục tiêu, nhưng không phải trên nguồn. Không có lỗi hiển thị. Băm cho toàn bộ là tốt, nhưng vẫn có thể cung cấp cho bạn một ok sai. Một số băm mỗi điểm ở mức 1 mb mỗi điểm sẽ tốt hơn. Vì vậy, torrent giữa hai máy tính sẽ tốt hơn cho một tệp lớn.
rxantos

FTP có một thời gian khó khăn với các tệp thực sự rất lớn (nó thực sự chưa bao giờ xem việc sử dụng các tệp lớn như chúng ta có ngày nay khi nó được phát triển). SFTP là một giao thức được trang bị tốt hơn nhiều cho các tệp lớn hơn và cũng an toàn hơn nhiều so với FTP.
MaQleod

3

Tôi đã từng viết một bài đăng trên blog về việc chuyển các tệp với máy chủ HTTP tích hợp của Python . Tóm lại, cài đặt Python, mở một dấu nhắc lệnh, cdđến thư mục chứa các tệp để chia sẻ và thực thi python -m SimpleHTTPServer. Rất thuận tiện nếu bạn dùng Linux hoặc OS X vì Python được cài đặt theo mặc định (cũng dễ cài đặt trên Windows).

Nếu bạn đứng sau NAT, thì bạn cần thiết lập chuyển tiếp cổng trên bộ định tuyến của mình hoặc một cái gì đó (mà tôi giả sử bạn đã biết).


1
Liên kết 'bài đăng trên blog' đến một trang web spam
MFB

@MFB Tôi đoán nó đã từng truy cập trang web hợp pháp của anh ấy, nhưng anh ấy đã mất quyền kiểm soát trang web và giờ nó chuyển hướng đến một trang loại tên miền chưa sử dụng. Tôi đã chỉnh sửa liên kết bây giờ. Để phunehehe, nếu bạn thấy điều này, xin vui lòng bình luận về liên kết. Nếu bây giờ bạn có một bản sao của bài đăng trên blog ở một nơi khác, bạn có thể chỉnh sửa nó trong đó, nhưng hãy cẩn thận khi liên kết với thư rác sẽ không được chấp nhận.
nhinkle

cuối cùng tôi đã khôi phục được bài đăng trên blog, được cập nhật :)
phunehehe

2

Một máy chủ web có thể thực hiện UPnP NAT traversal sẽ hoạt động, người nhận chỉ cần một trình duyệt web. Vì mã hóa phần thưởng rất dễ dàng với máy chủ web, chỉ cần sử dụng https.

Dưới đây là một ví dụ (payware 99USD) RaidenHTTPD





1

Tại sao không ai nhắc đến việc chuyển IRC DCC? https://en.wikipedia.org/wiki/Direct_Client-to-Client , Bạn nhận được ứng dụng khách HexChat, cài đặt nó trên cả hai máy tính, bạn nhập hãy nói Freenode và sau đó tạo kênh cho cả hai tham gia, sau đó nhấp chuột phải vào "liên hệ / PC" khác và gửi tập tin. Công nghệ cũ luôn hoạt động, ngoài Hyperterminal để quay số kết nối trực tiếp, khoảng năm 1995-1998, DCC là cách chính để tải nhạc và phim.


1

Magic Wormhole có thể được sử dụng cho việc này. Trên Ubuntu, bạn có thể cài đặt qua apt-get (nó cũng có sẵn qua Python pip):

sudo apt install magic-wormhole

Để gửi một tập tin, bạn chỉ cần nói những gì cần gửi

wormhole send README.md

Điều này sẽ xuất ra dòng lệnh bạn nên chạy ở đầu nhận. Điều này bao gồm một khóa bí mật (đó là như vậy mà bạn cũng có thể đọc nó qua điện thoại). Bạn không chỉ định bất kỳ tên máy hoặc địa chỉ IP. Wormhole thiết lập kết nối tự động và mã hóa các tệp sẽ được chuyển.

https://magic-wormhole.readthedocs.io/en/latest/welcome.html

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.