ฉันจะเข้าถึง 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.