ฉันจะเข้าถึง Apache (บนแขก VirtualBox) จากโฮสต์ได้อย่างไร


142

ฉันติดตั้ง Apache บน Ubuntu VM เมื่อฉันเข้าสู่แขกและโหลด Firefox ฉันจะเห็นว่า Apache ทำงานได้ดีเมื่อฉันเรียกดู localhost

ฉันต้องการเข้าถึงหน้าเดียวกันผ่านโฮสต์ ฉันลองใช้ที่อยู่ IP ของผู้เยี่ยมชม แต่ไม่มีอะไรเกิดขึ้น

เป็นการดีที่ฉันจะรักการตั้งค่า Windows 7 (โฮสต์) ของฉันเพื่อขอhttp://guestserver.comเซิร์ฟเวอร์ Apache บนแขก ฉันจะทำสิ่งนี้ได้อย่างไร


ฉันพบไซต์ที่ช่วยฉันแก้ปัญหา คำตอบด้านล่างถูกต้อง แต่ไม่แสดงอะไรเลยเกี่ยวกับการสร้างอะแดปเตอร์เสมือนจริงใน VM ไซต์ที่ฉันอ้างถึงคือ: christophermaier.name/2010/09/01/…
— Sudhir Dhumal

คำตอบ:


156

หากคุณต้องการเครื่องอื่นในเครือข่ายทางกายภาพของคุณเพื่อให้สามารถเข้าถึง VM ของคุณ (หรือถ้า VM ต้องการการเข้าถึงอินเทอร์เน็ต) ให้ใช้เครือข่ายบริดจ์ มิฉะนั้นยึดติดกับเครือข่ายของโฮสต์เท่านั้น

  1. หยุด VM ของคุณและเปิดการตั้งค่าในตัวจัดการVirtualBox (OSE)
  2. ไปที่แท็บเครือข่าย
  3. เลือกโหมดเครือข่ายตามที่คุณต้องการ (บริดจ์เครือข่ายหรือโฮสต์เท่านั้น) (ในตัวอย่างด้านล่างฉันใช้โฮสต์เท่านั้น)

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

  4. บันทึกการตั้งค่า
  5. เริ่ม Ubuntu VM
  6. เมื่อถึงตอนนี้คุณสามารถรวบรวมที่อยู่ IP ได้โดยเรียกใช้:

    ifconfig | grep addr
    

    ในผลลัพธ์ด้านล่างนี้192.168.56.101เป็นที่อยู่ IP ที่สามารถใช้ในระบบโฮสต์ Win7 ของคุณเพื่อเข้าถึง VM ของคุณ:

    eth0  Link encap:Ethernet  HWaddr 08:00:27:70:27:fe  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe7b:25fe/64 Scope:Link
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
    
  7. ในระบบโฮสต์ windows ของคุณแก้ไขC:\Windows\System32\drivers\etc\hostsในฐานะผู้ดูแลระบบและเพิ่มบรรทัด:

    192.168.56.101   guestserver.com
    

    หากคุณใช้ระบบโฮสต์ Ubuntu ให้แก้ไข/etc/hostsโดยใช้sudo nano /etc/hosts

  8. กำไร!

2
สิ่งนี้ทำงานได้อย่างสมบูรณ์แบบสำหรับเครือข่ายโฮสต์เท่านั้นและตอนนี้ฉันสามารถเข้าถึงแขกจากเบราว์เซอร์ของโฮสต์ อย่างไรก็ตามด้วยการเชื่อมต่อบริดจ์ซึ่งฉันต้องการฉันไม่สามารถเข้าถึงอินเทอร์เน็ตจากแขกได้
— urok93

5
ipconfig ไม่ใช่คำสั่งบน Linux แต่เป็น ifconfig คุณหมายถึงอย่างนั้นหรือ
— Max

7
บนโฮสต์ไฟล์ windows 7/8 อยู่ที่นี่: C: \ Windows \ System32 \ drivers \ etc \ hosts
— Dalen

2
@begueradj ขั้นตอนข้างต้นนำไปใช้กับบริดจ์เครือข่าย แต่เครือข่ายบางเครือข่ายไม่อนุญาต / ให้ที่อยู่หลายแห่งแก่คุณ ในมหาวิทยาลัยของฉันฉันไม่สามารถใช้เครือข่ายบริดจ์ได้เพราะสิ่งนั้นในสถานการณ์เหล่านั้นฉันจะใช้ NAT กับการส่งต่อพอร์ตแทน
— Lekensteyn

1
การเปิดใช้งานอะแดปเตอร์เครือข่ายสองตัวคือ NAT หนึ่งอันและบริดจ์เชื่อมต่อทำให้ฉันเห็นและมองเห็นผึ้งได้
— stenci

13

ในกรณีของฉันฉันมีเราเตอร์ที่กำหนด IP แบบคงที่ให้กับ Host PC ของฉัน

  1. ตั้งค่าการ์ดเชื่อมต่อเครือข่ายเป็น Bridge:

    การตั้งค่า> เครือข่าย> อะแดปเตอร์ 1 ( เปิดใช้งานอะแดปเตอร์เครือข่าย )> แนบกับ: ( บริดจ์อะแดปเตอร์ )> ตกลง

  2. เริ่มเครื่องเสมือน> เข้าสู่ระบบ

  3. เปลี่ยน IP ของ VirtualMachine จากไดนามิกเป็นสแตติก

    sudo nano / etc / network / interfaces

  4. ภายใต้อินเทอร์เฟซเครือข่ายหลักเปลี่ยนคำว่า dhcp เป็นแบบคงที่และป้อน IP แบบคงที่ใหม่ของคุณหรือแสดงความคิดเห็นบรรทัดและเพิ่มใหม่

:

#iface eth0 inet dhcp
iface eth0 inet static
        address 192.168.10.110
        netmask 255.255.255.0
        gateway 192.168.10.1
        network 192.168.10.0
        broadcast 192.168.10.255

สังเกตว่าเราเตอร์ของฉันทำงานที่ xxx.xxx 10 .x และของคุณอาจอยู่ที่ xxx.xxx 0 .x หรือ xxx.xxx 1 .x หรืออย่างอื่น

หลังจากที่คุณทำเช่นนั้นคุณสามารถมีอินเทอร์เน็ต conection ในเครื่องโฮสต์และแขกและพิมพ์ IP แบบคงที่ในเว็บเบราว์เซอร์ของคุณเพื่อตรวจสอบเซิร์ฟเวอร์ apache


ฉันลืมที่จะบอกว่าคุณต้องให้แน่ใจว่า / etc / ชื่อโฮสต์มีการกำหนดค่าอย่างถูกต้องด้วยวิธีนี้คุณ: nameserver [your_isp_primary_dns] และ nameserver [your_isp_secondary_dns]
— Nuc134rB0t

8

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


6

คำตอบที่ยอมรับไม่ได้ผลสำหรับฉัน (ฉันติดตั้ง virutalbox ใน Ubuntu 12.04 LTS และภายในกล่องเสมือนฉันติดตั้ง Ubuntu 14.04 LTS Server) ฉันเพิ่งสลับการตั้งค่าเครือข่ายสำหรับ Adapter1 และ Adapter2 เช่นการตั้งค่า Adapter1 สำหรับ "bridged networing" และ Adapter2 สำหรับ "NAT" และมันก็เริ่มทำงาน


สิ่งนี้มีประโยชน์ แต่เปลี่ยนลำดับของอะแดปเตอร์เพื่อให้แขกใช้ NAT ตามค่าเริ่มต้นและสามารถเชื่อมต่ออินเทอร์เน็ตได้
— MadeOfAir

มันใช้งานได้จริงสำหรับฉัน ฉันพยายามเข้าถึง Windows VM จากภายในโฮสต์ Mac
— benjaminz

1
หลังจากผ่านไปหลายชั่วโมงของการอ่านและลองใช้วิธีแก้ปัญหาอื่น ๆ ทั้งหมดที่ฉันสามารถหาได้ทางออนไลน์ความคิดของคุณทำงานได้อย่างมีเสน่ห์ ขอบคุณมากสำหรับการเขียนมัน! ใช้ Ubuntu 18.04 เป็นโฮสต์และแขก
— จอห์น

5

หากคุณต้องการพอร์ตเฉพาะ (บอกว่าคุณใช้งานเว็บแอปพลิเคชั่นเช่น Jetty หรือ Tomcat) เพียงแค่ทำ:

การตั้งค่า -> เครือข่าย -> ตั้งค่าหนึ่งในอะแดปเตอร์เป็น NAT -> กด 'การส่งต่อพอร์ต' -> ตั้งค่าโฮสต์และพอร์ตแขกที่เกี่ยวข้อง

เมื่อคุณบันทึกแล้วคุณสามารถเปลี่ยนจากเครื่องท้องถิ่นของคุณไปยัง localhost: hostport และมันจะถูกเปลี่ยนเส้นทางไปยังพอร์ตที่เกี่ยวข้องกับกล่องเสมือนและคุณทำเสร็จแล้ว


4

หากคุณไม่สามารถเชื่อมต่อผ่าน ip คุณจะไม่ประสบความสำเร็จกับชื่อ dns ในการติดตั้ง apache เริ่มต้น

ตรวจสอบการตั้งค่าเครือข่ายของโฮสต์เสมือนฉันมักจะวางไว้เพื่อเชื่อมต่อกับมันสามารถเข้าถึงได้ทั่วทั้งเครือข่าย


ฉันตั้งค่าให้เชื่อมต่อ แต่ตอนนี้แขกไม่ได้เชื่อมต่ออินเทอร์เน็ต
— urok93

คุณได้รับ IP ในระบบปฏิบัติการเควสหรือไม่ ฉันมักจะตั้งค่า NIC หลายรายการเพื่อให้ตรงกับ NIC ทางกายภาพทั้งหมดของฉัน คุณอาจจะสามารถถ่ายโอนข้อมูล ifconfig ของคุณจากการแสวงหาและโฮสต์
— PvdL

เมื่อฉันทำงานกับเครือข่ายไร้สายมันใช้งานได้ แต่ไม่มีสายเคเบิลนี่คือภาพหน้าจอบางส่วนที่แสดงการกำหนดค่าของฉัน: imageshack.us/photo/my-images/832/guestr.png imageshack.us/photo/my-images/846/virtualbox .png imageshack.us/photo/my-images/9/hostwin7.png
— urok93

โปรดให้ความช่วยเหลือในเรื่องนี้?
— urok93

ดูเหมือนว่าเครื่องคอมพิวเตอร์ของคุณเชื่อมต่อโดยตรงกับอินเทอร์เน็ตและนั่นอาจจะเป็นเหตุผลที่ว่าทำไมลูกค้าของคุณจะไม่ได้รับ IP (v4)
— PvdL

3

ในโหมด bridged หากโฮสต์ของคุณใช้ที่อยู่ IP แบบคงที่คุณควรกำหนดค่า IP แขกของคุณด้วยตนเองในช่วงเดียวกันกับ IP โฮสต์ มิฉะนั้นแขกจะไม่ได้รับการจัดสรรโดยอัตโนมัติด้วยที่อยู่ IP ที่ถูกต้อง HTH


2

คำตอบของ Lekensteyn นั้นถูกต้อง แต่ถ้าคุณอยู่ในสภาพแวดล้อมแบบองค์กรคุณอาจต้องปิดใช้งานพร็อกซีเซิร์ฟเวอร์สำหรับที่อยู่ IP ของแขกของคุณ ตัวอย่างเช่นหากคุณใช้ Mozilla Firefox บนเครื่องโฮสต์ของคุณและคุณพยายามเข้าถึง 192.168.56.101/ ที่แขกคุณต้องไปที่เครื่องมือของ Firefox-> ตัวเลือก -> ขั้นสูง -> เครือข่าย -> การตั้งค่าและใช้ "ไม่ พร็อกซี "หรือ" ไม่มีพร็อกซีสำหรับ -> 192.168.56.101 "


2

หากคุณต้องการเข้าถึงแขกที่ได้รับ IP ที่แตกต่างกันเนื่องจากการใช้ DHCP ฉันขอแนะนำให้เข้าถึงผ่านทางชื่อโฮสต์ อย่างไรก็ตามการเข้าถึงผ่านชื่อโฮสต์เมื่อโฮสต์คือ Windows อาจต้องใช้เครื่องมือเพิ่มเติม

ข้อความต่อไปนี้ถูกคัดลอกมาจากคำตอบของฉันที่ superuser.com :

ฉันแนะนำให้คุณใช้Multicast DNSเพื่อแก้ไขปัญหานี้

อูบุนตูใช้นี้โดยเริ่มต้นผ่านAvahi

โฮสต์ Windows ต้องการไคลเอนต์ Avahi เพื่อค้นหาบริการ Avahi อื่น ๆ หากโฮสต์ของคุณใช้ซอฟต์แวร์ Apple อยู่แล้วอาจเป็นไปได้ว่ามีบริการชื่อ Bonjour แต่ถ้าเรื่องนี้ไม่ได้ติดตั้งแล้วรุ่นเล็กของ Bonjour นี้สามารถดาวน์โหลดได้ที่นี่: บริการ Bonjour พิมพ์ หลังจากการติดตั้งคุณควรจะสามารถเข้าถึงแขกของคุณผ่านทาง. local

หมายเหตุ:ระบบ mDNS ดูเหมือนจะใช้ postfix. local ตามค่าเริ่มต้น ดังนั้นหากชื่อโฮสต์ของคุณคือ "dev.myapp.com" ดังนั้นชื่อโฮสต์ที่แท้จริงจะเป็น "dev.myapp.com.local"

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