วิธีการเชื่อมต่อจาก Windows 7 กับ localhost บน Ubuntu VirtualBox?


10

ระบบปฏิบัติการโฮสต์ของฉันคือ Windows 7

ฉันใช้เซิร์ฟเวอร์ (พัฒนา Django) บน Ubuntu 10.04 ใน VirtualBox

ฉันต้องการเชื่อมต่อกับเซิร์ฟเวอร์นั้น (ผ่านเบราว์เซอร์ของฉัน) บนโฮสต์ Windows ของฉัน ฉันจะทำสิ่งนั้นได้อย่างไร

คำตอบ:


12

นอกจากนี้ยังสามารถตั้งค่าโหมดอะแดปเตอร์เครือข่ายเป็น 'bridged' จากนั้น VM จะถูกมองว่าเป็นเครื่องปกติที่มีที่อยู่ IP ของตนเอง


ฉันตั้งค่าเป็น "Bridged Adaptor" http://localhost:8000/ทำงานบน Ubuntu / Guest / VirtualBox แต่ไม่ได้มาจากเครื่อง Windows / Host ของฉัน บอกว่า "Firefox ไม่สามารถสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ที่ localhost: 8000"
mpen

ฮะ! เข้าใจแล้ว ต้องผ่านอย่างชัดเจนในที่อยู่ IP ./manage.py runserver <MY_IP>:8000ของตัวเองเมื่อใช้เซิร์ฟเวอร์: จากนั้นก็ใช้งานได้กับทั้งสองเครื่อง
mpen

3
ลอง 0.0.0.0:8000 เพื่อไม่ผ่าน IP ที่แน่นอน
eigenein

@ eigenein: ฉันชอบสิ่งนั้น จากนั้นฉันสามารถใช้localhostบน Ubuntu ได้ แต่ฉันยังต้องใช้ IP ของฉันจาก windows
mpen

@ Mark มันมีเหตุผลเพราะ Ubuntu เสมือนของคุณเป็นระบบปฏิบัติการที่แตกต่างกันในเครื่องที่แตกต่างกันดังนั้น Ubuntu จึงไม่localhostเหมาะสำหรับ Windows
eigenein

6

นี่เป็นงานสำหรับฉัน:

จากหน่วยความจำหากคุณตั้งค่า VirtualBox ด้วยเครือข่าย NAT ฉันคิดว่าคุณสามารถเข้าถึงบริการที่ทำงานอยู่บนโฮสต์จากเกสต์ OS จากแขก (WinXP) โฮสต์จะปรากฏเป็น 10.0.2.2 ดังนั้นหากคุณชี้เว็บเบราว์เซอร์ WinXP ไปยังที่อยู่นั้นควรเชื่อมต่อกับเซิร์ฟเวอร์ Ubuntu Apache ของคุณ (สำหรับโฮสต์สิ่งนี้ดูเหมือนจะเป็นการเชื่อมต่อจาก localhost ฉันเชื่อว่า)

http://ubuntuforums.org/showthread.php?t=682519


วิธีนี้ใช้ได้ผลกับฉันใน Windows 7 ฉันต้องใช้10.0.2.2ในไฟล์โฮสต์
Eric Majerus

3

เพื่อที่คุณจะต้องส่งต่อพอร์ตบนเครื่องเสมือนของคุณ

ไปที่พรอมต์คำสั่งและสลับไปที่โฟลเดอร์กล่องเสมือนของคุณที่นั่นคุณสามารถออกคำสั่งต่อไปนี้:

VBoxManage.exe setextradata "name of vm" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/HostPort" 8888
VBoxManage.exe setextradata "name of vm" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/GuestPort" 80
VBoxManage.exe setextradata "name of vm" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/Protocol" TCP

สลับ "name of vm" ด้วยชื่อของเครื่องเสมือนของคุณรวมถึง GuestPort ที่มีพอร์ตที่เว็บเซิร์ฟเวอร์ของคุณใช้อยู่เนื่องจากอาจใช้พอร์ต 8080 หรือสิ่งอื่น หลังจากนั้นคุณควรจะสามารถเข้าถึงเซิร์ฟเวอร์ผ่านhttp: // localhost: 8888 /ถ้าฉันไม่ผิด

แก้ไข: PS: เท่าที่ฉันจำได้คุณต้องตั้งค่าอะแดปเตอร์เครือข่ายของคุณเป็น "NAT" สำหรับสิ่งนั้น

แก้ไข 2: คู่มือ VirtualBox ซึ่งสามารถพบได้ที่นี่รวมถึงส่วนที่เกี่ยวกับการส่งต่อพอร์ตซึ่งแตกต่างจากวิธีที่อธิบายไว้ที่นี่เล็กน้อย อ่านในบทที่ 6.3.1 (สำหรับรุ่น 3.2.6)


หลังจากใช้คำสั่งเหล่านี้ฉันจะไม่สามารถบูต Ubuntu ได้อีกต่อไป
mpen

คำสั่งนี้VBoxManage modifyvm "VM name" --natpf1 "djangoserver,tcp,,8000,,8000"ดูเหมือนจะไม่ทำงานอย่างใดอย่างหนึ่ง ... เมื่อฉันพยายามเข้าถึงได้จากทั้ง localhost: 8000 บนเครื่องแขกของฉันและที่อยู่ IP ifconfigที่กำหนดโดย
mpen

โอ๊ะโอ ... ยังมีอยู่บน Bridged เปลี่ยนกลับไปเป็น NAT และตอนนี้มันเพิ่งหมดเวลาแล้ว ... สงสัยว่ามันหมายถึงอะไร?
mpen

พบบันทึกย่อนี้ในเอกสาร Django "โปรดทราบว่าที่อยู่ IP เริ่มต้น 127.0.0.1 ไม่สามารถเข้าถึงได้จากเครื่องอื่น ๆ ในเครือข่ายของคุณในการทำให้เซิร์ฟเวอร์การพัฒนาของคุณสามารถดูเครื่องอื่น ๆ ในเครือข่ายให้ใช้ที่อยู่ IP ของตนเองหรือ 0.0 0.0." - ลองทำเช่นนี้ยังคง "ใช้เวลานานเกินไปในการตอบ"
mpen

2
การส่งต่อพอร์ตในกรณีนี้ควรทำงานในลักษณะที่เข้าถึง "localhost: 8888" หรือ "127.0.0.1:8888" บนระบบโฮสต์แปลเป็นการเข้าถึง "localhost: 80" หรือ "127.0.0.1:80" บนเครื่องแขก เพื่อความรู้ของฉัน บางทีคุณสามารถลองส่งต่อ SSH หรือสิ่งที่คล้ายกันที่ทำงานอยู่แล้วเพื่อดูว่าการส่งต่อพอร์ตทำงานอย่างถูกต้องหรือไม่ นอกจากนี้ยังมีการทำให้แน่ใจว่าการทำงานของเซิร์ฟเวอร์ในเครื่องของผู้เข้าพักของคุณ (โดยใช้เครื่องของผู้เข้าพัก Firefox และเปิดหน้า?) PS ดีดูเหมือนว่าคุณมีคำตอบของคุณแล้วล่ะค่ะ :)
private_meta

1

โฮสต์และระบบปฏิบัติการ guest ของฉันคือ Windows 7 และวิธีเดียวในการเชื่อมต่อคือกำหนดค่าอะแดปเตอร์เครือข่ายในโหมด "NAT" จากนั้นใช้ IP 10.0.2.2 เช่น @tm_lv เขียนhttps://superuser.com/a/287323/314495

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

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