از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه یک سرور NFS را نصب و پیکربندی کنیم CentOS 8
				سرفصلهای مطلب
 
شبکه فایل سیستم (NFS) یک پروتکل سیستم فایل توزیع شده است که به شما امکان می دهد دایرکتوری های راه دور را از طریق شبکه به اشتراک بگذارید. با NFS، می توانید دایرکتوری های راه دور را روی سیستم خود نصب کنید و با فایل های موجود در دستگاه راه دور به گونه ای کار کنید که گویی فایل های محلی هستند.
پروتکل NFS به طور پیش فرض رمزگذاری نشده است و برخلاف سامبا، احراز هویت کاربر را ارائه نمی دهد. دسترسی به سرور توسط آدرس های IP یا نام میزبان مشتریان محدود می شود.
در این آموزش، مراحل لازم برای راه اندازی سرور NFSv4 را طی خواهید کرد CentOS 8. همچنین به شما نشان خواهیم داد که چگونه یک فایل سیستم NFS را بر روی کلاینت نصب کنید.
پیش نیازها
ما فرض می کنیم که شما یک سرور در حال اجرا دارید CentOS 8 که در آن سرور NFS و سایر ماشینهایی را که به عنوان کلاینتهای NFS عمل میکنند راهاندازی میکنیم.  سرور و کلاینت ها باید بتوانند از طریق یک شبکه خصوصی با یکدیگر ارتباط برقرار کنند.  اگر ارائه دهنده هاست شما آدرس های IP خصوصی را ارائه نمی دهد، می توانید از آدرس های IP عمومی استفاده کنید و فایروال سرور را برای اجازه دادن به ترافیک در پورت پیکربندی کنید. 2049 فقط از منابع معتبر
ماشین های موجود در این مثال دارای IP های زیر هستند:
NFS Server IP: 192.168.33.148
NFS Clients IPs: From the 192.168.33.0/24 range
سرور NFS را راه اندازی کنید
این بخش روش نصب بسته های لازم، ایجاد و صادرات پوشه های NFS و پیکربندی فایروال را توضیح می دهد.
نصب سرور NFS
بسته “nfs-utils” ابزارهای NFS و دیمون ها را برای سرور NFS فراهم می کند. برای نصب آن دستور زیر را اجرا کنید:
sudo dnf install nfs-utils
پس از اتمام نصب، سرویس NFS را با تایپ کردن فعال و راه اندازی کنید:
sudo systemctl enable --now nfs-server
به طور پیش فرض، روشن است CentOS 8 نسخه NFS 3 و 4.x فعال هستند، نسخه 2 غیرفعال است.  NFSv2 اکنون بسیار قدیمی است و دلیلی برای فعال کردن آن وجود ندارد.  برای تایید آن موارد زیر را اجرا کنید cat
دستور:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
گزینه های پیکربندی سرور NFS تنظیم شده است /etc/nfsmount.conf و /etc/nfs.conf فایل ها.  تنظیمات پیش فرض برای آموزش ما کافی است.
ایجاد سیستم های فایل
هنگام پیکربندی سرور NFSv4، استفاده از دایرکتوری ریشه جهانی NFS و اتصال دایرکتوریهای واقعی به نقطه اتصال اشتراکگذاری، عمل خوبی است.  در این مثال از /srv/nfs4 دایرکتوری به عنوان ریشه NFS.
برای توضیح بهتر روش پیکربندی پایههای NFS، دو فهرست را به اشتراک میگذاریم (/var/www و /opt/backups) با تنظیمات پیکربندی مختلف.
را /var/www/ متعلق به کاربر و گروه است apache و /opt/backups متعلق به root.
فایل سیستم صادرات را با استفاده از mkdir
دستور:
sudo mkdir -p /srv/nfs4/{backups,www}
دایرکتوری های واقعی را سوار کنید:
sudo mount --bind /opt/backups /srv/nfs4/backupssudo mount --bind /var/www /srv/nfs4/www
برای دائمی کردن پایههای اتصال، ورودیهای زیر را به آن اضافه کنید /etc/fstab فایل:
sudo nano /etc/fstab
/opt/backups /srv/nfs4/backups  none   bind   0   0
/var/www     /srv/nfs4/www      none   bind   0   0
صادر کردن فایل سیستم ها
گام بعدی، تعریف سیستم های فایلی است که توسط سرور NFS صادر می شود، گزینه های اشتراک گذاری و کلاینت هایی که مجاز به دسترسی به آن سیستم های فایل هستند.  برای انجام این کار، را باز کنید /etc/exports فایل:
sudo nano /etc/exports
صادرات www و backups دایرکتوری ها و اجازه دسترسی فقط از مشتریان در 192.168.33.0/24 شبکه:
/srv/nfs4         192.168.33.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0)
/srv/nfs4/backups 192.168.33.0/24(ro,sync,no_subtree_check) 192.168.33.3(rw,sync,no_subtree_check)
/srv/nfs4/www     192.168.33.110(rw,sync,no_subtree_check)
خط اول شامل fsid=0 که دایرکتوری ریشه NFS را تعریف می کند /srv/nfs4.  دسترسی به این حجم NFS فقط برای مشتریان از 192.168.33.0/24 زیر شبکه  را crossmnt برای به اشتراک گذاشتن دایرکتوری هایی که زیرمجموعه های یک دایرکتوری صادراتی هستند، گزینه مورد نیاز است.
خط دوم روش تعیین چندین قانون صادرات را برای یک سیستم فایل نشان می دهد.  صادر می کند /srv/nfs4/backups دایرکتوری و فقط اجازه دسترسی خواندن به کل را می دهد 192.168.33.0/24 محدوده، و دسترسی خواندن و نوشتن به 192.168.33.3.  را sync گزینه به NFS می گوید قبل از پاسخ دادن، تغییرات را روی دیسک بنویسد.
خط آخر باید خود توضیحی باشد.  برای اطلاعات بیشتر در مورد همه گزینه های موجود، تایپ کنید man exports در شما terminal.
فایل را ذخیره کنید و اشتراکها را صادر کنید:
sudo exportfs -ra
هر بار که دستور را تغییر می دهید باید دستور بالا را اجرا کنید /etc/exports فایل.  اگر خطا یا اخطاری وجود داشته باشد، روی صفحه نمایش داده می شود terminal.
برای مشاهده صادرات فعال فعلی و وضعیت آنها از:
sudo exportfs -v
خروجی شامل تمام سهام با گزینه های آنها خواهد بود.  همانطور که می بینید، گزینه هایی نیز وجود دارد که ما در آن تعریف نکرده ایم /etc/exports فایل.  اینها گزینههای پیشفرض هستند و اگر میخواهید آنها را تغییر دهید، باید آن گزینهها را به صراحت تنظیم کنید.
/srv/nfs4/backups
		192.168.33.3(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/www 	192.168.33.110(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4     	192.168.33.0/24(sync,wdelay,hide,crossmnt,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/backups
		192.168.33.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)
root_squash  یکی از مهم ترین گزینه ها در مورد امنیت NFS است.  این مانع از دسترسی کاربران روت متصل به کلاینتها به اشتراکگذاریهای نصب شده میشود.  این نقشه ریشه خواهد داشت UID و GID به nobody/nogroup UID/GID.
برای دسترسی کاربران در ماشین های کلاینت، NFS انتظار دارد شناسه های کاربر و گروه مشتری با شناسه های روی سرور مطابقت داشته باشد. گزینه دیگر استفاده از ویژگی idmapping NFSv4 است که شناسه های کاربر و گروه را به نام و برعکس ترجمه می کند.
خودشه. در این مرحله، شما یک سرور NFS را بر روی خود راه اندازی کرده اید CentOS سرور اکنون می توانید به مرحله بعدی بروید و کلاینت ها را پیکربندی کنید و به سرور NFS متصل شوید.
پیکربندی فایروال
FirewallD راه حل پیش فرض فایروال در Centos 8 است.
سرویس NFS شامل قوانین از پیش تعریف شده برای اجازه دسترسی به سرور NFS است.
دستورات زیر برای همیشه اجازه دسترسی از 192.168.33.0/24 زیر شبکه:
sudo firewall-cmd --new-zone=nfs --permanentsudo firewall-cmd --zone=nfs --add-service=nfs --permanentsudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanentsudo firewall-cmd --reload
سرویس گیرندگان NFS را تنظیم کنید
اکنون که سرور NFS راهاندازی شده است و اشتراکها صادر میشوند، گام بعدی پیکربندی کلاینتها و سوار کردن سیستمهای فایل راه دور است.
همچنین میتوانید اشتراک NFS را روی دستگاههای macOS و Windows نصب کنید، اما ما روی سیستمهای لینوکس تمرکز خواهیم کرد.
نصب کلاینت NFS
در ماشین های مشتری، ابزارهای مورد نیاز برای نصب سیستم های فایل NFS راه دور را نصب کنید.
- 
کلاینت NFS را روی دبیان و اوبونتو نصب کنید
نام بسته ای که شامل برنامه هایی برای نصب فایل سیستم های NFS بر روی توزیع های مبتنی بر دبیان است
nfs-common. برای نصب آن را اجرا کنید:sudo apt updatesudo apt install nfs-common - 
کلاینت NFS را روی آن نصب کنید CentOS و فدورا
روی Red Hat و مشتقات آن نصب کنید
nfs-utilsبسته:sudo yum install nfs-utils 
نصب فایل سیستم ها
ما روی دستگاه مشتری با IP کار خواهیم کرد 192.168.33.110، که به خواندن و نوشتن دسترسی دارد /srv/nfs4/www سیستم فایل و دسترسی فقط خواندنی به /srv/nfs4/backups سیستم فایل
دو دایرکتوری جدید برای نقاط اتصال ایجاد کنید. شما می توانید این دایرکتوری ها را در هر مکانی که می خواهید ایجاد کنید.
sudo mkdir -p /backupssudo mkdir -p /srv/www
سیستم های فایل صادر شده را با mount
دستور:
sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backupssudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www
جایی که 192.168.33.148 IP سرور NFS است.  همچنین میتوانید به جای آدرس IP از نام میزبان استفاده کنید، اما باید توسط دستگاه مشتری قابل حل باشد.  این معمولاً با نگاشت نام میزبان به IP در داخل انجام می شود /etc/hosts
فایل.
هنگام نصب فایل سیستم NFSv4، باید دایرکتوری ریشه NFS را حذف کنید، بنابراین به جای /srv/nfs4/backups شما باید استفاده کنید /backups.
بررسی کنید که فایل سیستم های راه دور با استفاده از mount یا با موفقیت نصب شده اند df
دستور:
df -h
این دستور تمام فایل سیستم های نصب شده را چاپ می کند. دو خط آخر سهام سوار شده هستند:
...
192.168.33.148:/backups           9.7G  1.2G  8.5G  13% /backups
192.168.33.148:/www               9.7G  1.2G  8.5G  13% /srv/www
برای دائمی کردن مانت ها در راه اندازی مجدد، آن را باز کنید /etc/fstab فایل:
sudo nano /etc/fstab
و خطوط زیر را اضافه کنید:
192.168.33.148:/backups /backups   nfs   defaults,timeo=900,retrans=5,_netdev	0 0
192.168.33.148:/www /srv/www       nfs   defaults,timeo=900,retrans=5,_netdev	0 0
برای یافتن اطلاعات بیشتر در مورد گزینه های موجود هنگام نصب فایل سیستم NFS، تایپ کنید man nfs در شما terminal.
یکی دیگر از گزینههای نصب فایل سیستمهای راه دور، استفاده از این است autofs ابزار یا برای ایجاد یک واحد سیستم.
تست دسترسی NFS
بیایید دسترسی به اشتراکها را با ایجاد یک فایل جدید در هر یک از آنها آزمایش کنیم.
ابتدا سعی کنید یک فایل آزمایشی برای آن ایجاد کنید /backups دایرکتوری با استفاده از touch
دستور:
sudo touch /backups/test.txt
را /backup فایل سیستم به صورت فقط خواندنی صادر می شود و همانطور که انتظار می رود شما یک را مشاهده خواهید کرد Permission denied پیغام خطا:
touch: cannot touch ‘/backups/test’: Permission denied
در مرحله بعد، سعی کنید یک فایل آزمایشی برای آن ایجاد کنید /srv/www دایرکتوری به عنوان یک ریشه با استفاده از sudo
دستور:
sudo touch /srv/www/test.txt
باز هم خواهید دید Permission denied پیام
touch: cannot touch ‘/srv/www’: Permission denied
را /var/www دایرکتوری متعلق به apache کاربر، و این سهم دارد root_squash مجموعه گزینه، که کاربر ریشه را به nobody کاربر و nogroup گروهی که مجوز نوشتن به اشتراک راه دور را ندارد.
با فرض اینکه یک کاربر apache در دستگاه مشتری با همان وجود دارد UID و GID همانطور که در سرور راه دور (که برای مثال اگر آپاچی را روی هر دو ماشین نصب کرده باشید، باید اینطور باشد)، می توانید برای ایجاد یک فایل به عنوان کاربر آزمایش کنید. apache با:
sudo -u apache touch /srv/www/test.txt
دستور هیچ خروجی نشان نمی دهد، به این معنی که فایل با موفقیت ایجاد شده است.
برای تأیید آن، فایلهای موجود در فهرست را فهرست کنید /srv/www فهرست راهنما:
ls -la /srv/www
خروجی باید فایل جدید ایجاد شده را نشان دهد:
drwxr-xr-x 3 apache apache 4096 Jun 23 22:18 .
drwxr-xr-x 3 root     root     4096 Jun 23 22:29 ..
-rw-r--r-- 1 apache apache    0 Jun 23 21:58 index.html
-rw-r--r-- 1 apache apache    0 Jun 23 22:18 test.txt
باز کردن سیستم فایل NFS
اگر دیگر نیازی به اشتراکگذاری راه دور NFS ندارید، میتوانید آن را مانند هر سیستم فایل نصبشده دیگری با استفاده از دستور umount جدا کنید.  به عنوان مثال، برای unmount کردن /backup به اشتراک بگذارید که می دوید:
sudo umount /backups
اگر نقطه اتصال در تعریف شده باشد /etc/fstab فایل، مطمئن شوید که خط را حذف کرده اید یا با اضافه کردن آن، آن را نظر دهید # در ابتدای خط
نتیجه
در این آموزش، روش راه اندازی یک سرور NFS و روش نصب فایل سیستم های راه دور بر روی ماشین های کلاینت را به شما نشان داده ایم. اگر NFS را در تولید و به اشتراک گذاری داده های معقول پیاده سازی می کنید، ایده خوبی است که احراز هویت kerberos را فعال کنید.
به عنوان جایگزینی برای NFS، می توانید از SSHFS برای نصب دایرکتوری های راه دور بر روی یک اتصال SSH استفاده کنید. SSHFS به طور پیش فرض رمزگذاری شده است و پیکربندی و استفاده بسیار آسان تر است.
در صورت داشتن هر گونه سوال در کامنت بگذارید.
terminal
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-27 14:28:02
			
				
