Virtualbox: Bagaimana cara mengakses server web pada OS tamu dari OS host?

10

Setelah banyak RTFM'ing dan membaca forum, saya masih mengalami masalah dan butuh saran. Saya menggunakan Virtualbox di Ubuntu dan menginstal server Centos sebagai tamu. Masalah saya adalah bahwa saya tidak dapat mengakses server web pada OS tamu dari OS host.

Berikut detailnya: Host OS adalah Ubuntu 12.04 LTS (kernel 3.2.0-24-generic) 64bit.

Saya menggunakan Virtualbox 4.1.12.

Saya mendapatkan alamat IP saya dari router nirkabel saya:

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)

Jadi, saya menginstal CentOS sebagai OS tamu dan saya ingin mengakses server http-nya. Di Pengaturan Jaringan di Virtualbox saya punya ini: Terlampir ke Bridged Adapter

Nama: wlan0

Saya mengizinkan mode Promiscuous untuk VM.

Dan 'Cable Connected' dicentang.

Pada mesin CentOS, antarmuka eth0 mengambil alamat IP 192.168.1.20 dengan 255.255.255.0 mask. Semuanya terlihat OK sejauh ini, kedua sistem dapat saling ping. Saya memulai server web dan mendengarkan pada port 80 - diperiksa dengan netstat. (Namun belum mengubah file konfigurasi default dari server web.)

Ketika saya ingin terhubung ke server web pada mesin CentOS, saya tidak bisa. 'Tidak dapat terhubung' kata Firefox, Chrome juga tidak senang: Chrome tidak dapat terhubung ke 192.168.1.20. (Saya tidak menggunakan proxy apa pun di sini.)

Saya mencoba telnet ke port 80 pada sistem tamu - tidak ada sukacita:

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

Tidak yakin apakah ini penting, tetapi tabel rute pada OS tamu ada di sini:

[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

(Ini lucu, baru diketahui bahwa saya dapat ssh dari Ubuntu ke CentOS.)

Saya mencoba pengaturan yang berbeda di Virtualbox, tetapi di atas adalah yang paling dekat dengan apa yang orang sarankan di forum yang berbeda. Mencoba NAT dengan penerusan port, adaptor khusus Host tetapi saya gagal memperbaikinya.

Bisakah seseorang memberikan beberapa lampu untuk saya? Bersulang

Petkaux
sumber
Selain itu ... Pada OS host saya (Ubu) saya melakukan traceroute dan menemukan rute ke OS tamu. Dan seperti yang dikatakan mesin dapat saling ping dan ssh bekerja. Membuat file html dummy yang disebut index_x.html dan saya bisa membaca halaman dari tamu itu sendiri dengan lynx. Bisakah ini menjadi masalah firewall?
Petkaux
Apakah Anda memiliki firewall yang berjalan pada OS tamu? Jika demikian, apakah itu memblokir port 80?
Fran
Ya, Anda benar, Fran. iptables memblokir saya di CentOS tamu. Saya mematikannya sementara untuk melihat apa yang sedang terjadi dan voila, saya bisa mengakses server web! Ya ampun!
Petkaux
@Petkaux Saya punya masalah sampel dengan lingkungan yang sama. Saya tidak bagus di Linux .. Jadi, tolong beri saya perintah / langkah apa yang Anda coba untuk masalah Anda. ?
Tn. Black

Jawaban:

8

Solusinya adalah dengan membuka port pada firewall OS tamu, seperti yang dijelaskan di sini: http://wiki.centos.org/HowTos/Network/IPTables

Pengaturan Jaringan di Virtualbox OK - Bridged Network adalah pengaturan yang benar.

Petkaux
sumber
Terima kasih, yang ini butuh waktu beberapa saat untuk mencari tahu. firewall-cmd --zone=external --add-service=http --permanent; firewall-cmd --reload
Christopher Markieta
3

Menonaktifkan firewall internal OS tamu seperti di bawah ini akan memungkinkan Anda mengakses. Tipe

service iptables stop
chkconfig iptables off

di baris perintah ketika di OS tamu.

Nilton Freitas Barbosa
sumber
Terima kasih, saya menghabiskan berjam-jam mencoba pengaturan yang berbeda untuk mengakses server pada CentOS VM saya.
sampai
Sederhana dan elegan!
Edward_178118