Virtualbox: Как получить доступ к веб-серверу на гостевой ОС с хост-ОС?


10

После большого количества форумов RTFM и чтения у меня все еще есть проблемы и мне нужен совет. Я использую Virtualbox в Ubuntu и установил сервер Centos в качестве гостя. Моя проблема в том, что я не могу получить доступ к веб-серверу на гостевой ОС с хост-ОС.

Вот подробности: ОС хоста - Ubuntu 12.04 LTS (ядро 3.2.0-24-generic) 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 для виртуальных машин.

И «Кабель подключен» отмечен галочкой.

На машине CentOS интерфейс eth0 взял IP-адрес 192.168.1.20 с маской 255.255.255.0. Пока все выглядит нормально, две системы могут пинговать друг друга. Я запустил веб-сервер, и он прослушивает порт 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) я сделал трассировку, и она нашла маршрут к гостевой ОС. И, как сказано, машины могут пинговать друг друга, и ssh работает. Создан фиктивный HTML-файл с именем index_x.html, и я могу читать страницу с самого гостя с помощью lynx. Может ли это быть проблемой брандмауэра?
Petkaux

У вас работает брандмауэр на гостевой ОС? Если это так, блокирует ли он порт 80?
Фрэн

Да, ты прав, Фрэн. iptables блокировал меня на гостевой CentOS. Я временно отключил его, чтобы посмотреть, что происходит, и вот, я смог получить доступ к веб-серверу! Yippeee!
Petkaux

@Petkaux У меня есть пример проблемы с той же средой. Я не очень хорошо разбираюсь в Linux .. Итак, не могли бы вы дать мне команду / шаги, что вы пытались решить для вашей проблемы. ?
Мистер Блэк

Ответы:


8

Решением было открыть порт на брандмауэре гостевой ОС, как описано здесь: http://wiki.centos.org/HowTos/Network/IPTables

Настройки сети в Virtualbox были в порядке - мостовая сеть является правильной настройкой.


Спасибо, это заняло у меня некоторое время, чтобы выяснить. firewall-cmd --zone=external --add-service=http --permanent; firewall-cmd --reload
Кристофер Маркиета

3

Отключение внутреннего брандмауэра гостевой ОС, как показано ниже, позволит вам получить доступ. Тип

service iptables stop
chkconfig iptables off

в командной строке, когда в гостевой ОС.


Спасибо, я часами пробовал разные настройки для доступа к серверу на моей CentOS VM.
uınbɐɥs

Просто и элегантно!
Edward_178118
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.