ฉันจะเข้าถึงเว็บเซิร์ฟเวอร์บน virtualbox จากเครื่องโฮสต์ได้อย่างไร [ปิด]


29

ฉันมีเครื่องที่ใช้ Windows Vista ซึ่ง VirtualBox ใช้งาน Ubuntu อยู่

ในอูบุนตูฉันใช้งานเว็บเซิร์ฟเวอร์ตามที่อยู่http://127.0.0.1:3000/

ฉันจะเข้าถึงที่อยู่นี้จากเครื่องโฮสต์ของฉัน (กล่องหน้าต่าง) ได้อย่างไร


ตัวเลือกที่ง่ายที่สุดคือการใช้การส่งต่อพอร์ต สามารถกำหนดค่าภายใต้การตั้งค่า -> เครือข่าย ตรวจสอบลิงค์
สปาร์ตัน

หากคุณกำหนดค่าเว็บเซิร์ฟเวอร์ของแขกของคุณจริงๆที่ 127.0.0.1 คุณจะไม่สามารถเข้าถึงได้จากด้านนอกของแขก localhost / 127.0.0.1 เป็นอะแดปเตอร์ย้อนกลับ (ในหน่วยความจำ) และไม่จำเป็นต้องติดตั้งการ์ดเครือข่ายเพื่อให้ทำงานได้อย่างถูกต้อง หากคุณเปลี่ยน ip ของเว็บเซิร์ฟเวอร์เป็นอย่างอื่นนอกเหนือจากลูปแบ็คคำตอบด้านล่างจะช่วยได้
Mladen B.

คำตอบ:


28

คุณสามารถเปลี่ยนโหมดเครือข่ายแขกจาก NAT เป็น Bridged เพียงแค่ปิดแขก Ubuntu ของคุณไปที่หน้าการตั้งค่าใน VirtualBox เลือกประเภทเครือข่ายและเปลี่ยนกล่องรายการ Attached to จาก NAT เป็น Bridged Mode

แก้ไข:

หลังจากทำตามขั้นตอนข้างต้นรีสตาร์ท Ubuntu และ IP ที่จัดสรรจะแสดงบนหน้าจอต้อนรับหลังจากโหลด เช่นในข้อความต้อนรับควรพูดดังนี้:

ที่อยู่ IP สำหรับ eth0: 192.168.1.3

ใช้ที่อยู่นี้ในแถบเบราว์เซอร์ของเครื่องโฮสต์ตามด้วยพอร์ตที่คุณใช้ หากเป็นอย่างอื่นนอกเหนือจากพอร์ต 80 เช่นถ้าคุณตั้งค่าให้ใช้พอร์ต 666 ที่อยู่จะเป็น 192.168.1.3:666

อีกวิธีในการค้นหา IP คือการเชื่อมต่อกับเซิร์ฟเวอร์ HTTP ในตัวเราเตอร์ของคุณและค้นหาการตั้งค่า LAN ทุกเครื่องในเครือข่ายควรแสดงรายการโดยชื่อโฮสต์และ IP ที่เราเตอร์ของฉันคนอื่น ๆ ส่วนใหญ่ที่ฉันเคยมีคุณสามารถทำได้โดยพิมพ์ 192.168.1.1 ในแถบที่อยู่ ถ้านั่นล้มเหลวลองที่อยู่เดียวกันที่พอร์ต 81 ถ้าล้มเหลวอ่านด้วยตนเอง


แต่คุณจะทราบได้อย่างไรว่าที่อยู่ IP คืออะไร ขอบคุณ
SSH นี้

ที่จะทำงาน แต่ตัวเลือกของโฮสต์เท่านั้นไม่เปิดเผย vm ที่เครือข่ายองค์กร
Carlos Garcia

2
ฉันเป็นคนเดียวที่นี่ที่คิดว่าจุดสิ้นสุดของผู้เข้าพักที่ 127.0.0.1 สามารถเข้าถึงได้จากภายในแขก (นั่นคือจุดของ localhost) หรือไม่ ไม่ควรมีวิธีเข้าถึงจุดปลายชนิดนั้นจากสิ่งใด ๆ นอกเครื่องแขก (เพราะเป็นอะแดปเตอร์แบบย้อนกลับจึงไม่จำเป็นต้องมีการ์ดเครือข่ายที่ติดตั้ง)
Mladen B.

ถ้าฉันป้อน 192.1681.3 นี้เป็น IP สำหรับบันทึก A บน Godaddy มันใช้งานไม่ได้เห็นได้ชัดว่ามันคาดว่าจะมีที่อยู่ IP ภายนอกถ้าฉันบอกว่ายังคงใช้งานไม่ได้สำหรับ reaosn บางตัวฉันต้องการทดสอบชื่อโดเมนในเครื่องก่อน เกิดขึ้น EC2
PirateApp

10

ขึ้นอยู่กับว่าคุณติดตั้งระบบเครือข่ายบน Ubuntu guest OS อย่างไร หากคุณตั้งค่าให้ใช้ NAT และคุณมีเซิร์ฟเวอร์ DHCP ที่ทำงานบนเครือข่ายของคุณให้รันสิ่งนี้:

ifconfig | grep inet

บนกล่อง Ubuntu - คุณจะเห็นที่อยู่ IP ที่กำหนดให้กับแขกของ Ubuntu

ตัวอย่าง:

#ifconfig | grep inet
  inet addr:10.0.0.2  Bcast:10.255.255.255  Mask:255.255.255.0
  inet addr:127.0.0.1  Mask:255.0.0.0

จากนั้นก็กดhttp://10.0.0.2:3000


ในกรณีของฉันที่อยู่ควรเป็น10.0.2.15:3000/publicและโดยค่าเริ่มต้น vista ทำงานในโหมด DHCP .. (เครื่องอูบุนตูยังได้รับการกำหนดค่าให้ใช้ NAT) แต่ฉันไม่ได้รับการตอบกลับ :(
Argh

อืมมเพียงแค่รู้ว่าผมไม่ได้มีเซิร์ฟเวอร์ DHCP - ฉันทำงานบ้าน Vista ...
โอ๊ะ

VirtualBox มีเซิร์ฟเวอร์ DHCP ของตัวเองที่จัดการเครื่องเสมือน - มิฉะนั้นเครื่องเสมือนจะไม่ได้รับที่อยู่ IP โดยอัตโนมัติโดยไม่ต้องตั้งค่าแบบคงที่ ฉันคิดว่าปัญหาของคุณอาจเป็นเพราะคุณไม่มี Apache ฟังในทุกอินเตอร์เฟส - เพียงแค่ localhost (127.0.0.1) ตรวจสอบให้แน่ใจว่าใน / etc / apache2 / ไซต์ใช้ได้ / การเริ่มต้นฟังคำสั่งว่า 80 ไม่ 127.0.0.1:80 ต่อhelp.ubuntu.com/9.04/serverguide/C/httpd.html
คอรี Plastek

นี่อาจเป็นสาเหตุ
fsckin

4

กล่อง Windows ของคุณและกล่อง Ubuntu (ไม่ว่าจะเป็นจริงหรือเสมือนไม่สำคัญในอินสแตนซ์นี้) ทั้งคู่ต้องมีที่อยู่ IP บนซับเน็ตเดียวกันเพื่อให้สามารถพูดคุยกันผ่าน TCP / IP ได้ คุณสามารถกำหนดที่อยู่เพิ่มเติมให้กับแต่ละระบบปฏิบัติการโดยใช้หนึ่งในเครือข่ายย่อย IP ส่วนตัว (ดูRFC 1918 ) เมื่อพวกเขาทั้งสองมีที่อยู่ในซับเน็ตเดียวกันให้กำหนดค่าเว็บเซิร์ฟเวอร์ให้ฟังที่คุณให้กับ Ubuntu จากนั้นใช้ IP นั้นในเบราว์เซอร์ภายใน Windows เพื่อโหลดขึ้นมา

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


2

เพื่อแก้ปัญหาของคุณผม sugest ที่คุณเพิ่มใหม่อะแดปเตอร์เครือข่ายและการกำหนดค่าเป็นอะแดปเตอร์โฮสต์เท่านั้น

ตอนนี้คุณเรียกใช้อินสแตนซ์ของกล่องเสมือนแล้วอะไรที่ fsckin ติดขัดเพื่อดูว่าIP ของเครือข่ายใหม่คืออะไร

วิธีนี้คุณจะมีซับเน็ตพร้อมคอมพิวเตอร์และเครื่องเสมือนของคุณ


ดังนั้น ... ฉันทำตามที่คุณพูดได้คว้าที่อยู่ IP ของฉัน ฉันพยายามเข้าถึงเว็บเซิร์ฟเวอร์ (ซึ่งฉันสามารถเข้าถึงได้ภายในแขกเป็น127.0.0.1:3000 ) โดยใช้การจัดสรร IP: 3000และฉันไม่ได้รับคำตอบ อย่างไรก็ตามฉันสามารถ ping ip จากโฮสต์
Argh

คุณต้องเปิดไฟร์วอลล์ที่พอร์ต 3000
fampinheiro

โฮสต์เท่านั้นจะไม่ทำงานนอกกรอบ: serverfault.com/questions/205477/…
givanse

0

ก่อนอื่นคุณต้องทำสิ่งที่คำตอบ 1 พูดว่า:

"คุณสามารถเปลี่ยนโหมดเครือข่ายแขกของคุณจาก NAT เป็น Bridged เพียงปิดแขก Ubuntu ของคุณไปที่หน้าการตั้งค่าใน VirtualBox เลือกหมวดหมู่เครือข่ายและเปลี่ยนกล่องรายการ Attached เป็น NAT จากโหมด Bridged"

จากนั้นรับที่อยู่ IP ของคุณ:

บนเครื่องเสมือนของคุณเปิดพร้อมท์คำสั่งและทำ:

ip addr show

คุณอาจเห็นบรรทัดที่มีลักษณะดังนี้:

inet 192.168.43.96/24 ....

นอกจากนี้ยังมีสายก่อนหน้านั้นด้วย

inet 127.0.0.1

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

ตอนนี้บนเครื่องโฮสต์ให้แก้ไขไฟล์ / etc / hosts (ไม่ใช่ ~ / etc) ชื่อไฟล์คือโฮสต์ (ไม่ใช่ชื่อโฟลเดอร์)

เพิ่มบรรทัดที่มีลักษณะดังนี้:

192.168.43.96 myvm.nameofmywebsite.com

ตอนนี้ไปที่เบราว์เซอร์ของเครื่องโฮสต์และพิมพ์ใน myvm.nameofmywebsite.com

หวังว่าจะทำมัน!

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

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