Как передать много больших файлов

Удивительно, как возникла целая индустрия внешних жёстких дисков, хотя есть прямой способ переноса информации между компьютерами. К тому же, второй компьютер можно воспринимать как отдельный диск – например, для хранения бэкапа. Безусловно, если второго компьютера нет, внешние диски достаточно удобны. Для некоторых случаев – например, когда нужно загрузить другую операционную систему, работать в ней и сохранять файлы, почти незаменимы. Но так их мало кто использует, да и загрузить операционную систему можно по сети (правда, это требует больше телодвижений).

В начале 1970-х годов был изобретён протокол ftp, который расшифровывается как протокол передачи файлов, и в этом качестве он, как мне кажется, по-прежнему актуален. Появились сетевые файловые системы, но они поддерживаются не всеми операционными системами. Появились и протоколы синхронизации, но они выигрывают при передаче разницы между файлами. HTTP может быть быстрее, но он не всегда поддерживает продолжение передачи в случае ошибки.

Лично у меня часто возникает задача передать файлы на или с машины на Windows, на которую ничего нельзя поставить. Можно воспользоваться облачными сервисами (Dropbox, Yandex.Disk, Google Drive), но работа с ними ограничивается скоростью работы интернета, да и скоростью самого сервиса (и ещё есть лимит места на сервисе). А вот ftp в том виде, как будет описано ниже, позволяет передавать файлы внутри локальной сети на совсем других скоростях. И самый главный плюс: ftp не требует установки дополнительных программ для клиента.

Дальше вопрос экономии времени: если вы переносите файлы между двумя компьютерами через внешний диск, вы делаете две операции. Если вы копируете файл напрямую, вы делаете одну операцию.

Итак, ниже опишу, как поднять свой ftp-сервер на одной машине (с которой надо что-то скачать или на которую надо что-то передать) и как подключиться с другой машины. При этом на какой машине будет клиент, а на какой сервер – дело вкуса. Но сначала пару слов о безопасности. Всё безопасно, если:

  • локальная сеть либо предполагает только проводное соединение, либо беспроводная сеть (wi-fi) защищена надёжным паролем с использованием безопасного протокола (на текущий момент это WPA2)
  • роутер не предполагает подключения по FTP извне, а также не предполагает управлением самим роутером извне

Обычно это так по умолчанию. Если вы отклоняетесь от этих правил – надеюсь, вы знаете, что делаете.

Относительно скорости: скорость будет выше, если оба компьютера подключены по проводу к одному роутеру. Даже если wi-fi обещает заоблачные скорости, по проводу будет стабильнее. Это важно, когда объём передаваемых файлов измеряется десятками гигабайт, либо количество файлов измеряется также десятками (либо и то, и другое). Но и с wi-fi будет работать, если роутер не полный хлам.

Если роутера нет, есть вариант соединения двух компьютеров напрямую кабелем, он тоже рабочий, но нужен специальный кабель, а IP-адреса нужно будет назначить вручную (тогда как роутер их раздаёт). Здесь я не будут на этом останавливаться.

Если у вас много файлов, особенно когда много вложенных каталогов, лучше подготовиться к передаче заранее и создать архив. С одном файлом будет быстрее, кроме того, проще убедиться, что он передан корректно (сравнить размер или сделать контрольную сумму). В случае windows можно воспользоваться и zip, но лучше 7z с небольшим уровнем компрессию. 7z часто бывает установлен (и виден в проводнике в контекстном меню). Если же его нет, и прав устанавливать программы тоже нет, можно воспользоваться Portableapps.

Дальше вопрос, куда и какой ftp-сервер ставить. Если есть машина с linux, то можно установить vsftpd, он везде есть и нормально работает (в конфигурации надо изменить write_enable=YES и перезапустить его). Его отличительные черты: маленький и безопасный. Если машина с windows, можно поставить Filezilla FTP Server.

Сначала лучше всего убедиться, что ftp-сервер работает, прямо с сервера. В случае windows можно взять браузер или Explorer (в них встроен ftp-клиент), в случае linux вместо Explorer можно использовать Nautilus, если у вас Gnome. Набираем ftp://127.0.0.1, вводим логин и пароль. Либо ftp://<логин>@127.0.0.1, поскольку некоторые программы пытаются по умолчанию подключиться анонимно, а это нам не нужно. Если всё работает, переходим к следующему шагу. Если подключения не происходит, значит, FTP-сервер не работает.

Следующим шагом надо узнать адрес ftp-сервера, чтобы знать, куда подключаться. В Windows есть простой способ: нажимаем пуск, запускаем cmd, в командной строке вводим ipconfig/all. В linux аналогичная команда в терминале: ifconfig (у разных адаптеров, проводного и беспроводного будет разный адрес, но с этим не очень сложно разобраться).

Дальше заходим с другой машины по найденному адресу на сервер: ftp://<логин>@<адрес>. Всё, можно передавать файлы (Ctrl+C, Ctrl+V или просто перетаскивать мышкой). Единственный момент, который здесь может возникнуть, это настройка firewall на сервере. Например, этот вопрос может возникнуть в Fedora, но есть инструкции, как это поправить (например).

@Константин Овчинников
Теги: #linux #продуктивность

Комментарии