Как мне предоставить общий доступ к папке с другой машиной Linux в той же домашней сети?

Я пытаюсь поделиться папкой на одном компьютере Ubuntu с другим компьютером Ubuntu в той же домашней сети. Когда я щелкаю правой кнопкой мыши по папке и выбираю Параметры общего доступа, он сообщает мне, что мне нужно установить службы общего доступа к сети Windows для общего доступа к папкам. Какое отношение к этому имеет Windows? Я не пытаюсь поделиться с компьютером с Windows...

Какое отношение к этому имеет Windows? Я не пытаюсь поделиться с компьютером с Windows...

Вы правы, это может сбить с толку. Итак, позвольте мне прежде всего попытаться прояснить термины:

Способ совместного использования файлов и принтеров Windows называется Малый и средний бизнес. Люди из САМБА проект внедрил все протоколы и спецификации Microsoft для Linux. Таким образом, Ubuntu поддерживает тот же тип обмена файлами, что и Windows, который называется Samba.

  • Вы можете использовать SAMBA для обмена файлами между машинами Linux. На самом деле, вы могли бы предпочесть это в том случае, если у вас, например, есть друг со своим компьютером под управлением Windows.

  • В качестве альтернативы вы можете использовать Путь Linux общего доступа к файлам, который является NFS (Сетевая файловая система) - Это ответ на предыдущий вопрос объясняет, как это сделать. (но это довольно технический вопрос)

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

Дополнение:

Вы можете попробовать просто включить общий доступ, прежде чем следовать инструкциям Салиха Эмина; если это не сработает, вы получите простое предупреждение, затем вы можете выполнить действия, описанные Салихом, если это необходимо. Я попробовал это на недавно установленной и обновленной системе, и мне действительно нужно было это сделать.

Я нахожу SSHFS нативными, стабильными и чрезвычайно быстрыми. У меня есть две машины xubuntu (18.04), разделяющие / домашние папки, и USB-накопитель Intel NUC в качестве "dropbox". По всему sshfs.

ОБНОВЛЕНИЕ 2020-07-12: Я нашел SSHFS для Windows. Чистый красивый графический интерфейс, нулевая конфигурация и работает с SSH-ключами с linux-машин.

Вот как это настроить sshfs и автоматическое повторное подключение после перезагрузки с помощью fstab без необходимости вводить пароль. Большое спасибо вам за пользователь serverfault kubanczyk о том, как повторно подключиться после удаленного приостановления /возобновления.

Я буду использовать "Local machine - surfbox" для компьютера, с которого вы подключаетесь, и "Remote machine - devbox" для компьютера, к которому вы подключаетесь.

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

Идентификатор группы: id -g localuserИдентификатор пользователя: id -u localuser

1. Получите IP-адреса ваших локальных и удаленных компьютеров.

hostname -I

Я буду использовать 192.168.1.150 для локальной машины ('surfbox') и 192.168.1.151 для удаленной машины ('devbox').

2. Установите пакеты на локальные и удаленные компьютеры

sudo apt install sshfs fuse ssh

3. Создайте групповой раздел и добавьте в него localuser

Создать группу: sudo groupadd fuse

Добавьте локального пользователя в группу: sudo usermod -a -G fuse $user

4. Включите "allow_other" в конфигурации предохранителя

Нам понадобится эта опция при монтаже в fstab

Редактировать /etc/fuse.conf с помощью редактора командной строки.Удалите хэштег, прежде чем user_allow_other и сохранить.

5. Сгенерируйте SSH-ключи на локальном компьютере

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

ssh-keygen -t rsa -C youremail@example.com

Ключи хранятся в домашнем каталоге локального компьютера /.ssh папка

6. Передайте открытый SSH-ключ вашего локального компьютера на удаленную машину

ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151

Вам будет предложено ввести пароль для удаленного пользователя на удаленном компьютере.Открытый ключ локальной машины теперь добавляется в файл ~/.ssh/authorized_keys на удаленной машине.

7. Создайте каталог в папке Local machine /mnt, куда вы будете монтировать папку Remote machine/home.

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

sudo mkdir /mnt/devboxhome

8. Смонтируйте удаленный компьютер /домашний каталог с терминала

Синтаксис для sshfs таков

sshfs [user@]host:[directory] mountpoint [options]

мы используем

sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa

пример: предполагая, что "steve" - это имя пользователя как на локальной, так и на удаленной машине

sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa

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

Вы получите предупреждение о том, что машина не является доверенной, и вам будет предложено добавить ее. Добавьте удаленную машину в качестве доверенной.

9. Проверка: Просмотр удаленного компьютера /домашнего каталога

В терминале на локальном компьютере теперь вы можете перечислить удаленную машину / домашний каталог в /mnt/devboxhome

cd /mnt/devboxhome ls

или используйте Nautilus для просмотра каталога. Здорово.

10. Включите повторное подключение после перезагрузки

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

# Mount devbox at boot remoteuser@192.168.1.151:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,ServerAliveInterval=15,ServerAliveCountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

  • delay_connect заставляет ядро ждать, пока сеть не заработает, пока оно не попытается смонтировать каталог на удаленной машине.
  • Поскольку мы запускаемся от имени root во время загрузки, мы должны указать ключевой файл который хранится в домашнем каталоге localuser.
  • allow_other - пользователи, отличные от того, кто выполняет фактическое монтирование, могут получить доступ к смонтированной файловой системе.
  • idmap=пользователь - переводить только UID подключающегося пользователя
  • переподключение, ServerAliveInterval, ServerAliveCountMax - ssh отправляет сообщения о поддержании работоспособности. Если ServerAliveCountMax последовательные пинги завершаются неудачей, повторите подключение.

Пользователь, входящий в систему под именем steve на локальных и удаленных компьютерах, будет иметь:

steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,ServerAliveInterval=15,ServerAliveCountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

важный: косая черта после удаленного каталога: steve@192.168.1.151:/home/steve/

сохраните файл /etc/fstab и ....

11. Перезагрузка

Теперь вы должны иметь возможность получить доступ к удаленному компьютеру / домашнему каталогу на локальном компьютере /mnt /devboxhome в Nautilus. Вы можете перетащить эту папку на панель "Места".

12. Повторите

Повторите те же действия на удаленном компьютере, чтобы сделать каталог /home локального компьютера общим.

В настоящее время в Lucid есть небольшая ошибка, которая указана в Launchpad: ошибка #536766. Эта ошибка не запрашивает у пользователя установку необходимых пакетов, необходимых для завершения настройки общего доступа к файлам. Пока это не будет устранено, вот быстрый обходной путь.

Вам необходимо установить libapache2-mod-dnssd и перезагрузите компьютер. Нажмите на эту ссылку, чтобы установить его, или найдите libapache2-mod-dnssd в Центре программного обеспечения.

Как только вы его установите, перейдите к Система → Настройки → Общий доступ к личным файлам, и установите флажок "Общий доступ к общедоступным файлам в сети".

alt text

Как только все это будет сделано, вы сможете просмотреть все другие компьютеры в вашей сети, на которых разрешен общий доступ к файлам в общей папке. Просто нажмите на Места → Сеть, и там вы должны увидеть все доступные компьютеры и их общие общие папки.

Двойной щелчок по значку сервера приведет к подключению соответствующей общей папки на вашем рабочем столе.

Через текст ссылки

Вы можете просто запустить сервер simpleHTTP на компьютере с Linux и получить к нему доступ на другом компьютере.

Шаги :

  1. сначала запустите терминал из папки, к которой будет предоставлен общий доступ.
  2. запуск в терминале - python -m SimpleHTTPServer
  3. проверьте свой ip-адрес с помощью ifconfig.
  4. введите в браузере другого компьютера ip-адрес:8000 (например: если ваш ip-адрес 127.3.4.123, то в браузере вы вводите 127.3.4.123:8000)

Вы получаете необходимые файлы в папке для загрузки.

Если вы хотите бесшовную интеграцию в Ubuntu, и вас не интересует совместимость с Windows, SSH - это ваш huckleberry.

Видеть Как я могу обмениваться файлами между двумя машинами Linux по локальной сети?

Возможно, вам потребуется установить SSH-сервер с:

sudo apt-get install openssh-server

Из приложения file-manager на вашем клиенте вы можете попасть на свой сервер с помощью:

sftp://servername.local

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

>Я полагаю, что это то, под чем перечислены пакеты SAMBA, или, по крайней мере, это часть их описания. В качестве альтернативы вы можете попробовать Настройки - Общий доступ к файлам, который, как я полагаю, использует другой механизм. Однако Samba - это удобная вещь, которую нужно установить.

Вы можете установить "qweborf". Он будет совместно использовать каталог по протоколу HTTP, и другие хосты смогут получить к нему доступ с помощью браузера.

Он также может включить webdav и разрешить монтировать каталог как файловую систему для чтения / записи (протестировано с davfs2, KDE, Gnome2, OsX).

Мой способ обмена файлами:

sudo npm install -g http-server

Перейдите в папку, которой вы хотите поделиться, откройте терминал и выполните эту команду:

http-server -o 

Вы сможете получить доступ к этой папке на всех компьютерах в одной сети по IP-адресу, указанному в выводе этой команды.

zx81roadkill правильно, используйте "sshfs". Samba - это дерьмо, NFS - это мусор. Sshfs полностью можно использовать с моего компьютера здесь, в Калифорнии, на компьютер в Аргентине. Это полностью безопасно, это так же быстро, как и все остальное (у меня есть линия gibabit).

Sshfs относительно новичок по сравнению с Samba и NFS, но он намного превосходит их. Вот пример его запуска (при условии, что у вас установлены все пакеты)

# mount "username"'s home directory on "machine"  mkdir -p /tmp/my_mount ; sshfs username@machine: /tmp/my_mount# mount the root directory on "machine" (note: if "username" on "machine"# can't write to the file, neither will you.  You have "username"'s privs  mkdir -p /tmp/my_mount ; sshfs username@machine:/ /tmp/my_mount# mount the directory "Videos" on "username"'s account on "machine"  mkdir -p /tmp/my_mount ; sshfs username@machine:Videos /tmp/my_mount

Как только вы введете пароль, /tmp/my_mount будет содержать все файлы "username" на "компьютере". Не утруждайте себя возней с Samba или NFS. Они просто бессмысленная заноза в заднице, которую нужно либо настраивать, либо настраивать.

Чтобы размонтировать:

fusermount -u /tmp/my_mount

и если это не удастся (по какой-либо причине):

umount -f /tmp/my_mount

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

Если вам нужна необработанная скорость, возможно, это сделает этот раздутый кусок мусора Samba или NFS. Я не знаю, 100 Мбит / с + для меня достаточно.