Прямая передача файла между двумя компьютерами через Интернет

Я ищу простой, но прямой способ передачи файла любого типа и любого размера между двумя людьми. Если возможно, имея только веб-браузер, без сохранения файла на третьем компьютере.

Я хочу сделать это, не требуя от конечных пользователей подключения к третьему серверу, потому что таким образом данные будут проходить через машину xyz.com, возможно, замедляя передачу и создавая угрозу безопасности.

Я хотел бы избежать настройки всего FTP-сервера только для случайной передачи файлов. До сих пор я обнаружил JetBytes, Click2Copy и PipeBytes. Эти веб-сервисы должны упростить передачу. Однако трафик проходит через их серверы, поэтому они не соответствуют тому, что я хочу.

Я хочу, чтобы перевод был прямым между клиентом и мной. Шифрование было бы хорошей дополнительной функцией.

Я знаю, что для этого мне нужно открыть один порт на моем компьютере и настроить перенаправление битовых портов на моем маршрутизаторе. Тем не менее, NAT-обход также будет хорошим дополнением.

Мой вопрос:

Есть ли простой способ для одной прямой сквозной передачи файлов между двумя компьютерами, избегая третьих лиц? (если возможно, с шифрованием и прохождением NAT)

12 ответов

Решение

Самый грязный способ, если вы используете *nix, это использовать netcat (nc) кошка файл на удаленный хост. Но если вам нужно шифрование, вы также можете использовать SCP/SSH.

Вы должны понимать, что если какая-либо сторона находится за NAT и вы не хотите настраивать переадресацию портов, то невозможно установить прямое соединение, не подключившись сначала к стороннему серверу. Сервер не обязательно должен ретранслировать трафик (см. http://en.wikipedia.org/wiki/UDP_hole_punching), и большинство из них этого не делают, поскольку пропускная способность дорогая.

Например, Skype попытается использовать многие методы обхода NAT для установления прямого соединения, прежде чем вернуться к ретрансляции трафика через свои супер узлы. (Skype очень P2P-сеть.)

Что касается проблемы с учетной записью. Я думаю, это неизбежно. Все методы потребуют некоторой конфигурации или настройки, которые обычно сложнее, чем регистрация учетной записи.

Решения на основе WebRTC дают то, что вам нужно, возможно, в самой простой форме. Вы подключаетесь к стороннему веб-сайту, но это только для подключения пиров, а не для передачи файлов.

Примеры услуг:
https://www.justbeamit.com/
https://www.sharedrop.io/

РЕДАКТИРОВАТЬ: Я понимаю, что это не отвечает всем требованиям OP, но есть другое, очень полезное решение: Firefox Send. Используя это, вы загружаете свой файл на сторонний сервер в зашифрованном виде. Сервис предоставляет вам URL, которым вы можете поделиться с другими. URL-адрес также содержит ключ для расшифровки файла. Затем они могут скачать файл. Файл автоматически удаляется после определенного количества загрузок или через 24 часа. Сервер никогда не видит ключ и поэтому не может расшифровать файл. Преимущество использования стороннего сервера заключается в том, что сторонняя сторона и загружающая сторона не должны одновременно находиться в сети.

Волшебная червоточина может быть использована для этого. В Ubuntu вы можете установить через apt-get (он также доступен через Python pip):

sudo apt install magic-wormhole

Чтобы отправить файл, просто скажите, что отправить

wormhole send README.md

Это выведет командную строку, которую вы должны запустить на принимающей стороне. Это включает в себя секретный ключ (который также можно прочитать по телефону). Вы не указываете имена компьютеров или IP-адреса. Wormhole устанавливает соединение автоматически и шифрует файлы для передачи.

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

Вы можете синхронизировать файлы между удаленными компьютерами, используя rsync. Эта утилита доступна для Windows в Cygwin, или вы можете установить ее с помощью предварительно упакованного cwRsync.

Я оставлю свой предыдущий ответ здесь без изменений, но, учитывая недавние откровения о АНБ, я бы больше не рекомендовал Skype для безопасной передачи файлов.

Вы можете отправить файл напрямую другому человеку, используя Skype. Скайп иногда даже работает, когда оба пользователя находятся за NAT. Если вы достаточно осторожны, чтобы открыть порт на своем маршрутизаторе, это увеличит вероятность согласования прямого соединения.

В более широком смысле, многие программы чата включают механизм совместного использования / отправки файлов. Большинство не предоставляют шифрование по умолчанию, как Skype. Но если вы и ваш получатель используете один и тот же клиент чата, у вас есть "простой инструмент" для обмена файлами.

Если вы используете Linux / Unix ssh - это безопасный способ передачи файлов в модели клиент-сервер. перенаправление портов необходимо на входящих соединениях, если за NAT все же.

Однажды я написал сообщение в блоге о передаче файлов со встроенного HTTP-сервера Python. Короче, установите Python, откройте командную строку, cd в каталог с файлами для совместного использования и выполнения python -m SimpleHTTPServer, Очень удобно, если вы работаете в Linux или OS X, потому что Python установлен по умолчанию (его легко установить и в Windows).

Если вы находитесь за NAT, то вам нужно настроить переадресацию портов на вашем маршрутизаторе или что-то еще (что, я полагаю, вы уже знаете).

FTP. Это было вокруг целую вечность. Это небезопасно, черт возьми. И это просто.

Загрузите Filezilla, который может функционировать как сервер и клиент. Убедитесь, что ваш брандмауэр настроен на разрешение исходящих сообщений. Загрузите filezilla и подключитесь к серверу filezilla. Передача файла.

Точно так же, все ваши вещи разбросаны по Интернету, чтобы все могли видеть, как много белья переворачивается на ветру на заднем дворе.

Веб-сервер, который может выполнять обход UPnP NAT, будет работать, получателю потребуется только веб-браузер. Как бонусное шифрование легко с веб-сервером, просто используйте https.

Вот один пример (Payware 99USD) RaidenHTTPD

Bit Torrent Sync синхронизирует папки через Интернет. Файлы также зашифрованы. Проверьте это.

http://www.bittorrent.com/sync

Вы должны проверить http://filesovermiles.com/ кажется, делать именно то, что вы хотите. Прямая передача P2P через браузер (flash).

Почему никто не упоминает о передаче IRC DCC? https://en.wikipedia.org/wiki/Direct_Client-to-Client, вы получаете клиент HexChat, устанавливаете его на обоих компьютерах, вводите, скажем, Freenode, а затем создаете канал для присоединения обоих, затем щелкните правой кнопкой мыши на Другой "контакт / ПК" и отправить файл. Старая технология, которая всегда работает, кроме Hyperterminal для прямой телефонной связи, примерно в 1995-1998 годах, DCC была основным способом загрузки музыки и фильмов.

Вы можете попробовать переместить папку с http://www.foldertransfer.com/, которая может напрямую передавать файл между двумя компьютерами в Интернете. Он может полностью удовлетворить ваши потребности.

Другие вопросы по тегам