ฉันจะเข้าถึงเซิร์ฟเวอร์ Ubuntu ที่ทำงานใน VirtualBox จากภายนอกได้อย่างไร


44

ฉันได้ติดตั้ง Ubuntu Server 12.04 LTS บนแล็ปท็อปของฉันผ่าน VirtualBox ฉันติดตั้ง LAMP, OpenSSH, Mail server แล้ว

ifconfigขณะที่ผมบันทึกไว้ในฉันวิ่ง มันให้ที่อยู่ inet กับฉันเป็น 192.168.0.3

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

คำตอบ:


58

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

เอกสารประกอบ VirtualBoxมีรายการโหมดเครือข่ายดังต่อไปนี้:

แต่ละอะแดปเตอร์เครือข่ายแปดตัวสามารถกำหนดค่าแยกกันเพื่อทำงานในหนึ่งในโหมดต่อไปนี้

ไม่ได้แนบ

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

การแปลที่อยู่เครือข่าย (NAT)

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

เครือข่ายเชื่อมโยง

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

เครือข่ายภายใน

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

เครือข่ายโฮสต์เท่านั้น

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

เครือข่ายทั่วไป

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

หากคุณต้องการเข้าถึงแขกของคุณจากภายนอกคุณจะต้องกำหนดค่าเครือข่ายบริดจ์ซึ่งจะให้ IP ของคุณเองในเครือข่ายท้องถิ่น การกำหนดค่าเสร็จสิ้นในการตั้งค่า VirtualBox ไม่ใช่ใน guest OS

เพื่อให้สามารถเข้าถึงเซิร์ฟเวอร์จากมือถือของคุณ (เช่นจากนอก LAN ของคุณ) หลังจากกำหนดค่าเครือข่ายคุณจะต้องตั้งค่าการส่งต่อพอร์ตบนโมเด็ม DSL ของคุณ


3
+1 สำหรับการกล่าวถึงการกำหนดค่า NAT เริ่มต้นและการแนะนำการเชื่อมโยง
Mark Mikofski

+1 สำหรับการสอนสิ่งใหม่ที่เป็นประโยชน์และเกี่ยวข้องกับสถานการณ์ของฉัน ขอบคุณ!
heypaleblue

ขอบคุณสำหรับการตอบกลับ แต่ฉันไม่จำเป็นต้องติดตั้ง DNS บนเซิร์ฟเวอร์ของฉันเพื่อให้ผู้อื่นสามารถเข้าถึงอินเทอร์เน็ตได้หรือไม่
Chins

@Chins: คุณไม่จำเป็นต้องติดตั้ง DNS บนเซิร์ฟเวอร์ของคุณแน่นอน ทุกสิ่งที่เรากล่าวถึงในตอนนี้ไม่เกี่ยวข้องกับ DNS เลย
Sergey

1
@Sergey - ฉันกำหนดค่า vm ของฉันด้วย Bridged Adapter ที่อยู่ IP ที่แสดงในการดำเนินการ ifconfig คือ 10.210.xx แต่ฉันยังไม่สามารถฉาบ vm ของฉันจากเครื่องโฮสต์ มีอะไรผิดปกติ?
Andy Dufresne

9

เพื่อให้ข้อมูลเพิ่มเติมเล็กน้อยเหล่านี้เป็นขั้นตอนจริงในการตั้งค่าเครือข่ายบริดจ์:

ในการเปิดใช้งานบริดจ์เครือข่ายสิ่งที่คุณต้องทำคือเปิดกล่องโต้ตอบการตั้งค่าของเครื่องเสมือนไปที่หน้า "เครือข่าย" และเลือก "บริดจ์เครือข่าย" ในรายการดรอปดาวน์สำหรับฟิลด์ "Attached to" สุดท้ายเลือกโฮสต์อินเตอร์เฟสที่ต้องการจากรายการที่ด้านล่างของหน้าซึ่งมีอินเตอร์เฟสเครือข่ายทางกายภาพของระบบของคุณ ตัวอย่างเช่นบน MacBook ทั่วไปสิ่งนี้จะช่วยให้คุณเลือกระหว่าง "en1: AirPort" (ซึ่งเป็นอินเทอร์เฟซแบบไร้สาย) และ "en0: Ethernet" ซึ่งแสดงถึงการเชื่อมต่อด้วยสายเคเบิลเครือข่าย

แหล่ง

ฉันรีสตาร์ทเครื่องเสมือนและสามารถเชื่อมต่อกับภายนอกได้


เก็บไว้ในใจบน Mac OS 10.1.11 อย่างน้อยตัวอย่างเช่นมันไม่ได้รับอนุญาตให้สร้างสะพานเชื่อมแด็ปเตอร์ WiFi โดยตรง แต่แรกต้องสร้างสะพานอะแดปเตอร์ 'ในการตั้งค่าเครือข่าย
twicejr

1
แต่สิ่งต่างๆเช่นที่อยู่ IP แบบคงที่ทำงานในโหมดบริดจ์ได้อย่างไร ทุกอย่างในการเชื่อมต่อเดียวกันแล้ว? เว็บเซิร์ฟเวอร์บน VM จะเป็น localhost แทนที่จะเป็นที่อยู่ IP หรือไม่ พอร์ตถูกส่งต่อ 1: 1 หรือไม่ ดังนั้นถ้า Tomcat อยู่บน VM ที่ localhost: 8080 เครื่องโฮสต์จะพิมพ์ localhost: 8080 ลงในเบราว์เซอร์เพื่อดู VM หรือไม่
anon58192932
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.