วิธีการโฮสต์การแชร์ NFS บน Linux

หากคุณเป็นผู้ใช้ Linux ที่มีทักษะปานกลางหรือเริ่มต้นกับเซิร์ฟเวอร์วิธีหลักในการเข้าถึงไฟล์คือ Samba หลายคนทำเช่นนี้เพราะดูเหมือนว่า NFS จะยากเพียงใด มีหลายขั้นตอนและสิ่งเล็ก ๆ น้อย ๆ ที่คุณจะต้องทำอย่างถูกต้องเมื่อเทียบกับบางอย่างเช่น Samba หรือแม้แต่ FTP ความจริงที่ว่าผู้ใช้ Linux จำนวนมากผ่าน NFS นั้นเป็นความอัปยศจริงเนื่องจากมีคุณสมบัติและการใช้งานที่ยอดเยี่ยมมากมาย นั่นเป็นเหตุผลที่เราตัดสินใจที่จะไม่ติดตั้งเซิร์ฟเวอร์ NFS เราจะแยกวิธีที่คุณสามารถโฮสต์การแชร์ NFS บน Linux และอธิบายอย่างละเอียดว่าคุณจะทำให้เซิร์ฟเวอร์ใช้งานได้อย่างไร

การติดตั้ง

โดยทั่วไปการแจกจ่าย Linux แต่ละครั้งจะเหมือนกันเครื่องมือ NFS ที่แตกต่างกันเล็กน้อย เพื่อให้ทุกอย่างใช้งานได้ให้เปิดเทอร์มินัลแล้วติดตั้งแพ็คเกจต่อไปนี้ในระบบของคุณ แพ็คเกจเหล่านี้จะติดตั้งเทคโนโลยีเริ่มต้นที่จำเป็นในการเรียกใช้เซิร์ฟเวอร์สร้างไฟล์กำหนดค่าเริ่มต้นและบางครั้งก็กำหนดค่าสิ่งอื่นด้วย

อูบุนตู

sudo apt install nfs-kernel-server

Fedora

sudo dnf install nfs-utils system-config-nfs

Arch Linux

sudo pacman -S nfs-utils

Debian

sudo apt-get install nfs-kernel-server

OpenSUSE

sudo zypper install nfs-kernel-server

ลินุกซ์อื่น ๆ

ระบบไฟล์ NFS ไคลเอ็นต์และเซิร์ฟเวอร์ไม่ใช่เทคโนโลยีใหม่. ด้วยเหตุนี้คุณจะสามารถใช้งานการกระจาย Linux ได้อย่างง่ายดาย หากระบบปฏิบัติการของคุณไม่ครอบคลุมให้ลองค้นหา“ nfs utils” ในตัวจัดการแพ็กเกจหรือโดยอ้างอิงถึง Wiki ของระบบปฏิบัติการของคุณ

บริการของ Systemd

การตั้งค่าเซิร์ฟเวอร์ NFS อาจแตกต่างกันขึ้นอยู่กับการกระจาย Linux ที่คุณใช้ ตัวอย่างเช่นหากคุณติดตั้งแพ็คเกจ Ubuntu หรือ Debian NFS บริการ systemd จะถูกตั้งค่าและกำหนดค่าให้คุณโดยอัตโนมัติ อย่างไรก็ตามสำหรับบางอย่างเช่น Arch Linux, SUSE หรือ Fedora และอื่น ๆ คุณจะต้องทำด้วยตนเอง นี่คือวิธีการเปิดใช้งานบริการเหล่านี้

หากคุณใช้งาน Arch Linux ให้เปิด SUSE หรือ Fedora (หรือการกระจาย Linux ใด ๆ ที่ไม่ได้ตั้งค่า systemd services สำหรับ NFS โดยอัตโนมัติ) เปิดเทอร์มินัลแล้วป้อนคำสั่งเหล่านี้

sudo systemctl enable rpcbind
sudo systemctl enable nfs-server
sudo service rpcbind start
sudo service nfs-server start

องค์ประกอบ

โดยการติดตั้งแพ็กเกจ NFS เซิร์ฟเวอร์นั้น"ตั้งค่า" แต่นั่นไม่ได้หมายความว่าผู้ใช้สามารถเข้าถึงได้ สำหรับสิ่งนี้ผู้ใช้จำเป็นต้องตั้งค่าการส่งออกตำแหน่งไฟล์และอื่น ๆ ในการเริ่มต้นให้รับรูทเชลล์ในเทอร์มินัล ทำสิ่งนี้ด้วย: sudo -s

ไฟล์ส่งออกสามารถจัดการกับไดเรกทอรีประเภทใดก็ได้ ในความเป็นจริงผู้ใช้สามารถเขียนตำแหน่งโดยตรงไปยังโฟลเดอร์ที่ต้องการแชร์ได้อย่างถูกต้องบนระบบไฟล์ ปัญหาของเรื่องนี้ก็คือมันเป็นความเสี่ยงด้านความปลอดภัยขนาดใหญ่ ปลอดภัยกว่าที่จะนำเนื้อหาของไดเรกทอรีหนึ่งและผูกเข้ากับไดเรกทอรีอื่น วิธีนี้ช่วยให้มั่นใจได้ว่าสิทธิ์สำหรับโฟลเดอร์และไดเรกทอรีใน / srv / โฟลเดอร์ไม่จำเป็นต้องได้รับการแก้ไขทำให้ทุกอย่างปลอดภัย

ตัวอย่างเช่นหากต้องการตั้งค่าการแบ่งปัน NFS ของโฟลเดอร์รูปภาพของผู้ใช้ให้ทำดังต่อไปนี้:

mkdir -p /srv/nfs/pictures /home/username/Pictures/
mount --bind /home/username/Pictures/ /srv/nfs/pictures/

ใช้ตัวอย่างด้านบนเพื่อสร้างการเมาท์ผูกเท่าที่คุณต้องการ โปรดทราบว่าไม่จำเป็นต้องเชื่อมต่อไดเรกทอรีจากโฟลเดอร์บ้าน ใช้ตัวอย่างนั้นแทนและรับความคิดสร้างสรรค์

ด้วยสิ่งที่แยกออกให้รันคำสั่งเหล่านี้เพื่อทำให้แท่งเมานต์:

echo "#NFS Pictures Bind Mount" >> /etc/fstab
echo "/home/username/Pictures/ /srv/nfs/pictures/ none bind 0 0" >> /etc/fstab

หมายเหตุ: คุณจะต้องเปลี่ยนคำสั่ง echo เพื่อให้เหมาะกับการติดตั้งของคุณเอง

เมื่อตั้งค่าการเมาท์แล้วก็ถึงเวลากำหนดค่าไฟล์เอ็กซ์ปอร์ต ไฟล์ส่งออกมีความสำคัญมากเนื่องจากเป็นที่ที่คุณจะต้องระบุการแชร์ไฟล์แต่ละครั้งเพื่อให้ NFS ใช้งาน

nano /etc/exports

ในไฟล์ส่งออกไปจนถึงด้านล่างและเขียนสิ่งต่อไปนี้:

/srv/nfs/pictures/ 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)

รู้สึกอิสระที่จะเขียนออกมาเป็นจำนวนมากเท่าที่คุณต้องการ โปรดทราบว่าการแบ่งปันแต่ละรายการต้องการเมานต์รายการ fstab และ / etc / exports ของตัวเอง

หมายเหตุ: บันทึกไฟล์เอ็กซ์พอร์ตด้วย CTRL + O

การอัพเดตการเปลี่ยนแปลง

เซิร์ฟเวอร์ NFS ทำงานและเริ่มทำงานไฟล์ต่าง ๆในสถานที่ที่เหมาะสมและทุกอย่างพร้อมใช้งาน สิ่งเดียวที่เหลือคือการอัปเดตการเปลี่ยนแปลงที่ทำกับไฟล์เอ็กซ์พอร์ต นี่เป็นขั้นตอนสำคัญเนื่องจากเซิร์ฟเวอร์ NFS จะไม่อัปเดตการเปลี่ยนแปลงที่ทำในขณะที่กำลังทำงานอยู่ ทำการเปลี่ยนแปลงด้วย: exportfs -rav

หากจำเป็นให้รีสตาร์ทกระบวนการเซิร์ฟเวอร์ภายใน systemd ตัวเองโดยใช้ systemctl restart คำสั่ง

sudo systemctl restart nfs-server.

ข้อสรุป

ระบบไฟล์เครือข่ายเป็นเครื่องมือที่มีประโยชน์ ด้วยมันผู้ใช้สามารถนำไฟล์และไดเรกทอรีระยะไกลและทำงานกับพวกเขาในพื้นที่เช่นเดียวกับฮาร์ดไดรฟ์ที่มีอยู่จริง นี่เป็นสิ่งที่ยอดเยี่ยมเนื่องจากเครื่องมือระบบไฟล์เครือข่ายที่แข่งขันกันไม่ได้ให้ความแพร่หลายและอิสระแก่ผู้ใช้

แม้จะมีประโยชน์ แต่คนส่วนใหญ่ก็ชอบใช้ Samba แทน สิ่งนี้เป็นที่เข้าใจได้เนื่องจากเมื่อเปรียบเทียบกับ Samba แล้ว NFS อาจเป็นเรื่องที่น่ารำคาญและน่าเบื่อในการตั้งค่า อย่างไรก็ตามหากคุณจัดการกับกระบวนการติดตั้งที่ยากลำบากมันคุ้มค่ากว่ามาก

ความคิดเห็น