Что ж, мне удалось найти один инструмент, который предлагает графический интерфейс для настройки NFS сервера и клиента, и это Webmin, «веб-интерфейс для системного администрирования для Unix». Вот несколько кликабельных скриншотов:
Скриншоты графического интерфейса настройки сервера
(S0) (S1) (S2A) (S2B) (S3)
Скриншоты настройки клиента
(С0) (С1) (C2a) (C2B) (С3)
Тем не мение:
- Будучи веб-интерфейсом, он требует, чтобы браузер с поддержкой JavaScript (и SSL) был установлен как на клиентском, так и на серверном компьютере.
- Являясь инструментом системного администрирования, он содержит гораздо больше возможностей, чем просто настройка NFS, поэтому получить мгновенный обзор его может быть сложно
Кроме того, обратите внимание, что я не знаю достаточно о NFS для настройки надлежащей безопасности, поэтому моя цель - быстро настроить общие ресурсы для локальной сети без защиты; делать работу; а затем так же быстро уничтожить общий доступ к NFS. Это и две вышеупомянутые причины - то, почему я надеялся, что смогу отследить графический интерфейс, который проще (например, написан на Python/Tkinter и только для NFS); но, по крайней мере, webmin
предлагает настройку как сервера, так и клиента, что для меня является наиболее важным для начала (поэтому я избавлен от работы с внутренними компонентами NFS, насколько это возможно).
Я провел тест на ПК с Ubuntu 11.04 (правильная установка) в качестве сервера и на ПК с Ubuntu 12.04 (живой образ на основе Mini Remix ISO) в качестве клиента; и кроме того, что установка webmin
и зависимостей не совсем тривиальна - также не совсем просто использовать его для настройки NFS. Вот почему я позволю себе опубликовать свои заметки здесь, в своего рода учебном формате - надеюсь, что все в порядке.
Во-первых, использование. Обратите внимание, что в NFS (webmin
?) жаргон:
- ПК, совместно использующий папку в сети, является сервером, а его общая папка называется « Экспорт NFS ».
- Все экспортируемые таким образом папки, в случае NFS 4, будут установлены в один (или более) корень (и) "NFSv4 Pseudofilesystem"
- ПК, обращающийся к общей сетевой папке, является клиентом, а доступ к сетевой папке называется « NFS Share ».
Настройка общего доступа к NFS на сервере
- Создайте каталог для совместного использования, например
/tmp/sharetest
- В
webmin
зайдите на сайт https://127.0.0.1:10000
и войдите под учетной записью sudoer.
- После входа в систему разверните узел "Сеть" в левом фрейме (требуется JavaScript) (s0) и нажмите "Сеть"/"Экспорт NFS" (s1)
- На следующей странице "Экспорт NFS" нажмите "Добавить новый экспорт" (s1)
- На следующей странице "Создать экспорт" оставьте "NFS version" на 4 и нажмите кнопку
...
в поле "Директория для экспорта" и перейдите к (с двойным щелчком мыши) - и выберите - /tmp/sharetest
(s2a)
- Вернувшись на страницу "Создать экспорт", вы можете установить «Только для чтения?»."на" Нет ", и в противном случае оставьте значения по умолчанию - наконец, нажмите кнопку" Создать "(s2b)
- Снова появится страница "Экспорт NFS" с двумя новыми записями
/export
и /export/sharetest
(s3).
- Обратите внимание, что
/export
- это автоматически созданный корень "NFSv4 Pseudofilesystem".
- При создании дополнительных экспортов NFS они могут либо использовать этот корень псевдофайловой системы, либо запросить создание нового.
Обратите внимание, что здесь, если вы хотите редактировать экспорт NFS, может быть некорректное поведение графического интерфейса для NFS v4 - для которого я подал ошибку: Webmin / Bugs / # 4286 Экспорт NFS v4 не сохраняется как v4 после редактирования - они вернуться к v3; и справка по версии NFS отсутствует. Изменения, внесенные в экспорт NFS здесь, отражаются в файле /etc/exports
. Обратите внимание, что настройка "Только для чтения""(Который является вариантом rw
в /etc/exports
и т.д. / экспорте) на„Нет“не достаточно , чтобы позволить клиентам писать в каталоге - вы должны сделать /tmp/sharetest
мир доступна для записи, используя chmod 777
(см [3]); также обратите внимание, что файлы, написанные клиентами, сохранят uid авторов - вам следует проверить, не создает ли это для вас проблемы.
Настройка общего доступа клиента NFS
- Создайте локальный каталог, который будет сопоставлен с сетевым ресурсом , например,
/tmp/nfsshare
- В
webmin
зайдите на сайт https://127.0.0.1:10000
и войдите под учетной записью sudoer.
- После входа в систему разверните узел "Система" в левом фрейме (требуется JavaScript) (c0) и нажмите "Система"/"Дисковые и сетевые файловые системы" (c1)
- На следующей странице "Дисковые и сетевые файловые системы" выберите «Сетевая файловая система v4 (nfs4)» из раскрывающегося списка и нажмите кнопку "Добавить монтирование" (c1).
- На следующей странице "Создать монтирование" нажмите кнопку «...» рядом с текстовым полем "Имя хоста NFS" (которое изначально называется "монтировать") (c2a:1)
- Появится новое окно "Выбор сервера NFS"; NFS-сервер должен быть автоматически определен, если он работает - поэтому нажмите на ссылку в столбце «IP-адрес» (c2a:2), в которой текстовое поле "NFS Hostname" заполнится соответствующим "Hostname"; и закройте всплывающее окно
- Вернувшись на страницу "Создать монтирование", нажмите кнопку «...» рядом с текстовым полем "Каталог NFS" (c2a:3).
- Появится новое окно "Выберите каталог NFS"; экспорт должен быть указан - однако обратите внимание, что «Для монтирования NFSv4 вы должны выбрать« /»», поэтому нажмите
/
ссылку в столбце "Каталог" (c2a:4), который заполнит текстовое поле "Каталог NFS" соответствующий "Каталог" - или просто закройте всплывающее окно, чтобы оставить значение по умолчанию /
без изменений
- Вернувшись на страницу "Создать монтирование", нажмите кнопку «...» рядом с текстовым полем "Монтируется как" (c2a:5).
- Появится новое окно "Выберите каталог"; перейдите к
/tmp/nfsshare
и выберите его и нажмите кнопку "ОК" (c2a:6)
- Вернувшись на страницу "Создать монтирование", вы можете установить "Только для чтения"?"на" Нет ", и в противном случае оставьте значения по умолчанию - наконец, нажмите кнопку" Создать "(c2b)
- Вернувшись к "Дисковым и сетевым файловым системам", вы увидите, что новый общий ресурс указан в таблице (c3).
- Чтобы проверить, что все в порядке, вы можете попробовать перечислить каталог
/tmp/nfsshare
(c3) или записать в /tmp/nfsshare/sharetest
Обратите внимание, что, если вы случайно закроете сервер NFS, пока клиенты еще работают, у вас могут остаться "висячие" общие ресурсы; в этом случае команда sudo umount -lf ...
кажется, помогает:
ubuntu@Client:~$ mount
...
Server-eth0:/export/sharetest on /tmp/nfsshare type nfs (rw,addr=192.168.1.42)
Server-eth0:/export/sharetest on /tmp/.webmin/402201_1_save_mount.cgi type nfs (rw,vers=4,addr=192.168.1.42,clientaddr=192.168.1.77)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)
Server-eth0:/export/sharetest on /tmp/.webmin/303774_1_save_mount.cgi type nfs (rw,vers=4,addr=192.168.1.42,clientaddr=192.168.1.77)
ubuntu@Client:~$ sudo umount -lf /tmp/.webmin/402201_1_save_mount.cgi
ubuntu@Client:~$ sudo umount -lf /tmp/.webmin/303774_1_save_mount.cgi
ubuntu@Client:~$ mount
...
Server-eth0:/export/sharetest on /tmp/nfsshare type nfs (rw,addr=192.168.1.42)
webmin
установить на сервере (Ubuntu 11.04 правильная установка)
suser@Server:tmp$ sudo apt-get install nfs-kernel-server # also pulls nfs-common
suser@Server:tmp$ sudo apt-get install libauthen-pam-perl libio-pty-perl libnet-ssleay-perl
suser@Server:tmp$ wget http://prdownloads.sourceforge.net/webadmin/webmin_1.580_all.deb
suser@Server:tmp$ sudo dpkg -i webmin_1.580_all.deb
Остановить услуги
sudo service nfs-kernel-server stop # also clears /etc/exports
sudo service idmapd stop
sudo service portmap stop
sudo service webmin stop # also: sudo /etc/webmin/stop
Удалить
sudo apt-get remove --purge nfs-kernel-server libauthen-pam-perl libio-pty-perl libnet-ssleay-perl && sudo apt-get autoremove --purge
# sudo dpkg -r webmin # not needed; the previous command should remove webmin by dependency
webmin
установить на клиенте (Ubuntu 12.04 Live Image)
ubuntu@Client:~$ sudo nano /ets/apt/sources.list # uncomment `universe` repositories, and save
ubuntu@Client:~$ sudo apt-get update
ubuntu@Client:~$ sudo apt-get install nfs-common # "initctl: Unknown job: portmap / statd / gssd / idmapd" here
ubuntu@Client:~$ sudo initctl reload-configuration
ubuntu@Client:~$ sudo apt-get install --reinstall rpcbind nfs-common # now "portmap ... idmapd start/running,"
ubuntu@Client:~$ sudo apt-get install libauthen-pam-perl libio-pty-perl libnet-ssleay-perl
ubuntu@Client:~$ wget http://prdownloads.sourceforge.net/webadmin/webmin_1.580_all.deb
ubuntu@Client:~$ sudo dpkg -i webmin_1.580_all.deb
Остановить услуги
sudo service idmapd stop
sudo service portmap stop
sudo service webmin stop # also: sudo /etc/webmin/stop
Удалить
sudo apt-get remove --purge nfs-common libauthen-pam-perl libio-pty-perl libnet-ssleay-perl && sudo apt-get autoremove --purge
# sudo dpkg -r webmin # not needed; the previous command should remove webmin by dependency
Замечания по установке:
webmin
недоступен в репозиториях Ubuntu; его можно установить через пакет .deb
с сайта webmin
- загрузка более старого .deb, как здесь, не является проблемой, потому что webmin позволяет получать обновления непосредственно из своего веб-интерфейса.
- Почти все зависимости
webmin
доступны в main
репозиториях Ubuntu, кроме libauthen-pam-perl
, который находится в репозиториях universe
- В живых изображениях Ubuntu по умолчанию отключены репозитории
universe
; поэтому сначала их нужно включить, раскомментировав соответствующие записи в /etc/apt/sources.list
, а затем sudo apt-get update
(иначе E: Unable to locate package libauthen-pam-perl
/ E: Package 'libauthen-pam-perl' has no installation candidate
происходит)
- Живые образы Ubuntu, по-видимому, «не сканировали каталог / etc / init автоматически» (ссылка [1]), поэтому им необходим ручной вызов для
initctl reload-configuration
initctl: Unknown job: portmap
(иначе initctl: неизвестное задание: происходит отображение порта)
initclt
должен вызываться с помощью sudo
(иначе initctl: Rejected send message, 1 matched rules; ...
происходит)
- После установки
nfs-common
служба, называемая portmap
существует как 11.04, так и 12.04,
- ... однако в 11.04 есть пакет с именем
portmap
- в то время как 12.04 заменяет его пакетом rpcbind
(появляется сообщение Note, selecting 'rpcbind' instead of 'portmap'
)
- То, что раньше было известно как
nfs-common
service в более старых Ubuntus, теперь (по-видимому) называется idmapd
(ref. [2])
- Служба
nfs
(может быть найдена в более старых руководствах) не установлена нигде - ни на сервере, ни на клиенте
libio-pty-perl
может уже присутствовать в вашей системе, если вы установили, например, moreutils
; если это так, будьте осторожны, чтобы не ссылаться на него в приведенных выше командах удаления (то же самое относится и к другим зависимостям)
Рекомендации:
- Ошибка # 857406 «Не удалось установить rpcbind» (# 3): Ошибки: пакет «linux»: Ubuntu
- Как перезапустить (или остановить или даже запустить) клиентскую службу NFS на Ubuntu 9.10? - Супер пользователь
- [Решено] разрешение на запись для пользователей в папке NFS
- Ubuntu Server: настройка клиента и сервера NFS с использованием Webmin