25

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

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

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

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

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

Мой вопрос:

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

12 ответов12

11

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

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

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

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

8

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

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

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

7

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

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

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

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

4

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

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

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

4

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

2

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

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

2

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

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

1

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

1

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

http://www.bittorrent.com/sync

1

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

0

Волшебная червоточина может быть использована для этого. В 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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .