รำหà¸à¹à¸²à¹à¸ à¸à¸£à¸²à¸§à¸à¸µ à¹à¸£à¸à¹à¸£à¸µà¸¢à¸à¹à¸à¸µà¸¢à¸à¸à¸²à¸
สารบัญ:
- ข้อกำหนดเบื้องต้น
- ตั้งค่าเซิร์ฟเวอร์ NFS
- การติดตั้งเซิร์ฟเวอร์ NFS
- การสร้างระบบไฟล์
- การเอ็กซ์พอร์ตระบบไฟล์
- การกำหนดค่าไฟร์วอลล์
- ตั้งค่าไคลเอ็นต์ NFS
- การติดตั้งไคลเอนต์ NFS
- ติดตั้งระบบไฟล์
- ทดสอบการเข้าถึง NFS
- การถอนติดตั้งระบบไฟล์ NFS
- ข้อสรุป
Network File System (NFS) เป็นโปรโตคอลระบบไฟล์แบบกระจายที่ช่วยให้คุณแบ่งปันไดเรกทอรีระยะไกลผ่านเครือข่าย ด้วย NFS คุณสามารถติดตั้งรีโมตไดเร็กทอรีบนระบบของคุณและทำงานกับไฟล์บนเครื่องรีโมตราวกับว่าเป็นไฟล์โลคัล
โปรโตคอล NFS ไม่ได้ถูกเข้ารหัสโดยค่าเริ่มต้นและต่างจาก Samba ซึ่งไม่ได้ให้การรับรองความถูกต้องของผู้ใช้ การเข้าถึงเซิร์ฟเวอร์ถูก จำกัด โดยที่อยู่ 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 และ daemons สำหรับเซิร์ฟเวอร์ 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/nfs.conf
และ
/etc/nfs.conf
การตั้งค่าเริ่มต้นนั้นเพียงพอสำหรับการสอนของเรา
การสร้างระบบไฟล์
เมื่อกำหนดค่าเซิร์ฟเวอร์ NFSv4 เป็นแนวปฏิบัติที่ดีคือการใช้ไดเรกทอรีราก NFS ทั่วโลกและผูกติดไดเรกทอรีจริงไปยังจุดเชื่อมต่อที่ใช้ร่วมกัน ในตัวอย่างนี้เราจะใช้
/srv/nfs4
Director เป็น NFS root
เพื่ออธิบายวิธีการติดตั้ง 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/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
ส่งออกไดเรกทอรี
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(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 คาดว่าผู้ใช้และ ID กลุ่มของลูกค้าจะจับคู่กับผู้ใช้บนเซิร์ฟเวอร์ อีกทางเลือกหนึ่งคือการใช้คุณสมบัติการทำแผนที่ NFSv4 ที่แปล ID ผู้ใช้และกลุ่มเป็นชื่อและวิธีอื่น ๆ
แค่นั้นแหละ. ณ จุดนี้คุณได้ตั้งค่าเซิร์ฟเวอร์ NFS บนเซิร์ฟเวอร์ CentOS ของคุณ ตอนนี้คุณสามารถย้ายไปยังขั้นตอนถัดไปและกำหนดค่าไคลเอนต์และเชื่อมต่อกับเซิร์ฟเวอร์ NFS
การกำหนดค่าไฟร์วอลล์
FirewallD เป็นโซลูชันไฟร์วอลล์เริ่มต้นบน Centos 8
บริการ NFS มีกฎที่กำหนดไว้ล่วงหน้าเพื่ออนุญาตการเข้าถึงเซิร์ฟเวอร์ NFS
คำสั่งต่อไปนี้จะอนุญาตการเข้าถึงอย่างถาวรจากเครือข่ายย่อย
192.168.33.0/24
:
sudo firewall-cmd --new-zone=nfs --permanent
sudo firewall-cmd --zone=nfs --add-service=nfs --permanent
sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent
sudo firewall-cmd --reload
ตั้งค่าไคลเอ็นต์ 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.148:/backups /backups
sudo 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
และเพิ่มบรรทัดต่อไปนี้:
/ 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
ในเทอร์มินัลของคุณ
ตัวเลือกอื่นสำหรับเมาท์ระบบไฟล์รีโมตคือการใช้เครื่องมือ
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
ไดเร็กทอรี
/var/www
เป็นเจ้าของโดยผู้ใช้
apache
และการแชร์นี้มีชุดตัวเลือก
root_squash
ซึ่งจะจับคู่ผู้ใช้รูทกับผู้ใช้ที่
nobody
และกลุ่ม
nogroup
ที่ไม่มีสิทธิ์ในการเขียนไปยังรีโมตแชร์
สมมติว่ามี
apache
ผู้ใช้อยู่ในเครื่องไคลเอนต์ที่มี
UID
และ
GID
เดียวกันกับเซิร์ฟเวอร์ระยะไกล (ซึ่งควรเป็นกรณีตัวอย่างเช่นถ้าคุณติดตั้ง apache บนเครื่องทั้งสอง) คุณสามารถทดสอบเพื่อสร้างไฟล์เป็น
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
sudo umount /backups
หากกำหนดจุดเชื่อมต่อในไฟล์
/etc/fstab
ตรวจสอบให้แน่ใจว่าคุณลบบรรทัดหรือใส่ความคิดเห็นโดยเพิ่ม
#
ที่จุดเริ่มต้นของบรรทัด
ข้อสรุป
ในบทช่วยสอนนี้เราได้แสดงวิธีการตั้งค่าเซิร์ฟเวอร์ NFS และวิธีการติดตั้งระบบไฟล์ระยะไกลบนเครื่องไคลเอนต์ หากคุณกำลังใช้ NFS ในการผลิตและการแบ่งปันข้อมูลที่เหมาะสมเป็นความคิดที่ดีที่จะเปิดใช้งานการรับรองความถูกต้องของ Kerberos
เป็นทางเลือกแทน NFS คุณสามารถใช้ SSHFS เพื่อเมานต์รีโมตไดเร็กทอรีผ่านการเชื่อมต่อ SSH SSHFS ถูกเข้ารหัสโดยค่าเริ่มต้นและง่ายต่อการกำหนดค่าและใช้งาน
อย่าลังเลที่จะแสดงความคิดเห็นหากคุณมีคำถามใด ๆ
centos nfs เมาท์เทอร์มินัลMicrosoft Tweaks Ad หลังจากที่ Apple บ่น
เรื่องราว "Laptop Hunter" ยังคงมีน้อยลงเล็กน้อย Apple-bashing
วิธีการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ nfs บน Ubuntu 18.04
Network File System (NFS) เป็นโปรโตคอลระบบไฟล์แบบกระจายที่ช่วยให้คุณแบ่งปันไดเรกทอรีระยะไกลผ่านเครือข่าย ในบทช่วยสอนนี้เราจะอธิบายวิธีตั้งค่าเซิร์ฟเวอร์ NFSv4 บน Ubuntu 18.04
วิธีการเมาท์ nfs แชร์ใน linux
NFS เป็นโปรโตคอลระบบไฟล์แบบกระจายที่ช่วยให้คุณแบ่งปันไดเรกทอรีระยะไกลผ่านเครือข่าย ในบทช่วยสอนนี้เราจะแสดงวิธีติดตั้ง NFS ที่ใช้ร่วมกันบนระบบ Linux โดยอัตโนมัติ