Настройка файлового обмена между linux и linux

Обновлено: 08.07.2024

В предыдущей статье о сетевом обмене файлами между windows-windows и windows-linux машинами, я обещался поведать любознательному читателю о способах переброски файлов в linux, и любых других nix-системах. Поскольку перед начинающими администраторами linux и unix(solaris, freebsd, aix, hp-ux) зачастую встает такой вопрос. Здесь рассмотренные основные способы, как это сделать.

Итак, начнем с того, что любая nix-система не считается полноценной без установленного ssh-сервера и клиента, поскольку доступ для управления сервером просто невозможно будет получить. Возможность доступа по протоколу ssh в таких системах обязателен, и будем считать что она по умолчанию есть на целевых компьютерах. Если это так, то передача файлов между linux-хостами становится очень простой. Расскажу способы, как осуществляет подобную процедуру местный автор.

Способ 1. Перекачка файла напрямую по ссх, командой из консоли.

Для этого в любой nix-системе существует утилита(протокол) scp.

Как пользоваться? Описано в мануале, да и в интернетах гуглится на раз.

для папок, с рекурсивным копированием всего содержимого лишь добавить опцию

Способ 2. Доступ к файловой системе через nautilus.

Однако. Даже если вышеописанное известно читателю, то хочу рассказать что иногда хочется не только передать или скачать файлы, но и побродить по файловой системе удаленного хоста не в консоли, а в графическом интерфейсе, через удобный файловый менеджер nautilus. Я понимаю что православные true-одмины используют хороший, годный mc, но местный автор вот такой извращенец, что категорически оный не приемлет, используя либо чистый bash, либо наутилус.

Посему, спешу вас обрадовать, что файловый менеджер nautilus поддерживает любые необходимые протоколы, будь то smb, ftp или sftp. Причем последний наиболее интересен тем, что нет надобности настраивать и каким то образом расшаривать нужные ресурсы.

Почему nautilus? Потому что последние его версии крайне удобны. Двухпанельный режим (а-ля total commander или conqueror), возможность быстрой настройки хоткеев для создания папки или копирования между панелями, и.т.д.
Admin

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

Если оба устройства подсоединены к одной сети идеальным вариантом будет передача файлов по сети 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, тогда используйте такую команду:


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

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

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

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

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

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


Мы записываем все файлы из папки

/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, к тому же с помощью этой утилиты можно запланировать автоматическую синхронизацию. А какими способами пользуетесь вы? Напишите в комментариях!

У кого есть желание и время разжуйте, пожалуйста, в подробностях.

Два домашних ПК подсоединены к роутеру. На обоих Ubuntu.

Какие действия нужно произвести, чтобы грамотно и надёжно обмениваться файлами?




А для кого я распинался:

У кого есть желание и время разжуйте, пожалуйста, в подробностях.

man nfs. В манах всё разжёвано.

Какие преимущества у NFS перед sshfs?



Какие действия нужно произвести, чтобы грамотно и надёжно обмениваться файлами?


Ого предъявы. Здесь дают советы, а не делают всё за тебя.

Публичное самоунижение не заменяет выполнение домашних заданий

Как интерпретировать ответы RTFM и STFW: как понять, что вы серьезно облажались Если вы не поняли.

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


Как верно заметили в треде, все разжевано в манах, куда копать тебе подсказали. Если ты хочешь курсов обучения или техподдержки, тебе надо ставить винду/RHEL и записываться на курсы для сисадминов при каком-нибудь универе или обучающем центре.

Там есть полезные трюки, руководство по настройке и все такое. Пара арче-специфичных моментов в целом не помешают тебе настроить все на Ubuntu.

Никому, просто, нет желания объяснять то, что уже объяснено. Разве что при ведении блога некоторые делятся своими открытиями.


Поставь openssh-server и filezilla, если надежно.


Он немного быстрей и немного меньше отваливается.


арчевики, но она несколько для другой категории слушателей



Это можно или самостоятельно или в Jobs.

Если есть какие-то конкретные вопросы - задавай, тебе помогут. Пересказывать же маны тут навряд ли кто-то собирается.

Я тебе подсказал куда копать - дерзай.

Я вот BTsync для синхронизации сейчас использую. Собрал под одним прогу, на другой оси запускаю.


LongLiveUbuntu ★★★★★ ( 25.03.15 20:18:07 )
Последнее исправление: LongLiveUbuntu 25.03.15 20:21:39 (всего исправлений: 1)


В 100 МБит сети при использовании UDP лютая скорость и отсутствие нагрузки на проц.

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

А с нфс, кроме того, что это не костыль, хоть для дома не очень предназначен (но если конфиг не меняется то пох), ставится один пакет (nfs-common) и настройка делается одним echo на каждый комп.

или голубинная почта, в каком-то rfc есть рецепт



21 комментарий. Из них 2 по делу. ЛОР торт.



Ирония вполне уместная, но вики предлагает конкретные рецепты, которые помогут быстрее сориентироваться с какими-то нужными функциями, чем при простом чтении мана.

Например, можно разобраться в CSS, но чтобы приклеить футер, вместо самостоятельного составления правил, проще и лучше найти готовые способы.


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

Кстати о гугл-туториалах и вики: в 90% случаев там описывается настройка, например, самбы для корпоративной среды со всякими там AD и прочим, либо же наоборот - делаем полный доступ всем и вся без какой либо авторизации (типа для домашнего пользования). А мне нужно, чтобы у меня дома так же два компутера могли видеть шары друг друга, но с примитивной авторизацией. Здесь ssh, конечно, выход, но хотелось бы менее ресурсоемкое решение, но самбы с НФСами это жесть. А разбираться лень, поэтому ищутся туториалы)

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

Некоторое время назад мне пришлось перенести файлы с моего тестового компьютера, который в то время Ubuntu 11.10, в сторону основного, в котором он использовал Ubuntu LTS 10.04, чтобы иметь возможность внести некоторые изменения в разделы первого. После экспериментов со многими методами, некоторые из которых не работали, а другие работали, но очень медленно, мне удалось найти решение, которое убедило меня простой, безошибочный, что позволяет достигать действительно огромных скоростей.

Для этого метода нам придется прибегнуть к небольшой бесплатной утилите под названием UDP Cast. Он находится в официальных репозиториях большинства дистрибутивов (кроме репозиториев Arch Linux, но его можно скачать с AUR), поэтому мы просто устанавливаем его оттуда. Чтобы использовать его, мы должны установить его на тот компьютер, на котором он должен будет отправлять файлы (сервер) и где вы их получите (клиент).

UDP Cast не имеет графического интерфейса (и я не исследовал, есть ли какие-либо программного обеспечения. предоставьте его), чтобы он использовался с консоли, но его использование довольно просто поэтому, даже если вам не нравится командная строка, у вас, вероятно, не возникнет проблем с ее использованием.

Начало

Отсюда команды различаются в зависимости от того, собираемся ли мы отправлять отдельный файл или весь каталог.

udp-sender -f archivo.zip

где file.zip Мы заменим его именем файла для отправки вместе с его расширением, которое в данном случае будет сжатым файлом ZIP.

Позже с клиентского компьютера напишем это:

udp-receiver -f archivo.zip

tar cf - directorio | udp-sender

udp-receiver | tar xf -

Выводы

Как я сказал в начале статьи, UDP Cast позволяет передавать файлы с невероятной скоростью, поскольку он в полной мере использует весь потенциал передачи, который способна развивать локальная сеть. Насколько мне удалось проверить, самые высокие скорости достигаются, когда оба компьютера подключены к сети с помощью кабеля. Ethernet, а в качестве образца представляю следующие снимки:

Отправка UDP Cast

В этом случае я передаю папку с именем ISOS (который, как вы можете догадаться, содержит файлы .iso дистрибутивов, которые я загружаю для тестирования), находившийся в каталоге загрузок с моего ноутбука с Arch Linux, в сторону каталога загрузок с компьютера моей матери, который она использует Debian.

Прием UDP Cast

На скорости более 25 Мбит / с очевидно, что перевод завершился в очень короткие сроки, поэтому вы уже сможете убедиться, что этот метод идеален, когда вам нужно передать большие файлы или папки.

Наконец, следует отметить, что UDP Cast очень мощный инструмент и с функциями, которые выходят далеко за рамки показанных здесь. Если вы хотите узнать больше об этой интересной утилите, я советую вам посетить ее Официальный сайт.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Из Linux » приложений » Быстро и легко переносите файлы между компьютерами Linux

Читайте также: