Передача файлов по сети Linux

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

Если оба устройства подсоединены к одной сети идеальным вариантом будет передача файлов по сети linux. Здесь мы получаем большую скорость, и удобство использования - не нужно искать флешку или USB провод, достаточно прозрачно скопировать файл в нужную папку и он уже на целевом устройстве. Сегодня мы рассмотрим основные способы передачи файлов по сети между компьютерами.

Передача файлов по сети Linux

1. Утилита nc

Этот способ отлично подойдет, если вам нужно передать один или несколько файлов и вы не хотите устанавливать никаких новых программ в систему. Утилита nc или netcat позволяет создавать tcp и unix сокеты в системе. По сути, это туннели, через которые мы можем передать любые данные, в том числе и файлы.

Утилита уже предустановлена, так что ничего дополнительно ставить не придется, нужно только знать IP адреса компьютеров в сети. Сначала создаем слушающий сокет на компьютере, все поступившие на него данные сразу пишем в файл:

nc -l -p 12345 > newfile

Здесь опция -p задает порт, можно брать привольное значение, только чтобы совпадало в обоих командах. Теперь отправляем файл из другого компьютера:

cat file | nc 192.168.0.101 12345

Тут мы указываем тот же порт и ip компьютера, где был запущен слушающий сокет - 192.168.0.101. Убедитесь, что Firewall не мешает подключению к выбранному порту иначе ничего не получится.

Мы можем передавать не только файлы, но и папки. Передача может быть выполнена в обоих направлениях, теперь отправим не на сокет, и от сокета:

tar -cf - /data | nc -l -p 12345

И принимаем отравленные данные на другом компьютере:

nc 192.168.1.2 12345 | tar -xf -

2. Передача файлов ssh

Передача файлов по ssh Linux - это самый быстрый и удобный способ обмена файлами. Достаточно, чтобы на компьютере была запущена служба SSH и у вас был к ней доступ. Затем с помощью утилиты scp туда можно передать любой, файл, это быстро и удобно, а ещё вы можете выбрать папку, в которую его надо сохранить. Допустим, вам надо передать файл с именем ~/file.txt на компьютер с IP адресом 192.168.0.101, тогда используйте такую команду:

scp ~/file.txt root@192.168.0.101:/root

Утилита загрузит файл прямо в домашнюю папку на удалённом компьютере и вы сможете выполнять с ним действия по SSH. Если надо передать все файлы из папки можно использовать опцию -r:

scp -r ~/files root@192.168.0.101:/root

Читайте более подробно про утилиту scp в отдельной статье.

3. Передача файлов по FTP

Не очень удобный и очень медленный способ передачи файлов по сети. Хорошо работает для больших файлов, но большое количество мелких файлов будут передаваться очень долго. На одном компьютере должен быть развернут FTP сервер, а на другом можно использовать графический FTP клиент FileZilla для подключения и передачи файлов.

4. Как передать файл в rsync

Утилита rsync тоже использует для передачи файлов SSH, однако она позволяет передавать целые папки, а также следить за состоянием файлов и если на удалённом компьютере такой файл уже есть, то он передаваться не будет. Таким образом можно копировать только измененные файлы и удобно передавать целые папки. Для примера возьмем тот же компьютер 192.168.0.101 и папку ~/files:

rsync -avz ~/files root@192.168.0.101:/home/

Мы записываем все файлы из папки ~/files в папку /home/root, а также получаем возможность синхронизировать их. Подробнее про rsync читайте в отдельной статье.

5. Сервер NFS

Ещё один способ передачи файлов между Linux серверами - это NFS. На одном из серверов разворачивается NFS сервер, а на другом, монтируется удаленная NFS папка в обычную файловую систему, после чего она становится частью файловой системы Linux и туда уже можно копировать файлы так, как будто это на той же машине. Просто и удобно, но надо настраивать NFS и ещё один минус по сравнению с FTP, у NFS нет возможности настроить простую авторизацию по паролю, можно ограничить монтирование только по IP адресу что не всегда удобно.

6. Сервер Samba

Передавать файлы в Windows на Linux и обратно может помочь удалённый доступ с помощью Samba сервера. Если развернуть сервер Samba на Linux машине, то к нему можно будет подключится из Windows и видеть все файлы в общей папке. Samba - не очень хорошее решение, так как могут возникнуть проблемы с файлами больше 1 Гб, передающимися очень долго, но для обмена файлами между Windows и Linux довольно неплохое решение, тем более, что обмен файлами выполняется через стандартный файловый менеджер.

7. KDE-Connect

Для обмена файлами между компьютером Linux и Android можно использовать программу KDE-Connect. У неё есть приложение для Android, она встроена в окружение KDE, а для Gnome есть расширение GSConnect. Утилита позволяет передавать файлы на компьютер прямо с телефона, а также монтировать общую папку, в которую можно скидывать как файлы на компьютере, так и файлы на телефоне. Очень удобно. Читайте подробнее в статье про настройку KDE-Connect.

Выводы

Вы можете спросить, а какой же способ мне использовать? Ответ зависит от ваших потребностей, если вам нужен только передать один файл раз в месяц, может решением станет scp или FTP, а для регулярной передачи файлов по сети Linux удобнее использовать rsync, к тому же с помощью этой утилиты можно запланировать автоматическую синхронизацию. А какими способами пользуетесь вы? Напишите в комментариях!

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (4 оценок, среднее: 5,00 из 5)
Загрузка...

8 комментариев

  1. Аватар fox 13 марта, 2016 Ответить
    • Аватар fox 13 марта, 2016 Ответить
  2. Аватар fox 13 марта, 2016 Ответить
    • Аватар admin 14 марта, 2016 Ответить
  3. Аватар 13werwolf13 7 сентября, 2016 Ответить
  4. Аватар костя 9 февраля, 2019 Ответить
  5. Аватар Александр 1 ноября, 2019 Ответить
  6. Аватар эдуар говнов 1 ноября, 2019 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: