Virtualbox: การเข้าถึงเว็บเซิร์ฟเวอร์บนระบบปฏิบัติการเกสต์จากโฮสต์ OS ได้อย่างไร


10

หลังจาก RTFM'ing และอ่านฟอรัมมากมายฉันยังคงมีปัญหาและต้องการคำแนะนำ ฉันใช้ Virtualbox บน Ubuntu และติดตั้งเซิร์ฟเวอร์ Centos เป็นแขก ปัญหาของฉันคือฉันไม่สามารถเข้าถึงเว็บเซิร์ฟเวอร์บน guest OS จาก host OS

นี่คือรายละเอียด: โฮสต์ระบบปฏิบัติการคือ Ubuntu 12.04 LTS (เคอร์เนล 3.2.0-24- ทั่วไป) 64 บิต

ฉันใช้ Virtualbox 4.1.12

ฉันได้รับที่อยู่ IP จากเราเตอร์ไร้สายของฉัน:

eth0      Link encap:Ethernet  HWaddr 18:03:73:42:3d:ac  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:47 Base address:0xe000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:3784 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3784 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:378673 (378.6 KB)  TX bytes:378673 (378.6 KB)

wlan0     Link encap:Ethernet  HWaddr 64:27:37:69:c5:d2  
          inet addr:192.168.1.15  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6627:37ff:fe69:c5d2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:124013 errors:0 dropped:0 overruns:0 frame:0
          TX packets:82469 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:164307087 (164.3 MB)  TX bytes:9744555 (9.7 MB)

ดังนั้นฉันจึงติดตั้ง CentOS เป็นระบบปฏิบัติการเกสต์และฉันต้องการเข้าถึงเซิร์ฟเวอร์ http ในการตั้งค่าเครือข่ายใน Virtualbox ฉันมีสิ่งนี้: แนบกับอะแดปเตอร์บริดจ์

ชื่อ: wlan0

ฉันอนุญาตโหมด Promiscuous สำหรับ VMs

และเลือก 'เชื่อมต่อด้วยสายเคเบิล' แล้ว

บนเครื่อง CentOS อินเตอร์เฟส eth0 เลือกที่อยู่ IP 192.168.1.20 ที่มี 255.255.255.0 รูปแบบ ทุกอย่างดูโอเคทั้งสองระบบสามารถ ping ซึ่งกันและกัน ฉันเริ่มเว็บเซิร์ฟเวอร์และกำลังฟังพอร์ต 80 - ตรวจสอบกับ netstat (อย่างไรก็ตามยังไม่ได้เปลี่ยนไฟล์กำหนดค่าเริ่มต้นของเว็บเซิร์ฟเวอร์)

เมื่อฉันต้องการเชื่อมต่อกับเว็บเซิร์ฟเวอร์บนเครื่อง CentOS ฉันไม่สามารถทำได้ 'ไม่สามารถเชื่อมต่อได้' Firefox กล่าวว่า Chrome ไม่มีความสุข: Chrome ไม่สามารถเชื่อมต่อกับ 192.168.1.20 (ฉันไม่ได้ใช้พร็อกซีใด ๆ ที่นี่)

ฉันพยายาม telnet ไปยังพอร์ต 80 บนระบบของแขก - ไม่มีความสุข:

:~$ telnet 192.168.1.20 80
Trying 192.168.1.20...
telnet: Unable to connect to remote host: No route to host

ไม่แน่ใจว่าเป็นสิ่งสำคัญหรือไม่ แต่ตารางเส้นทางบนระบบปฏิบัติการของผู้เยี่ยมชมอยู่ที่นี่:

[root@centos ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

(มันตลกแค่คิดออกว่าฉันสามารถ ssh จาก Ubuntu ไปยัง CentOS)

ฉันลองตั้งค่าที่แตกต่างกันใน Virtualbox แต่ด้านบนนั้นใกล้เคียงกับสิ่งที่ผู้คนแนะนำในฟอรัมต่าง ๆ พยายาม NAT กับการส่งต่อพอร์ตอะแดปเตอร์สำหรับโฮสต์เท่านั้น แต่ฉันไม่สามารถแก้ไขได้

มีใครช่วยส่องแสงให้ฉันได้ไหม ไชโย


นอกจากนี้ ... บนโฮสต์ระบบปฏิบัติการของฉัน (Ubu) ฉันทำ traceroute และพบเส้นทางไปยังระบบปฏิบัติการของแขก และอย่างที่บอกไว้ว่าเครื่องสามารถ ping ซึ่งกันและกันและ ssh ทำงานได้ สร้างไฟล์ hummy ที่ชื่อว่า index_x.html และฉันสามารถอ่านหน้าเว็บจาก guest โดยใช้ lynx นี่เป็นปัญหาไฟร์วอลล์หรือไม่
Petkaux

คุณมีไฟร์วอลล์ที่ทำงานบน guest OS หรือไม่? ถ้าใช่มันบล็อกพอร์ต 80 หรือไม่
ฟราน

ใช่คุณพูดถูก Fran iptables บล็อกฉันบน CentOS ของผู้เยี่ยมชม ฉันปิดมันชั่วคราวเพื่อดูว่าเกิดอะไรขึ้นและ voila ฉันสามารถเข้าถึงเว็บเซิร์ฟเวอร์ได้! Yippeee!
Petkaux

@ Petkaux ฉันมีปัญหาตัวอย่างกับสภาพแวดล้อมเดียวกัน ฉันไม่เก่งใน Linux .. ดังนั้นคุณช่วยให้ฉันได้รับคำสั่ง / ขั้นตอนในสิ่งที่คุณได้ลองมาแล้วสำหรับปัญหาของคุณ ?
นายแบล็ก

คำตอบ:


8

วิธีแก้ปัญหาคือการเปิดพอร์ตบนไฟร์วอลล์ของ guest OS ดังอธิบายไว้ที่นี่: http://wiki.centos.org/HowTos/Network/IPTables

การตั้งค่าเครือข่ายใน Virtualbox เป็นปกติ - Bridged Network เป็นการตั้งค่าที่ถูกต้อง


ขอบคุณหนึ่งนี้ใช้เวลาสักครู่เพื่อคิดออก firewall-cmd --zone=external --add-service=http --permanent; firewall-cmd --reload
Christopher Markieta

3

การปิดใช้งานไฟร์วอลล์ภายใน guest OS ด้านล่างควรอนุญาตให้คุณเข้าถึง ชนิด

service iptables stop
chkconfig iptables off

ที่บรรทัดคำสั่งเมื่ออยู่ใน guest OS


ขอบคุณฉันใช้เวลาหลายชั่วโมงในการพยายามตั้งค่าต่าง ๆ เพื่อเข้าถึงเซิร์ฟเวอร์บน CentOS VM ของฉัน
uınbɐɥs

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