VirtualBox guest OS ที่เข้าถึงโลคัลเซิร์ฟเวอร์บนโฮสต์ OS


107

บนโฮสต์ Ubuntu ของฉันฉันมีเว็บเซิร์ฟเวอร์ในพื้นที่ ฉันติดตั้ง VirtualBox และ Debian เป็นแขก

ฉันต้องการให้แขก Debian สามารถเข้าถึงเว็บเซิร์ฟเวอร์ของฉันที่ทำงานบนโฮสต์ Ubuntu ของฉัน (ตัวอย่างเช่นฉันเพิ่งพิมพ์http://localhost:8080/เบราว์เซอร์ภายใต้ Debian)

สิ่งนี้สามารถทำได้?

คำตอบ:


176

เปิดใช้งานอะแดปเตอร์เครือข่าย ONE ตั้งเป็น NAT และเริ่มเครื่องของคุณ ไม่จำเป็นต้องกำหนดค่าอะไร

บนเบราว์เซอร์ของเกสต์ประเภทhttp://10.0.2.2ซึ่งจะแสดงเนื้อหาเดียวกับ "localhost" ในระบบปฏิบัติการโฮสต์

10.0.2.2 เป็น "เกตเวย์เริ่มต้น" สำหรับการเชื่อมต่อ NAT และ IP ระบบปฏิบัติการเกสต์ของคุณคือ 10.0.2.15

แน่นอนคุณสามารถตั้งค่า "โฮสต์เท่านั้น" หรือ "เครือข่ายภายใน" ซึ่งจะช่วยให้คุณกำหนดค่าขั้นสูงอื่น ฉันแนะนำให้พักกับ NAT

สนุก

เอ็ม


1
"เปิดใช้งานอะแดปเตอร์เครือข่าย ONE" สิ่งนี้ทำที่ไหน?
jshen

1
หมายเหตุ: หากคุณมีโฮสต์เสมือนตามชื่อที่กำหนดค่าใน apache บนเครื่องโฮสต์ของคุณคุณสามารถเข้าถึงได้โดยเพียงแค่สร้างการแมปในไฟล์โฮสต์ของเครื่องแขกของ10.0.2.2 yourvirtualhostname.local (or whatever)
ผู้ใช้

@ ผู้ใช้คุณแน่ใจหรือว่าความคิดเห็นล่าสุดของคุณจะใช้งานได้? ฉันมีโฮสต์เสมือนบนโฮสต์ VB ของฉันhttp://example.devและการแมป10.0.2.2กับสิ่งใด ๆ บนแขก VB ของฉันไม่ได้ช่วยให้เข้าถึงได้เลย
ТомицаКораћ

1
@ ТомицаКораћมันใช้งานได้ ตัวอย่างเช่นดู: askubuntu.com/questions/36183/…อย่างไรก็ตามคุณอาจเปิดคำถามแยกต่างหากเพื่อแก้ไขปัญหานี้
ผู้ใช้

1
"เปิดใช้งานหนึ่งอะแดปเตอร์เครือข่าย" หมายถึงภายใต้การตั้งค่าเครือข่ายของเครื่องเสมือนของคุณ (ภายใน VirtualBox) เปิดใช้งานอะแดปเตอร์เดียวเท่านั้น ทำให้ฉันสับสนเล็กน้อยเมื่อฉันอ่านครั้งแรก
Marquez

5

จุดที่ควรทำเมื่อใช้ที่อยู่ IP ของ 10.0.2.2 คือถ้าคุณใช้ MAMP เช่นเพิ่มหมายเลขพอร์ต: 8888 เพื่อให้ที่อยู่แบบเต็มอ่าน http://10.0.2.2:8888


3

วิธีที่ง่ายที่สุดในการอนุญาตการเข้าถึงเครื่อง VirtualBox Guest ของคุณอย่างต่อเนื่องคือการตั้งค่าอุปกรณ์เครือข่ายเป็น 'สะพาน' เป็น eth0 ของคุณบน LAN ของคุณ

เครื่อง Guest จะจับ LAN IP ผ่าน DHCP จากเราเตอร์ของคุณ


ในการชี้แจง: นี่เป็นการตั้งค่าในแอปไคลเอ็นต์ มันใช้งานได้สำหรับฉัน - ใช้เวลาสักพักกว่าจะรู้ตัวเพราะ IE โง่เกินกว่าที่จะคิดว่าฉันต้องการการเชื่อมต่อ HTTP เมื่อฉันพิมพ์ที่อยู่ IP และพอร์ตลงในแถบที่อยู่
Michael Scheper

2

สิ่งที่ฉันพบแก้ไขปัญหาสำหรับฉันคือทำให้แน่ใจว่าอะแดปเตอร์ windows VirtualHost เท่านั้นเท่านั้นถูกตั้งค่าเป็น. 1 ที่อยู่สำหรับช่วง ip ดังนั้นอะแดปเตอร์โฮสต์กล่องเสมือนของฉันเท่านั้นคือ 192.168.58.20 แต่ ip สำหรับอะแดปเตอร์ Windows คือ 192.168 58.1


2

หากวิธีการแก้ปัญหาโดย @Melvyn ไม่ทำงานคุณสามารถตั้งค่าบริดจ์อะแดปเตอร์เครือข่ายของคุณแทน
ไปที่Settings-> Network-> จากนั้นเปลี่ยนAttached toเป็นบริดจ์อะแดปเตอร์

ป้อนคำอธิบายรูปภาพที่นี่

คุณควรจะสามารถเรียกผู้ปกครองด้วยชื่อโฮสต์หรือที่อยู่ IP ภายนอกที่คุณสามารถรับได้โดยไปที่พร้อมท์คำสั่งและพิมพ์ ipconfig /all ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ปรับปรุงหากคุณกำลังดีบักด้วย Visual Studio และใช้ IIS Express

ไปที่ C:\Users\[uesername]\Documents\IISExpress\config\applicationhost.config

ค้นหาเว็บไซต์ของคุณใน<configuration>/<system.applicationHost>/<sites>/<site> (ชื่อสามารถหลอกลวงลองตรวจสอบตำแหน่งบนดิสก์ในphysicalPathแอตทริบิวต์)

จากนั้นเพิ่มลงใน<bindings>ส่วนการเชื่อมใหม่

<bindings>
    <binding protocol="http" bindingInformation="*:50766:localhost" />
    <binding protocol="http" bindingInformation="*:50766:48qzr12" />
</bindings>

โดยที่ bindingInformation คือ *:[port]:[machineName]

หวังว่านี่จะช่วยคุณประหยัดเวลา


-1

คุณสามารถให้ Debian โจมตีเว็บเซิร์ฟเวอร์ของคุณได้ แต่ไม่ได้ใช้ localhost คุณจะต้องใช้ที่อยู่ IP ของโฮสต์ Ubuntu

ifconfigสมมติว่าระบบปฏิบัติการของผู้เข้าพักที่เชื่อมต่อกับเครือข่ายที่จะคว้าทรัพย์สินทางปัญญาเปิดสถานีและประเภท 192.168.0.2ควรมีลักษณะดังนี้


Hi! ขออภัยที่ตอบช้าเกินไป ifconfig บนโฮสต์ของฉันแสดง 192.168.0.102 สำหรับ eth0 เมื่อฉันป้อน ip นี้ใน firefox ที่เป็นแขกพยายามเชื่อมต่อชั่วขณะหนึ่งจากนั้นการเชื่อมต่อจะยุติลง: "เซิร์ฟเวอร์ที่ 192.168.0.102 ใช้เวลานานเกินไปในการตอบสนอง" ... ฉันควรลองทำอะไรต่อไป ขอบคุณล่วงหน้า.
Maxim
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.