ติดตั้งระบบไฟล์ผ่านอินเทอร์เน็ต


11

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

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

ความคิดใด ๆ ฉันสามารถเขียนซอฟต์แวร์ใหม่เพื่อถ่ายโอนไฟล์ได้ตลอดเวลา แต่นี่เป็นการแก้ไขที่ง่าย!

หมายเหตุ: เซิร์ฟเวอร์ในสำนักงานคือเซิร์ฟเวอร์ Ubuntu 12 ที่ทำงานบนเซิร์ฟเวอร์เสมือนในสภาพแวดล้อม windows hyper-v VPS พร้อมแอพพลิเคชั่นเว็บคือ Ubuntu 11.04


ความปลอดภัยเป็นปัญหาสำหรับไฟล์เหล่านี้หรือไม่
เอเดรียนคอร์นิช

rsync ผ่านงาน cron
Ignacio Vazquez-Abrams

@AdrianCornish - ไม่ใช่อย่างนั้นถึงแม้ว่าจะต้องการโซลูชันที่ปลอดภัยก็ตาม

คำตอบ:


12

ไม่มีใครได้กล่าวถึงsshfsเลย หากคุณอยู่ในลินุกซ์ distro ที่ทันสมัยและมีการเข้าถึง ssh ไปยังโฮสต์ระยะไกลมันง่ายเหมือน:

sshfs user@hostname:/remote/directory /local/directory

ประสิทธิภาพค่อนข้างยอมรับได้ (แต่ไม่เร็วเท่ากับการซิงค์แบบสตรีมเช่น rsync หากคุณต้องการไดเรกทอรีทั้งหมด)


ดูเหมือนว่าจะเป็นทางออกที่ดีที่สุดจนถึงตอนนี้คำถามที่พบบ่อยกล่าวว่า "ทรัพยากรสามารถเชื่อมต่อผ่านการเชื่อมต่อที่ช้าและไม่น่าเชื่อถือ (ไกล)" อีกหน้าเว็บหนึ่งบอกฉันว่า "sshfs -o เชื่อมต่อเซิร์ฟเวอร์อีกครั้ง: / path / to / mount" จะมีการเชื่อมต่อใหม่โดยอัตโนมัติหากการเชื่อมต่อลดลง

3

NFS ไม่ปลอดภัยโดยเนื้อแท้ มันจะเป็นตัวเลือกที่แย่มากสำหรับการเชื่อมต่อผ่านอินเทอร์เน็ต

ฉันชอบโพสต์ที่กล่าวถึง rsync แทนที่จะใช้ cron เพื่อเริ่มการถ่ายโอนฉันหวังว่าคุณจะสามารถรันงาน rsync จากรหัสของคุณที่จัดการการอัปโหลดไฟล์

เมื่อการอัปโหลดเสร็จสมบูรณ์ให้ซิงค์ไฟล์กับเซิร์ฟเวอร์ของพวกเขาเสร็จแล้ว

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

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

ในฐานะที่เป็นคนอื่นชี้ให้เห็นแล้ว rsync ถูกออกแบบมาเพื่อจัดการกลุ่มของไฟล์หรือลำดับชั้น (ขอบคุณตรวจสอบการสะกด) ดังนั้นจึงไม่ยากที่จะทำสำเร็จ


1
rsync ไม่มีปัญหาในการใช้ SSH เป็นการขนส่ง
Ignacio Vazquez-Abrams

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

1

NFS อาจไม่ปลอดภัยโดยเนื้อแท้ แต่นั่นไม่ใช่ความผิดของบริการ Telnet และ FTP นั้นมีความปลอดภัยโดยเนื้อแท้ แต่ทั้งคู่นั้นถูกใช้งานมานานหลายทศวรรษบนอินเทอร์เน็ตเปิด หากช่องสัญญาณ VPN ที่เข้ารหัสถูกสร้างขึ้นการขาดการเข้ารหัส NFS จะไม่เกี่ยวข้อง

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

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


1
> Telnet และ FTP นั้นมีความปลอดภัยโดยเนื้อแท้ แต่ทั้งคู่นั้นถูกใช้งานมานานหลายทศวรรษบนอินเทอร์เน็ตแบบเปิดแม้ว่าจริงแล้วฉันไม่คิดว่านี่เป็นประเด็นที่ดีเพราะโดยทั่วไปถือว่าเป็นวิธีปฏิบัติที่ไม่ดี ตอนนี้ Mozilla ยังแนะนำให้ใช้ http ที่ไม่ได้เข้ารหัสอีกด้วย
Ian D. Scott

0

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

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

sshจะเป็นอีกทางเลือกที่ปลอดภัยและจะต้องเปิดพอร์ตเดียวเท่านั้น ฉันเคยใช้สิ่งนี้ในอดีตระหว่างระบบ Windows และ Linux และทำงานได้ดีทั้งจากภายในแอพรวมถึงการจัดกำหนดการกระบวนการ

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


ฉันเข้าใจทางเลือกอื่น ๆ การติดตั้งระบบไฟล์จะเป็นทางออกที่ง่ายที่สุดฉันแค่ไม่รู้ว่า NFS มีความเสถียรบนอินเทอร์เน็ตอย่างไรเมื่อเทียบกับเครือข่ายภายใน จะเกิดอะไรขึ้นหากการเชื่อมต่อลดลง ฯลฯ หรือหากมีทางเลือกใหม่ที่ออกแบบมาเพื่อให้ทนทานต่อสิ่งนี้

0

การติดตั้ง NFS สามารถทำได้โดยใช้ automount ซึ่งจะลองเมานต์ต่อเมื่อเกิดข้อผิดพลาด แต่วิธีเดียวที่ฉันจะพิจารณาใช้ผ่านท่อคือการใช้ VPN หรือการเชื่อมต่อที่ปลอดภัยอื่น ๆ (จริง ๆ แล้วฉันจะไม่พิจารณา แต่ คุณได้รับการแก้ไขในความคิด)

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

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