ٔNFS ( Network FIle System) یک پروتکل سرور - کلاینت است که برای اشتراکگذاری فایلها میان یک سیستم لینوکسی / یونیکسی با سیستمهای لینوکسی / یونیکسی دیگر استفاده می شود. با NFS کاربران می توانند به فایلها در سیستمهای دوردست دسترسی داشته باشند مثل اینکه آنها را به صورت محلی ذخیره نموده باشند. این راهنما نحوه راه اندازی سرور NFS را بر روی اوپن سوزی 13.1 شرح خواهد داد.

توضیح اینکه در این راهنما از دو سیستم استفاده شده است. بر روی هر دو سیستم، سیستم عامل اوپن سوزی 13.1 در حال اجرا می باشد. در اینجا اطلاعات ip سرور و کلاینت مورد استفاده به شرح زیر است.

NFS Server IP Address : 192.168.1.101/24

NFS Client IP Address  : 192.168.1.100/24

نصب NFS بر روی سیستم سرور

ابتدا NFS را بر روی سرور نصب می کنیم.

# zypper in nfs-kernel-server

شروع سرویس NFS

سرور nfs  را بر روی سرور فعال و سرویسهای NFS و rpcbind را شروع می کنیم.

# systemctl enable rpcbind.service
# systemctl start rpcbind.service
# systemctl enable nfsserver.service
# systemctl start nfsserver.service

نصب NFS بر روی سیستم کلاینت

در سیستم کلاینت دستورات زیر را اجرا کنید تا بسته های nfs-client را بر روی سیستم کلاینت نصب کنید.

# zypper in nfs-client

ساخت دایرکتوری اشتراکی توسط NFS بر روی سرور

یک دایرکتوری اشتراکی به نام unixmen_share تحت دایرکتوری var  بر روی سرور ایجاد کنید و به کاربران کلاینت دسترسی خواندن و نوشتن فایلهای درون  این دایرکتوری را بدهید.

# mkdir /var/unixmen_share
# chmod 755 /var/unixmen_share/

صدور دایرکتور اشتراکی بر روی سرور NFS

فایل etc/exports/ را باز کنید.

# nano /etc/exports

و دایرکتوری های اشتراکی را به آن اضافه کنید.

# See the exports(5) manpage for a description of the syntax of this file.
# This file contains a list of all directories that are to be exported to
# other computers via NFS (Network File System).
# This file used by rpc.nfsd and rpc.mountd. See their manpages for details
# on how make changes in this file effective.

/var/unixmen_share/     192.168.1.0/24(rw,sync,no_root_squash,no_all_squash

فایل را ذخیره و ببندید.

در جایی که

/var/unixmen_share  - shared directory - دایرکتوری به اشتراک گذاشته شده
192.168.1.0/24        - IP address range of clients - گستره آدرس کلاینتها
rw                  - Read/Write permission to shared folder - دسترسی خواندن و نوشتن به دایرکتوری اشتراکی
sync                 - Synchronize shared directory - همگام سازی دایرکتوری اشتراکی
no_root_squash      - Enable root privilege - فعال سازی امتیاز کاربر ریشه 
no_all_squash        - Enable user’s authority - فعال نمودن اعتبار سنجی کاربران

لطفا به یاد داشته باشید اگر شما در آینده این فایل را ویرایش می کنید دستور زیر را برای اعمال تغییرات بر روی سیستم سرور اجرا کنید.

# exportfs -a

حال سرویس NFS و rpcbind را مجددا شروع کنید.

# systemctl restart rpcbind.service
# systemctl restart nfsserver.service

سوار کردن دایرکتوری اشتراکی NFS بر روی کلاینت

بر روی سیستم کلاینت بروید و یک نقطه سوار (دایرکتوری جدید ) برای سوار نمودن دایرکتوری اشتراکی بسازید.

# mkdir /var/nfs_share

به صورت پیش فرض، فایروال اوپن سوزی اجازه دسترسی به کلاینت های دوردست  برای ارتباط با سرور NFS نمی دهد. برای تعریف دسترسی  خارجی به سرور NFS  برنامه مرکز کنترل YaST را اجرا کنید و در قسمت Security and Users
بر روی FireWall کلیک کنید.



با انتخاب Allowed Services در ستون سمت چپ، از منوی کشویی Service to allow سرویس NFS Secure را انتخاب و بر روی Add کلیک کنید. در پایان با کلیک بر روی Next دسترسی به سرویس NFSرا از طریق فایروال امکان پذیر می سازید.


اکنون دایرکتوری اشتراکی را سوار می کنیم.

# mount -t nfs 192.168.1.101:/var/unixmen_share/ /var/nfs_share/

اکنون دایرکتوری اشتراک ذاشته شده توسط سرور باید بر روی سیستم کلاینت سوار شده باشد.

آزمایش NFS

به روش زیر اطمینان حاصل کنید که دایرکتوری به اشتراک گذاشته شده توسط سرور NFS بر روی سیستم کلاینت سوار شده است.

# df -h

خروجی نمونه

Filesystem                         Size  Used Avail Use% Mounted on
/dev/sda1                          292G  229G   48G  83% /
none                               4.0K     0  4.0K   0% /sys/fs/cgroup
udev                               989M  4.0K  989M   1% /dev
tmpfs                              200M  852K  199M   1% /run
none                               5.0M     0  5.0M   0% /run/lock
none                               998M  244K  998M   1% /run/shm
none                               100M   16K  100M   1% /run/user
192.168.1.101:/var/unixmen_share/  7.6G  4.1G  3.1G  57% /var/nfs_share

همچنین می توانید با استفاده دستور mount اشتراک NFS را بررسی کنید.

# mount

نمونه خروجی

[...]
192.168.1.101:/var/unixmen_share/ on /var/nfs_share type nfs (rw,vers=4,addr=192.168.1.101,clientaddr=192.168.1.100)

سوار شدن خودکار دایرکتوری اشتراکی

برای سوار نمودن خودکار دایرکتوری اشتراکی به جای سوار نمودن دستی بعد از هر راه اندازی سیستم، خطوط زیررا به انتهای فایل etc/fstab/ به صورت پررنگ تر ( صرفا به خاطر تشخیص بعدی ) اضافه کنید.

فایل etc/fstab/را ویرایش کنید.

# nano vi /etc/fstab

و خطوط زیر را به انتهای آن اضافه کنید.

[...]
192.168.1.101:/var/unixmen_share/ /var/nfs_share/ nfs rw,sync,hard,intr 0 0

سیستم کلاینت را دوباره راه اندازی کنید و اشتراک خود را بررسی کنید. دایرکتوری های اشتراکی شما باید به صورت خودکار سوار شده باشند.

# mount

نمونه خروجی

[...]
192.168.1.101:/var/unixmen_share/ on /var/nfs_share type nfs (rw,vers=4,addr=192.168.1.101,clientaddr=192.168.1.100)

سرور NFSشما آماده بکار است.موفق باشید.