วิธีที่ดีที่สุดในการติดตั้งโฟลเดอร์ระยะไกล


40

ฉันมี RasberryPi สองคนที่ทำงานเสียงดังเดเบียนและฉันต้องการที่จะติดตั้งโฟลเดอร์จากคอมพิวเตอร์ A บนคอมพิวเตอร์ B

อะไรคือวิธีที่ดีที่สุด (อย่างมีประสิทธิภาพมากที่สุด) ในการทำเช่นนี้?

ฉันสามารถทำได้ผ่าน SMB แต่สำหรับ windows ฉันคิดว่าต้องมีวิธีที่ดีกว่าในการแชร์ข้าม linux


คำตอบ:


31

คุณสามารถใช้สิ่งต่าง ๆ มากมายซึ่งตัวเลือกยอดนิยม ได้แก่ :

  • NFS
  • แซมบ้า / CIFS
  • SSHFS

ด้วยความง่ายดายในการติดตั้งฉันคิดว่าพวกเขาจะต้องใส่คำสั่งนี้ (ด้านบน: ง่ายที่สุด)

SSHFS

ผ่าน FUSE คุณสามารถเมานต์ระบบไฟล์ระยะไกลผ่าน ssh ฉันจะไม่พูดถึงวิธีการดังที่ Cristopher ได้อธิบายไว้เป็นอย่างดี เพิ่งทราบว่าในการติดตั้งไฟล์โดยอัตโนมัตินั้นจะต้องใช้งานอีกเล็กน้อย

แซมบ้า

มันจะช่วยให้คุณใช้เครื่อง Windows และ Unix เพื่อเข้าถึงโฟลเดอร์ระยะไกล หากไม่ใช่เรื่องใหญ่สำหรับคุณคุณอาจจะไม่ได้ประโยชน์จากมัน อย่างไรก็ตามมันง่ายที่จะติดตั้งอัตโนมัติใน init (เพียงป้อนค่าของคุณสมบัติที่/etc/fstabรวมusername=<your-samba-username>,password=<your-samba-password>อยู่ในคอลัมน์ตัวเลือก

NFS

มันจะช่วยให้คุณรับรองความถูกต้องเพียงแค่ผ่าน IP (ไม่มีชื่อผู้ใช้ = เร็วกว่าใช้เฉพาะภายในLAN ที่ไม่เป็นมิตรของคุณ) หรือผ่าน Kerberos Tickets (เจ็บปวดเกินไปสำหรับ Raspberries เพียงสองตัว แต่มีประโยชน์ในสภาพแวดล้อมขององค์กร)

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

นอกจากนี้การติดตั้งเพียงแค่คุณไว้วางใจเครือข่ายของคุณก็ไม่เจ็บปวดเช่นกัน คุณมีการสนับสนุนใน automount /etc/fstabเกินไปและคุณไม่ต้องใส่ข้อมูลที่สำคัญ (เช่นชื่อผู้ใช้หรือรหัสผ่าน) และถ้าคุณมีชื่อผู้ใช้ของคุณ syncrhronized (เดียวกัน/etc/passwdและ/etc/groupไฟล์) คุณสามารถใช้สิทธิ์ POSIX ปกติชุดเครื่องมือ ( chown, chgrpและchmod)


ฉันใช้ Pi ของฉันเป็นเซิร์ฟเวอร์ NFS กับดิสก์ที่ส่วนใหญ่เป็นภาพยนตร์และสื่ออื่น ๆ ของฉัน (เช่นไม่ใช่สิ่งที่สำคัญต่อระบบไม่ใช่ '/ home /' หรืออะไรทำนองนั้น) NFS ช่วยให้ฉันดูภาพยนตร์โดยไม่ต้องคัดลอกไปยังไดรฟ์ในเครื่องก่อน แต่เมื่อเขียนไฟล์ไปยังดิสก์ NFS ฉันต้องการใช้ rsync ฉันจึงติดตั้งดิสก์ NFS ของฉันแบบอ่านอย่างเดียวและเขียนข้อมูลผ่าน SSH (ด้วย rsync) สิ่งนี้ยังหยุดฉันจากการ rsyncing โดยไม่ตั้งใจไปยังดิสก์ที่ติดตั้ง NFS (ซึ่งไม่มีประสิทธิภาพมาก)
zrajm

@zrajm วิธีการติดดิสก์ของคุณบน pi?
FutuToad

arisu:/mnt/ytra /mnt/ytra nfs soft,ro,intr 0 2
zrajm

แซมบ้าอาจสร้างความสับสนให้กับแอพพลิเคชั่นยูนิกซ์บางอย่างโดยเฉพาะอย่างยิ่งการอนุญาตหรือสิ่งที่stat()ส่งคืนเช่นสิ่งที่ขึ้นอยู่กับnlinkจำนวนที่ CIFS ไม่มีความเห็น SSHFS ฉันไม่ค่อยประทับใจเท่าไหร่เพราะมันทำงานบนสวิตซ์บริบทใน fileserver สูงมากและไม่รองรับการล็อคที่จำเป็นที่โปรแกรมภายใน บริษัท ต้องการ ดังนั้น NFS ...
thrig

38

SSHFS นั้นยอดเยี่ยม มันสามารถติดไดเรกทอรีระยะไกลในไดเรกทอรีท้องถิ่นที่มีฟิวส์ คำสั่งด้านล่างใช้#เพื่อระบุว่าคำสั่งถูกเรียกใช้งานเป็นrootขณะที่$แสดงถึงการดำเนินการในฐานะผู้ใช้ทั่วไป เนื่องจากต้องการซอฟต์แวร์ FUSE อันดับแรกตรวจสอบให้แน่ใจว่ามีและเปิดใช้งานอยู่

หนึ่งในlsmodและgrep คำสั่งด้านล่างสามารถเปิดเผยได้ว่ามีการโหลดซอฟต์แวร์และพร้อมใช้งานหรือไม่ ผลลัพธ์จากคำสั่งทั้งสองบ่งชี้ว่าfuseพร้อมใช้งาน

# lsmod | grep fuse
$ grep -i fuse /lib/modules/$(uname -r)/modules.builtin

หากไม่มีผลลัพธ์จากคำสั่งใด ๆ ให้ลองโหลดโมดูลเคอร์เนลโดยไม่ต้องรีบูตโดยใช้modprobeและตรวจสอบอีกครั้ง

# modprobe fuse
# lsmod fuse

apt-getถ้าโหลดโมดูลล้มเหลวติดตั้งซอฟต์แวร์ที่มี

# apt-get install fuse

ตรวจสอบอีกครั้งหลังการติดตั้ง

# modprobe fuse
# lsmod fuse

FUSE จะต้องติดตั้งและใช้งานก่อนที่จะดำเนินการต่อ


/dev/fuseตรวจสอบสิทธิ์ของ สิทธิ์ควรให้บัญชีผู้ใช้ปกติของคุณด้วยการอ่านและเขียน ข้ามส่วนนี้หากคุณได้พิจารณาแล้วว่าบัญชีผู้ใช้ปกติของคุณมีการอ่านและเขียนสิทธิ์/dev/fuseแล้ว

# ls -l /dev/fuse

ผลลัพธ์อาจเป็นดังนี้:

crw-rw-rw- 1 root root (all users can read/write)
crw------- 1 root fuse (only root can read/write)
crw-rw---- 1 root fuse (root and members of fuse group can read/write)

ในปี 2013 Debian ฉันสร้างขึ้น/dev/fuseด้วย0600สิทธิ์ของเจ้าของเจ้าของกลุ่มroot fuseฉันต้องการให้กลุ่มฟิวส์ใช้อุปกรณ์และเพิ่มบัญชีผู้ใช้ปกติของฉันไปยังกลุ่มดังที่แสดงด้านล่าง

# usermod -aG fuse $your_regular_user_account
# chmod 0660 /dev/fuse

หากต้องการความเป็นสมาชิกกลุ่มใหม่ให้ออกจากระบบและลงชื่อเข้าใช้อีกครั้งเพื่อเป็นสมาชิกของกลุ่ม


ถัดไปติดตั้งsshทั้งสองด้านดังนี้

# apt-get install ssh

คำตอบนี้ถูกเขียนขึ้นสำหรับ Debian แต่บน Ubuntu 18.x อย่างน้อยopenssh-client, fuseและแพคเกจอื่น ๆ ไม่กี่เป็นส่วนหนึ่งของอูบุนตูsshfsแพคเกจ sshfsซอฟต์แวร์เป็นสิ่งจำเป็นในฝั่งไคลเอ็นต์ แต่มันสามารถติดตั้งได้ทั้งสองด้านได้ถ้าต้องการ หนึ่งในแพ็คเกจที่ขึ้นต่อกันคือfuseแต่ตัวติดตั้งข้ามซอฟต์แวร์ที่ติดตั้งไว้แล้ว

# Ubuntu 18.x: 
# apt-get install sshfs

ด้วยfuseและsshพร้อมใช้งานและได้รับอนุญาตให้ใช้อุปกรณ์/dev/fuseสร้างจุดเชื่อมต่อสำหรับระบบไฟล์ระยะไกล และติดตั้งระบบไฟล์รีโมตนั้นแบบโลคัลดังต่อไปนี้

# mkdir /mnt/$directory_name
# chown $your_user:$group /mnt/$directory_name/
$ sshfs $remote_username@$remote_server_name: /mnt/$directory_name/

หากต้องการเมาต์ไดเร็กทอรีอื่นที่ไม่ใช่ home ให้ระบุไว้หลังเครื่องหมายโคลอน

$ sshfs $remote_username@$remote_server_name:/remote/directory /mnt/$directory_name

fusermountหากต้องการยกเลิกการใช้

fusermount -u /mnt/$directory_name

หากคุณมีเครื่อง Windows ก็สามารถใช้ SSHFS กับwin-sshfsได้เช่นกัน ซอฟต์แวร์นี้จะ "แมปไดรฟ์" กับ SSHFS เพื่อให้คุณสามารถมีตัวอักษรไดรฟ์ Windows ที่มีไดเรกทอรีระยะไกล


1
คุณสามารถปรับปรุงความเร็วประสิทธิภาพของ SSHFS ได้อย่างมีนัยสำคัญโดยใช้ตัวเลือกเพิ่มเติม ดูบทความนี้สำหรับข้อมูลเพิ่มเติมและการเปรียบเทียบความเร็วกับ NFS: admin-magazine.com/HPC/Articles/Sharing-Data-with-SSHFS
mixenzo

เฮ้ - ฉันพยายามใช้คำแนะนำของคุณ (ปรับเป็นyum install fuse-sshfs.x86_64) แต่เมื่อฉันทำmodprobe fuseมันไม่ได้สร้างกลุ่มฟิวส์สำหรับฉัน ดังนั้นเมื่อผมทำผมusermod -a -G fuse [your-user] usermod: group 'fuse' does not existคุณช่วยได้ไหม ขอบคุณล่วงหน้า
สะเทินน้ำสะเทินบก

lsmod | grep fuseไม่ส่งคืนผลลัพธ์และฉันมี/dev/fusem ซึ่งเป็นเจ้าของโดย root คุณบอกว่าฉันไม่เป็นไรถ้าไม่มีกลุ่ม?
สัตว์สะเทินน้ำสะเทินบก

ใช่ฉันได้รับcrw-rw-rw-. 1 root root 10, 229 Nov 21 15:32 /dev/fuse
สัตว์สะเทินน้ำสะเทินบก

หลังจาก # apt-get ติดตั้ง fuse-utils sshfs ฉันได้รับ "ไม่สามารถระบุตำแหน่งฟิวส์ - utils" มีความคิดอะไรไหม (Ubuntu 18.04.01)
Kvothe

7

ใน linux คุณจะเลือกสำหรับNFS (ดูที่บทความเกี่ยวกับ archwiki ซึ่งอาจมีข้อมูลที่เกี่ยวข้องสำหรับการแจกจ่ายของคุณด้วย) มันมีคุณสมบัติขั้นสูงมากขึ้นแล้ว samba หากคุณต้องการล็อคไฟล์ (เช่นเกิดพร้อมกัน) คุณควรมองเข้าไปที่ lockd เช่นกันเพราะ nfs ไม่มีสถานะ อย่างไรก็ตามการกำหนดค่าได้ยากกว่า smb ฉันขอแนะนำให้ลองทั้ง samba และ nfs เพื่อดูว่าอันไหนที่เหมาะกับความต้องการของคุณ


1

ฉันเคยใช้ทั้ง SFTP net drive และ ExpanDrive ในอดีตและฉันสามารถบอกคุณได้ว่าsshfs มีประสิทธิภาพดีกว่าทั้งสองโดยไม่มีคำถาม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.