การติดตั้ง NFS Share ใน Windows โดยใช้ไคลเอ็นต์ในตัว

/th/images/enable-nfs-client-on-windows-11-or-10.png

Windows เวอร์ชันใหม่มีไคลเอนต์ NFS ในตัว คุณลักษณะ Windows นี้ช่วยให้สามารถติดตั้งไดเรกทอรี NFS ได้โดยตรงจากโฮสต์ Linux หรืออุปกรณ์ NAS โดยให้การเข้าถึงไฟล์และโฟลเดอร์บนโวลุ่ม NFS จาก Windows File Explorer อย่างโปร่งใส คล้ายกับการเข้าถึงไดรฟ์ที่แมป SMB คู่มือนี้จะอธิบายวิธีเปิดใช้งานไคลเอนต์ NFS ใน Windows ติดตั้งโวลุ่มเครือข่าย NFS และจัดการการแมปผู้ใช้ Windows กับ Linux UID/GID

วิธีเปิดใช้งานไคลเอนต์ NFS บน Windows

มีไคลเอ็นต์ NFS ในตัวพร้อมใช้งานใน Windows ทุกรุ่นโดยเริ่มตั้งแต่ Windows 10 ช่วยให้ผู้ใช้สามารถเมานต์ไดรฟ์ข้อมูลเครือข่าย NFS ได้โดยตรง ตามค่าเริ่มต้น ไคลเอ็นต์ NFS จะไม่ถูกติดตั้ง คุณสามารถเปิดใช้งานได้ผ่านแผงควบคุมคุณลักษณะของ Windows: เรียกใช้คำสั่ง ( optionfeatures.exe ขยายบริการสำหรับ NFS และเปิดใช้งานไคลเอนต์สำหรับ NFS รวมถึงเครื่องมือการจัดการ

/th/images/enable-nfs-client-on-windows-11-or-10.png.webp

หรือคุณสามารถเปิดใช้งานคุณลักษณะเสริมของไคลเอนต์ NFS โดยใช้ PowerShell

บนระบบปฏิบัติการเดสก์ท็อป (Windows 10 และ 11):

เปิดใช้งาน WindowsOptionalFeature-FeatureName ServicesForNFS-ClientOnly, ClientForNFS-โครงสร้างพื้นฐาน-ออนไลน์-NoRestart

บนเซิร์ฟเวอร์ Windows:

ติดตั้ง-WindowsFeature NFS-ไคลเอนต์

/th/images/enable-windowsoptionalfeature-servicesfornfs-clien.png.webp

แสดงรายการการตั้งค่าไคลเอ็นต์ NFS ที่มีอยู่ใน Windows:

รับ-NfsClientConfiguration

/th/images/get-nfsclientconfiguration.png.webp

เมานต์ NFS Share บน Windows โดยใช้ File Explorer, PowerShell หรือ CMD

การติดตั้งไดรฟ์ข้อมูลเครือข่าย NFS ใน Windows สามารถทำได้ผ่านอินเทอร์เฟซกราฟิก Windows Explorer ซึ่งคล้ายกับการแมปโฟลเดอร์เครือข่ายที่ใช้ร่วมกันมาตรฐาน (แชร์ SMB) เลือกตัวเลือกแมปไดรฟ์เครือข่ายใน File Explorer ระบุเส้นทางเครือข่ายไปยังการแชร์ NFS (ใช้รูปแบบ UNC เช่น \\192.168.123.123\nfsshare ) และระบุอักษรไดรเวอร์ที่จะกำหนด

/th/images/mount-nfs-share-via-file-explorer-gui.png.webp

อย่างไรก็ตาม ในโหมดนี้ ไม่สามารถตั้งค่าตัวเลือกเพิ่มเติมสำหรับการติดตั้งการแบ่งใช้ NFS ได้

สะดวกกว่าในการติดตั้งการแชร์ NFS จากพรอมต์คำสั่งโดยใช้:

  • mount.exe คำสั่งคอนโซล
  • PSdrive ใหม่ PowerShell cmdlet

เม้าท์.exe ) เนื่องจากใน PowerShell ไฟล์

เมานต์

command เป็นนามแฝงสำหรับ

ใหม่-PSDrive

cmdlet.

เมื่อดำเนินการคำสั่ง mount จากพรอมต์ PowerShell หรือเทอร์มินัล Windows ตรวจสอบให้แน่ใจว่าคุณได้ระบุชื่อพร้อมกับนามสกุล (เช่น) เนื่องจากใน PowerShell คำสั่งเป็นนามแฝงสำหรับ cmdlet

/th/images/mount-command-is-an-alias-for-new-psdrive-cmdlet.png.webp

เปิดพรอมต์คำสั่ง (หรือคอนโซล PowerShell) ในฐานะผู้ใช้ปัจจุบัน อย่าเรียกใช้ในฐานะผู้ดูแลระบบ มิฉะนั้น ไดรฟ์ NFS ที่ติดตั้งจะไม่ปรากฏใน File Explorer ของผู้ใช้ (ดูโพสต์ “การเข้าถึงไดรฟ์ที่แมปเครือข่ายด้วยสิทธิ์ของผู้ดูแลระบบ” สำหรับรายละเอียดเพิ่มเติม)

รันคำสั่งต่อไปนี้เพื่อเมาต์การแชร์ NFS:

mount.exe-o และ \\192.168.123.123\nfsshare N:

/th/images/mount-exe-o-anon-nfs-share.png.webp

  • -o anon – ติดตั้งโฟลเดอร์ NFS โดยใช้ผู้ใช้ที่ไม่ระบุชื่อ
  • 192.168.123.123 - ชื่อ DNS หรือที่อยู่ IP ของเซิร์ฟเวอร์ NFS
  • /nfsshare – พาธในเครื่องไปยังไดเร็กทอรีบนเซิร์ฟเวอร์ NFS หากใช้โฮสต์ Linux ที่มี NFSv3 เป็นเซิร์ฟเวอร์ NFS ให้ระบุพาธโลคัลแบบเต็มไปยังไดเร็กทอรี NFS จากรูทของระบบไฟล์ ตัวอย่างเช่น: srv01:/mnt/nfs/public
  • N: – อักษรระบุไดรฟ์ที่คุณต้องการกำหนดให้กับโฟลเดอร์ที่แมป

เพื่อปรับปรุงความเข้ากันได้กับ Linux ซึ่งใช้ชื่อไฟล์และไดเร็กทอรีที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ซึ่งแตกต่างจาก Windows ให้เพิ่มตัวเลือก caseensitive=yes

หรือใช้ PowerShell ที่เทียบเท่ากับคำสั่งการเมานต์ NFS:

ใหม่-PSdrive-PSProvider FileSystem-Name N-Root \\192.168.123.123\nfsshare-Persist

/th/images/new-psdrive-mount-nfs-volume-using-powershell.png.webp

ใช้ตัวเลือก Persist เพื่อให้แน่ใจว่าการเชื่อมต่อไดเรกทอรี NFS จะกู้คืนโดยอัตโนมัติหลังจากรีบูตคอมพิวเตอร์ (คำสั่ง mount.exe ไม่มีตัวเลือกนี้)

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

/th/images/nfs-file-attributes-is-file-explorer-on-windows.png.webp

โปรดทราบว่าไฟล์บนเครือข่าย NFS แชร์กับอักษรซีริลลิก เอเชีย ยุโรปตะวันตก หรืออักขระที่ไม่ใช่ละตินอื่นๆ อาจไม่แสดงเลยหรืออาจปรากฏเป็นข้อความที่อ่านไม่ออก (mojibake) เนื่องจากไคลเอนต์ Microsoft NFS ในตัวมีค่าเริ่มต้นให้ใช้เพจรหัส ANSI ดั้งเดิมแทนที่จะเป็น Unicode สำหรับการแปลชื่อไฟล์ วิธีแก้ปัญหาชั่วคราว คุณสามารถเปิดใช้งานการรองรับ UTF-8 ใน Windows (ซึ่งยังอยู่ในช่วงเบต้า): เปิด intl.cpl-> การดูแลระบบ-> เปลี่ยนภาษาของระบบ-> ตรวจสอบตัวเลือก “ เบต้า: ใช้ Unicode UTF-8 สำหรับการรองรับภาษาทั่วโลก “

/th/images/beta-use-unicode-utf-8-for-worldwide-language-sup.png.webp

ยกเลิกการต่อเชื่อมการแชร์เครือข่าย NFS:

ลบ-PSDrive N

หรือ

umount.exe M:\

รันคำสั่ง mount.exe เพื่อแสดงตัวเลือกที่ติดตั้งไดเร็กทอรี NFS

/th/images/mount-exe-default-uid-user-id-and-gid-group-id.png.webp

เมื่อเชื่อมต่อโดยไม่ระบุชื่อกับเซิร์ฟเวอร์ NFS Windows จะใช้ UID=-2 และ GID=-2 ตามค่าเริ่มต้นเพื่อแมปผู้ใช้ปัจจุบันกับผู้ใช้บนเซิร์ฟเวอร์ NFS หากคุณต้องการใช้ Linux UID (ID ผู้ใช้) และ GID (ID กลุ่ม) เฉพาะสำหรับการติดตั้งไดรฟ์ข้อมูล NFS โดยไม่ระบุชื่อ คุณสามารถแทนที่ค่าเหล่านี้ได้ในพารามิเตอร์ AnonymousUid และ AnonymousGid ของคีย์รีจิสทรี HKLM\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default

ตัวอย่างเช่น ตัวเลือกต่อไปนี้จะบังคับให้ไคลเอ็นต์ NFS ใช้ UID=0 และ GID=0 (ผู้ใช้ Linux root) สำหรับการเชื่อมต่อแบบไม่ระบุชื่อแทนค่าเริ่มต้น -2

` reg เพิ่ม “HKLM\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default”/v AnonymousUid/t REG_DWORD/d 00000000/f

reg เพิ่ม “HKLM\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default”/v AnonymousGid/t REG_DWORD/d 00000000/f `

/th/images/change-anonymousuid-and-anonymousgid-in-the-regist.png.webp

หลังจากทำการเปลี่ยนแปลง ให้รีสตาร์ทเซอร์วิส NFS:

รีสตาร์ทบริการ nfsrdr, nfsclnt-Force

กำหนดค่าการแมปไคลเอ็นต์ NFS ของผู้ใช้ Windows กับผู้ใช้/กลุ่ม Linux

อย่างไรก็ตาม การเข้าถึง NFS โดยไม่ระบุชื่อไม่ปลอดภัย เป็นการดีกว่าที่จะกำหนดค่าการแมปผู้ใช้ Windows กับ UID และ GID ของผู้ใช้ Linux

หากต้องการเปิดใช้งานการแมปผู้ใช้ในโดเมน AD:

` ตั้งค่า NfsMappingStore-EnableADLookup $true

ชุด-NfsMappedIdentity-MappingStore AD-ชื่อผู้ใช้ “j.smith”-UserIdentifier 1,000-GroupIdentifier 100 `

ค่าพารามิเตอร์ uidnumber และ gidnumber ในหรือแก้ไขค่าและพารามิเตอร์ในแอตทริบิวต์ผู้ใช้ AD

ชุด-ADUser-identity j.smith-replace @{uidNumber="";gidNumber=""}

คุณสามารถรับ UID และ GID ของผู้ใช้ใน Linux ได้โดยใช้คำสั่ง:

` $ ชื่อผู้ใช้ '

บนเครื่องสแตนด์อโลน (ในกลุ่มงาน หรือเมื่อคุณไม่ต้องการใช้การแมป AD) คุณสามารถกำหนดค่าชื่อผู้ใช้ Windows กับการแมป Unix UID/GID ผ่านไฟล์ passwd และกลุ่มในไดเร็กทอรี C:\Windows\System32\drivers\etc

ตัวอย่างเช่น สำหรับผู้ใช้ภายในเครื่อง maxadm1:

เพิ่มลงในไฟล์ passwd:


user1:x:1000:100:maxadm1:C:\Users\maxadm1

กลุ่มไฟล์:


users:x:100:maxadm1

หากต้องการตรวจสอบการแมปของผู้ใช้ Windows เฉพาะกับ Linux UID/GID ให้ใช้คำสั่งต่อไปนี้:

รับ-NfsMappedIdentity-ชื่อบัญชี ผู้ใช้ 1-ผู้ใช้ประเภทบัญชี

/th/images/get-nfsmappedidentity-get-mapping-of-a-windows-u.png.webp

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

*️⃣ ลิงค์ที่มา:

ติดตั้ง WindowsFeature, การเข้าถึงไดรฟ์ที่แมปเครือข่ายด้วยสิทธิ์ผู้ดูแลระบบ, , , คุณลักษณะผู้ใช้ AD, ชุด ADUser,