รำหà¸à¹à¸²à¹à¸ à¸à¸£à¸²à¸§à¸à¸µ à¹à¸£à¸à¹à¸£à¸µà¸¢à¸à¹à¸à¸µà¸¢à¸à¸à¸²à¸
สารบัญ:
- ข้อกำหนดเบื้องต้น
- ตั้งค่าเซิร์ฟเวอร์ NFS
- การติดตั้งเซิร์ฟเวอร์ NFS
- การสร้างระบบไฟล์
- การเอ็กซ์พอร์ตระบบไฟล์
- การกำหนดค่าไฟร์วอลล์
- ตั้งค่าไคลเอ็นต์ NFS
- การติดตั้งไคลเอนต์ NFS
- ติดตั้งระบบไฟล์
- ทดสอบการเข้าถึง NFS
- การถอนติดตั้งระบบไฟล์ NFS
- ข้อสรุป
Network File System (NFS) เป็นโปรโตคอลระบบไฟล์แบบกระจายที่ช่วยให้คุณแบ่งปันไดเรกทอรีระยะไกลผ่านเครือข่าย ด้วย NFS คุณสามารถติดตั้งรีโมตไดเร็กทอรีบนระบบของคุณและทำงานกับไฟล์บนเครื่องรีโมตราวกับว่าเป็นไฟล์โลคัล
โปรโตคอล NFS ไม่ได้เข้ารหัสตามค่าเริ่มต้นและไม่เหมือนกับ Samba แต่ไม่ได้ให้การรับรองความถูกต้องของผู้ใช้ การเข้าถึงเซิร์ฟเวอร์ถูก จำกัด โดยที่อยู่ IP ของลูกค้าหรือชื่อโฮสต์
ในบทช่วยสอนนี้เราจะอธิบายวิธีตั้งค่าเซิร์ฟเวอร์ NFSv4 บน Ubuntu 18.04 นอกจากนี้เราจะแสดงวิธีติดตั้งระบบไฟล์ NFS ให้กับลูกค้า
ข้อกำหนดเบื้องต้น
ตัวอย่างนี้สมมติว่าคุณมีเซิร์ฟเวอร์หนึ่งตัวที่ใช้ Ubuntu 18.04 และอีกเซิร์ฟเวอร์หนึ่งที่ใช้งาน Linux อื่น ๆ เซิร์ฟเวอร์และไคลเอนต์ควรสามารถสื่อสารกันผ่านเครือข่ายส่วนตัว หากผู้ให้บริการโฮสต์ของคุณไม่ได้ให้ที่อยู่ IP ส่วนตัวคุณสามารถใช้ที่อยู่ IP สาธารณะและกำหนดค่าไฟร์วอลล์เซิร์ฟเวอร์เพื่ออนุญาตการรับส่งข้อมูลบนพอร์ต
2049
จากแหล่งที่เชื่อถือได้เท่านั้น
เครื่องจักรในตัวอย่างนี้มี IP ดังต่อไปนี้:
NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range
ตั้งค่าเซิร์ฟเวอร์ NFS
เราจะเริ่มต้นด้วยการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ NFS
การติดตั้งเซิร์ฟเวอร์ NFS
รีเฟรชดัชนีแพ็กเกจและติดตั้งแพ็กเกจเซิร์ฟเวอร์ NFS:
sudo apt update
sudo apt install nfs-kernel-server
เมื่อการติดตั้งเสร็จสิ้นบริการ NFS จะเริ่มต้นโดยอัตโนมัติ
โดยค่าเริ่มต้นบน Ubuntu 18.04 NFS เวอร์ชัน 2 ถูกปิดใช้งาน เปิดใช้งานเวอร์ชัน 3 และ 4 คุณสามารถตรวจสอบได้โดยการเรียกใช้คำสั่ง
cat
ต่อไปนี้:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
ตอนนี้ NFSv2 ค่อนข้างเก่าและไม่มีเหตุผลที่จะเปิดใช้งาน
ตัวเลือกการกำหนดค่าเซิร์ฟเวอร์ NFS ตั้งอยู่ในไฟล์
/etc/default/nfs-kernel-server
และ
/etc/default/nfs-common
files การตั้งค่าเริ่มต้นเพียงพอในกรณีของเรา
การสร้างระบบไฟล์
เมื่อกำหนดค่าเซิร์ฟเวอร์ NFSv4 เป็นแนวปฏิบัติที่ดีคือการใช้ไดเรกทอรีราก NFS ทั่วโลกและผูกติดไดเรกทอรีจริงไปยังจุดเชื่อมต่อที่ใช้ร่วมกัน ในตัวอย่างนี้เราจะใช้
/srv/nfs4
Director เป็น NFS root
เราจะแบ่งปันสองไดเรกทอรี (
/var/www
และ
/opt/backups
) ด้วยการตั้งค่าการกำหนดค่าที่แตกต่างกันเพื่ออธิบายวิธีที่ NFS mounts สามารถกำหนดค่าได้ดียิ่งขึ้น
/var/www/
เป็นของผู้ใช้และกลุ่ม
www-data
และ
/opt/backups
เป็นของ
root
สร้างระบบไฟล์การส่งออกโดยใช้คำสั่ง
mkdir
:
sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www
กำหนดไดเรกทอรีจริง:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
หากต้องการทำให้การเชื่อมโยงเชื่อมโยงถาวรให้เปิดไฟล์
/etc/fstab
:
sudo nano /etc/fstab
และเพิ่มบรรทัดต่อไปนี้:
/ 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
ไฟล์
/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/nfs
การเข้าถึงไดรฟ์ข้อมูล NFS นี้อนุญาตให้ไคลเอนต์จากเครือข่ายย่อย
192.168.33.0/24
เท่านั้น จำเป็นต้องใช้ตัวเลือก
crossmnt
เพื่อแชร์ไดเรกทอรีที่เป็นไดเรกทอรีย่อยของไดเรกทอรีที่ส่งออก
ในบรรทัดที่สองแสดงวิธีระบุกฎการส่งออกหลายกฎสำหรับระบบไฟล์เดียว มันส่งออก
/srv/nfs4/backups
และอนุญาตให้เข้าถึงแบบอ่านทั้งหมดในช่วง
192.168.33.0/24
ทั้งอ่านและเขียนเข้าถึง
192.168.33.3
เท่านั้น ตัวเลือกการ
sync
บอกให้ NFS เขียนการเปลี่ยนแปลงไปยังดิสก์ก่อนตอบกลับ
บรรทัดสุดท้ายควรอธิบายตนเอง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกทั้งหมดที่มีให้พิมพ์
man exports
ในเทอร์มินัลของคุณ
บันทึกไฟล์และส่งออกการแชร์:
sudo exportfs -ra
คุณต้องรันคำสั่งด้านบนทุกครั้งที่คุณแก้ไขไฟล์
/etc/exports
หากมีข้อผิดพลาดหรือคำเตือนใด ๆ พวกเขาจะปรากฏบนเครื่อง
หากต้องการดูการส่งออกที่ใช้งานอยู่ในปัจจุบันและสถานะให้ใช้:
sudo exportfs -v
ผลลัพธ์จะรวมการแชร์ทั้งหมดด้วยตัวเลือก อย่างที่คุณเห็นมีตัวเลือกที่เราไม่ได้กำหนดในไฟล์
/etc/exports
สิ่งเหล่านี้เป็นตัวเลือกเริ่มต้นและหากคุณต้องการเปลี่ยนคุณจะต้องตั้งค่าตัวเลือกเหล่านั้นอย่างชัดเจน
/srv/nfs4/backups 192.168.33.3(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)
บน Ubuntu รูทสค
root_squash
จะถูกเปิดใช้งานตามค่าเริ่มต้น นี่เป็นหนึ่งในตัวเลือกที่สำคัญที่สุดเกี่ยวกับความปลอดภัยของ NFS จะป้องกันผู้ใช้รูทที่เชื่อมต่อจากไคลเอนต์เพื่อรับสิทธิ์รูทในการแชร์ที่เมาท์ มันจะแม็
UID
และ
GID
กับ
nobody
/
nogroup
UID
/
GID
เพื่อให้ผู้ใช้บนเครื่องไคลเอ็นต์มีการเข้าถึง NFS คาดว่าผู้ใช้และ ID กลุ่มของลูกค้าจะจับคู่กับผู้ใช้บนเซิร์ฟเวอร์ อีกทางเลือกหนึ่งคือการใช้คุณสมบัติการทำแผนที่ NFSv4 ที่แปล ID ผู้ใช้และกลุ่มเป็นชื่อและวิธีอื่น ๆ
แค่นั้นแหละ. ณ จุดนี้คุณได้ตั้งค่าเซิร์ฟเวอร์ NFS บนเซิร์ฟเวอร์ Ubuntu ของคุณ ตอนนี้คุณสามารถย้ายไปยังขั้นตอนถัดไปและกำหนดค่าไคลเอนต์และเชื่อมต่อกับเซิร์ฟเวอร์ NFS
การกำหนดค่าไฟร์วอลล์
สมมติว่าคุณกำลังใช้
UFW
เพื่อจัดการไฟร์วอลล์ของคุณเพื่ออนุญาตการเข้าถึงจากเครือข่ายย่อย
192.168.33.0/24
คุณต้องเรียกใช้คำสั่งต่อไปนี้:
sudo ufw allow from 192.168.33.0/24 to any port nfs
ในการตรวจสอบการเปลี่ยนแปลงให้ทำดังนี้
sudo ufw status
ผลลัพธ์ควรแสดงว่าทราฟฟิกบนพอร์ต
2049
ได้รับอนุญาต:
To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
ตั้งค่าไคลเอ็นต์ NFS
ในตอนนี้เซิร์ฟเวอร์ NFS ได้รับการตั้งค่าแล้วการแชร์จะถูกส่งออกในขั้นตอนต่อไปกำหนดค่าไคลเอนต์และติดตั้งระบบไฟล์ระยะไกล
นอกจากนี้คุณยังสามารถกำหนดใช้ NFS แชร์บนเครื่อง macOS และ Windows แต่เราจะเน้นไปที่ระบบ Linux
การติดตั้งไคลเอนต์ NFS
บนเครื่องไคลเอนต์เราจำเป็นต้องติดตั้งเฉพาะเครื่องมือที่จำเป็นในการเมาท์ระบบไฟล์ NFS ระยะไกล
-
ติดตั้งไคลเอนต์ NFS บน Debian และ Ubuntu
ชื่อของแพ็กเกจที่มีโปรแกรมสำหรับการเมาท์ระบบไฟล์ NFS บนการแจกแจงแบบเดเบียนคือ
nfs-common
หากต้องการติดตั้งให้เรียกใช้:sudo apt update
sudo apt install nfs-common
ติดตั้งไคลเอนต์ NFS บน CentOS และ Fedora
บน Red Hat และอนุพันธ์ติดตั้งแพ็คเกจ
nfs-utils
:sudo yum install nfs-utils
ติดตั้งระบบไฟล์
เราจะทำงานบนเครื่องไคลเอนต์ที่มี IP
192.168.33.110
ซึ่งมีการอ่านและเขียนการเข้าถึงระบบไฟล์
/srv/nfs4/www
และอ่านเฉพาะการเข้าถึงระบบไฟล์
/srv/nfs4/backups
สร้างสองไดเรกทอรีใหม่สำหรับจุดเชื่อมต่อ คุณสามารถสร้างไดเรกทอรีนี้ได้ทุกที่ที่คุณต้องการ
sudo mkdir -p /backups
sudo mkdir -p /srv/www
เมาท์ระบบไฟล์ที่เอ็กซ์พอร์ตด้วยคำสั่ง
mount
:
sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www
โดยที่
192.168.33.10
เป็น IP ของเซิร์ฟเวอร์ NFS นอกจากนี้คุณยังสามารถใช้ชื่อโฮสต์แทนที่อยู่ IP แต่ต้องได้รับการแก้ไขโดยเครื่องไคลเอนต์ โดยปกติจะทำโดยการแม็พชื่อโฮสต์กับ IP ในไฟล์
/etc/hosts
เมื่อติดตั้งระบบไฟล์ NFSv4 คุณต้อง ommit ไดเร็กทอรี root ของ NFS ดังนั้นแทนที่จะเป็น
/srv/nfs4/backups
คุณต้องใช้
/backups
ตรวจสอบว่าระบบไฟล์รีโมตถูกเมาต์สำเร็จโดยใช้คำสั่ง mount หรือ
df
:
df -h
คำสั่งจะพิมพ์ระบบไฟล์ที่เมาท์ทั้งหมด สองบรรทัดสุดท้ายคือการแบ่งใช้ที่เมาท์:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www
หากต้องการทำให้การเมาต์เป็นแบบถาวรเมื่อรีบูตให้เปิดไฟล์
/etc/fstab
:
sudo nano /etc/fstab
และเพิ่มบรรทัดต่อไปนี้:
/ etc / fstab
192.168.33.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0
ในการค้นหาข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกที่มีอยู่เมื่อติดตั้งระบบไฟล์ NFS ให้พิมพ์
man nfs
ในเทอร์มินัลของคุณ
ตัวเลือกอื่นสำหรับเมาท์ระบบไฟล์รีโมตคือการใช้เครื่องมือ
autofs
หรือเพื่อสร้าง systemd unit
ทดสอบการเข้าถึง 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
สมมติว่าคุณมีข้อมูล
www-data
ใช้บนเครื่องไคลเอนต์ที่มี
UID
และ
GID
เดียวกันกับเซิร์ฟเวอร์ระยะไกล (ซึ่งควรเป็นกรณีตัวอย่างเช่นหากคุณติดตั้ง nginx บนเครื่องทั้งสอง) คุณสามารถทดสอบเพื่อสร้างไฟล์ในฐานะผู้ใช้
www-data
ด้วย:
sudo -u www-data touch /srv/www/test.txt
คำสั่งจะไม่แสดงผลลัพธ์ซึ่งหมายความว่าไฟล์ถูกสร้างขึ้นสำเร็จ
หากต้องการตรวจสอบรายการไฟล์ในไดเร็กทอรี
/srv/www
:
ls -la /srv/www
ผลลัพธ์ควรแสดงไฟล์ที่สร้างขึ้นใหม่:
drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Jun 23 22:18 test.txt
การถอนติดตั้งระบบไฟล์ NFS
sudo umount /backups
หากกำหนดจุดเชื่อมต่อในไฟล์
/etc/fstab
ตรวจสอบให้แน่ใจว่าคุณลบบรรทัดหรือใส่ความคิดเห็นโดยเพิ่ม
#
ที่จุดเริ่มต้นของบรรทัด
ข้อสรุป
ในบทช่วยสอนนี้เราได้แสดงวิธีการตั้งค่าเซิร์ฟเวอร์ NFS และวิธีการติดตั้งระบบไฟล์ระยะไกลบนเครื่องไคลเอนต์ หากคุณกำลังใช้งาน NFS ในการผลิตและการแบ่งปันข้อมูลที่เหมาะสมเป็นความคิดที่ดีที่จะเปิดใช้งานการรับรองความถูกต้องของ Kerberos
เป็นทางเลือกแทน NFS คุณสามารถใช้ SSHFS เพื่อเมานต์รีโมตไดเร็กทอรีผ่านการเชื่อมต่อ SSH SSHFS ถูกเข้ารหัสโดยค่าเริ่มต้นและง่ายต่อการกำหนดค่าและใช้งาน
อย่าลังเลที่จะแสดงความคิดเห็นหากคุณมีคำถามใด ๆ
เทอร์มินัลติดตั้ง Ubuntu nfsMicrosoft Tweaks Ad หลังจากที่ Apple บ่น
เรื่องราว "Laptop Hunter" ยังคงมีน้อยลงเล็กน้อย Apple-bashing
วิธีการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ nfs บน centos 8
ในบทช่วยสอนนี้คุณจะทำตามขั้นตอนที่จำเป็นในการตั้งค่าเซิร์ฟเวอร์ NFSv4 บน CentOS 8 นอกจากนี้เราจะแสดงวิธีติดตั้งระบบไฟล์ NFS ให้กับลูกค้า
วิธีการเมาท์ nfs แชร์ใน linux
NFS เป็นโปรโตคอลระบบไฟล์แบบกระจายที่ช่วยให้คุณแบ่งปันไดเรกทอรีระยะไกลผ่านเครือข่าย ในบทช่วยสอนนี้เราจะแสดงวิธีติดตั้ง NFS ที่ใช้ร่วมกันบนระบบ Linux โดยอัตโนมัติ