Я пытаюсь поделиться папкой на одном компьютере 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-машин.
- Как это сделать: https://github.com/billziss-gh/sshfs-win
- графический интерфейс пользователя https://github.com/evsar3/sshfs-win-manager
Вот как это настроить 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 в Центре программного обеспечения.
Как только вы его установите, перейдите к Система → Настройки → Общий доступ к личным файлам, и установите флажок "Общий доступ к общедоступным файлам в сети".
Как только все это будет сделано, вы сможете просмотреть все другие компьютеры в вашей сети, на которых разрешен общий доступ к файлам в общей папке. Просто нажмите на Места → Сеть, и там вы должны увидеть все доступные компьютеры и их общие общие папки.
Двойной щелчок по значку сервера приведет к подключению соответствующей общей папки на вашем рабочем столе.
Через текст ссылки
Вы можете просто запустить сервер simpleHTTP на компьютере с Linux и получить к нему доступ на другом компьютере.
Шаги :
- сначала запустите терминал из папки, к которой будет предоставлен общий доступ.
- запуск в терминале -
python -m SimpleHTTPServer
- проверьте свой ip-адрес с помощью
ifconfig
. - введите в браузере другого компьютера 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 Мбит / с + для меня достаточно.