Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เครื่องเสมือน

VirtualBox:การแชร์ไฟล์ใน NAT โดยไม่มีโฟลเดอร์แชร์

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

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

VirtualBox:การแชร์ไฟล์ใน NAT โดยไม่มีโฟลเดอร์แชร์

คำชี้แจงปัญหา

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

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

เมานต์ -t vboxsf <จุดเมานต์>
เมานต์:ประเภทระบบไฟล์ที่ไม่รู้จัก 'vboxsf'

วิธีแก้ปัญหา:การส่งต่อพอร์ต

VirtualBox ให้คุณกำหนดค่ากฎเครือข่ายขั้นสูงสำหรับเครื่อง NAT-ed ของคุณ โดยพื้นฐานแล้ว สิ่งนี้ไม่ได้แตกต่างจากวิธีการทำงานของเราเตอร์ของคุณเมื่อแปลที่อยู่ IP ในเครื่องเป็นที่อยู่สาธารณะ และในทางกลับกัน VirtualBox เป็นเราเตอร์ของคุณที่นี่ เรายังพบสิ่งนี้ด้วย Docker ซึ่งคุณสามารถแมปพอร์ตโฮสต์กับพอร์ตคอนเทนเนอร์ เพื่อให้คุณเข้าถึงระบบโลคัลของคุณได้อย่างมีประสิทธิภาพ แต่ความจริงแล้วคุณกำลังเชื่อมต่อกับคอนเทนเนอร์ หรือในกรณีนี้คือเครื่องเสมือน

อย่างไรก็ตาม เลือกเครื่องเสมือนของคุณ> การตั้งค่า ภายใต้ เครือข่าย สำหรับประเภทเครือข่าย NAT ให้ขยายส่วน ขั้นสูง ไปทางด้านล่าง จากนั้นคลิกที่การส่งต่อพอร์ต นี่จะเป็นการเปิดตารางที่คุณสามารถป้อนรายละเอียดที่จำเป็นได้ IP โฮสต์ - ที่อยู่ IP ของอินเทอร์เฟซที่คุณต้องการใช้ คุณอาจมีมากกว่าหนึ่งเครื่อง แต่วิธีแก้ปัญหาที่ง่ายที่สุดคือใช้ localhost (127.0.0.1) เพราะวิธีนี้จะใช้ได้แม้ว่าอินเทอร์เฟซอื่นๆ ของคุณจะหยุดทำงาน หรือคุณไม่มีการเชื่อมต่อภายนอกโฮสต์ พอร์ตโฮสต์ - จะเป็นที่อยู่ 'เสมือน' ที่คุณจะเชื่อมต่อ ตัวอย่างเช่น สำหรับ SSH คำใบ้คำใบ้ เราสามารถแมปพอร์ต 2222 ให้เป็นพอร์ตโฮสต์ได้ ซึ่งหมายความว่าหากคุณเชื่อมต่อกับพอร์ตนี้ คุณจะเชื่อมต่อกับ Guest IP ได้อย่างมีประสิทธิภาพที่พอร์ต Guest ที่เกี่ยวข้องซึ่งระบุไว้ในตาราง แท้จริงแล้ว อีกสองฟิลด์มีไว้สำหรับข้อมูลเครื่องเสมือน เช่นเดียวกับที่เราทำกับโฮสต์ของเรา

VirtualBox:การแชร์ไฟล์ใน NAT โดยไม่มีโฟลเดอร์แชร์

VirtualBox:การแชร์ไฟล์ใน NAT โดยไม่มีโฟลเดอร์แชร์

เชื่อมต่อกับ SSH

ตอนนี้เรามีการเชื่อมต่อที่แท้จริงแล้ว คุณอาจจะบอกว่าเดี๋ยวก่อน SSH สำหรับ Linux! ใช่ เนื่องจากเรามีปัญหาใน Linux ไม่มีปัญหาหน้าจอดำกับ Windows ดังนั้นการเร่งความเร็ว 3 มิติ + การเพิ่มแขกจาก ISO จะทำงานได้ดี เออร์โก, ลินุกซ์

ตอนนี้เราสามารถเชื่อมต่อจากโฮสต์ของเราไปยังแขกโดยใช้ SSH (บนพอร์ต 2222) แต่แน่นอน ขั้นตอนแรกคือต้องแน่ใจว่าเซิร์ฟเวอร์ opensh ได้รับการติดตั้งและทำงานในระบบปฏิบัติการเกสต์ เรายังจำเป็นต้องตรวจสอบให้แน่ใจว่าแขกไม่ได้ใช้ไฟร์วอลล์ที่ปิดกั้นการเชื่อมต่อขาเข้า ตอนนี้เราสามารถทดสอบสิ่งที่ให้

ssh -p 2222 [email protected]
ไม่สามารถสร้างความถูกต้องของโฮสต์ '[127.0.0.1]:2222 ([127.0.0.1]:2222)' ได้ ลายนิ้วมือของคีย์ ECDSA คือ SHA256:Eq0ow03sffLb7G49e3KNMgMrpVV/8wFfN6uicdxPnEL
แน่ใจไหมว่าต้องการเชื่อมต่อต่อ (ใช่/ไม่ใช่)

VirtualBox:การแชร์ไฟล์ใน NAT โดยไม่มีโฟลเดอร์แชร์

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

scp -P 2222 "file" [email protected]:/home/roger/"location"/
"file" 100% 8244KB 135.0MB/s 00:00

VirtualBox:การแชร์ไฟล์ใน NAT โดยไม่มีโฟลเดอร์แชร์

บทสรุป

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

ถ้าอย่างนั้น เราได้เรียนรู้ค่อนข้างมากในวันนี้ - เกี่ยวกับคุณสมบัติที่ขาดหายไปในการเพิ่มผู้เยี่ยมชมของ repo การใช้กฎเครือข่ายขั้นสูงและการส่งต่อพอร์ต SSH และ SCP และความแตกต่างเล็กน้อยในการใช้หมายเลขพอร์ต และแนวคิดอื่นๆ อีกสองสามข้อ นั่นจะเป็นทั้งหมด จำไว้ว่ามีวิธีแก้ไขปัญหาที่เรียบร้อยอยู่เสมอ หากคุณเต็มใจที่จะอดทนและมีระเบียบแบบแผน ดูแล.

ไชโย