Какой самый простой способ отправить файл?

Какой самый простой способ отправить файл:

  • с машины Ubuntu,
  • другому пользователю Ubuntu (если и другим, даже лучше), которого нет в вашем локальная сеть,
  • посредством передачи зашифрованных файлов,
  • с использованием только бесплатного программного обеспечения с открытым исходным кодом,
  • предпочтительно не зависит от третьих сторон, таких как облачные приложения, в которые необходимо загружать file,
  • желательно не раскрывать ваш IP-адрес и не делать вашу машину более уязвимой для получателя файла.

Как быстро настроить?

4
задан 15 October 2011 в 16:36

1 ответ

Ваши требования № 5 (никакое третье лицо/облачное хранилище) и № 6 (никакое раскрытие IP/имени хоста) находятся во взаимном конфликте: для передачи файла удаленному компьютеру Вы или устанавливаете прямую связь, или Вы не делаете. Если Вы сделаете, то удаленный конец будет иметь Ваш IP-адрес (только из-за способа, которым TCP/IP работает); если Вы не делаете, то предположением Вы передаете на третьем лице, чтобы сделать передачу, и они должны хранить Ваши данные.

Тем не менее существует несколько приближений к Вашему запросу.

F*EX: использование веб-сторонней передачи

Сервер F*EX родился точно с этой целью. От fex описание пакета:

F*EX (Быстрый Обмен файлами Frams) является сервисом, который может использоваться, чтобы позволить пользователям где угодно в Интернете обмениваться очень большими файлами быстро и удобно.

Отправитель загружает файл на F*EX-server, и получатель автоматически получает электронное письмо уведомления с URL загрузки.

Основные функции F*EX:

  • передача файлов фактически неограниченного размера файла
  • отправителю и получателю только нужны почтовая программа и веб-браузер (любого вида; они не должны устанавливать программное обеспечение) [...]
  • без обслуживаний: никакое администрирование, необходимое вне создания новых учетных записей F*EX
  • несколько получателей только требуют, чтобы тот сохранил копию
  • F*EX использует HTTP и не нуждается ни в каких туннелях брандмауэра
  • клиенты оболочки предусмотрели пользователей командной строки: fexsend и fexget. (fex-utils пакет)

Насколько я понимаю, F*EX не делает шифрования исходно, но можно просто зашифровать файл, который Вы хотите отправить с GPG.

Сервер F*EX, полностью открывается - полученный, таким образом, Вы просто устанавливаете и выполняете его на сервере, Вы доверяете.

Домашняя страница FEX объясняет подробно, как FEX соответствует другим услугам по передаче файлов и протоколам.

sendfile: асинхронная передача файлов через компьютеры UNIX

Команда sendfile была вокруг в течение приблизительно 10 лет: Вы устанавливаете его и и сопроводительный демон и на отправке и на принимающем конце, и затем передача так же легка как ввод:

sendfile a.file user@otherhost

Кроме того, sendfile может автоматически зашифровать файл с помощью GPG (ищите -pe и -ps опции).

Так как это устанавливает прямую связь, однако:

  • компьютер получения должен быть в порядке в какой-то момент,
  • это должно будет смочь принять соединения на sendfile порт, что означает это, должен быть достижимым через общедоступный IP
  • это может зарегистрировать IP-адрес отправителей

sendfile был записан теми же авторами F*EX (см. выше), и они объясняют причины, почему они приняли решение переключиться на основанный на HTTP сторонний сервис на sendfile домашнюю страницу

самостоятельный: использовать nc

Относительно легко сделать передачу файлов с помощью только netcat.

На стороне получения Вы работаете:

nc -l 9999 > myfile

После этого, на передающей стороне, Вы работаете:

nc otherhost 9999 < myfile

Как обычно, необходимо зашифровать файл с GPG прежде, чем отправить (или можно сделать это на лету с каналом, если Вы довольны оболочкой). Можно занять место 9999 с любым другим числом действительного порта (например, для создания нескольких передач сразу).

Недостатки:

  • координация: необходимо дать эти две команды на двух концах в правильном порядке, таким образом, и отправитель и получатель должны быть онлайн одновременно, и они должны скоординировать, например, разговорный канал или телефонная линия.
  • это должно будет смочь принять соединения на 9 999 портах, что означает, что это должно быть достижимо через общедоступный IP
  • принимающий конец может зарегистрировать Ваш IP-адрес
2
ответ дан 15 October 2011 в 16:36

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

Похожие вопросы: