У меня возникли проблемы с доступом к серверу Apache с хоста.
У меня установлена виртуальная машина Fedora 15 VirtualBox на Windows 7. В этой виртуальной машине у меня запущен сервер Apache, который отлично работает в гостевой ОС.
Не знаю, что еще можно сделать, чтобы это заработало.
Вот моя конфигурация. IP-адрес ОС хоста:
IPv4 Address. . . . . . . . . . . : 192.168.0.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.2
Для ВМ у меня установлено два сетевых адаптера:
- NAT, чтобы виртуальная машина имела доступ к Интернету, все работает.
- Адаптер, работающий только на хосте.
Вот конфигурация гостя:
[root@localhost network-scripts]# ifconfig
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:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1394 (1.3 KiB) TX bytes:1394 (1.3 KiB)
p2p1 Link encap:Ethernet HWaddr 08:00:27:DD:DD:EA
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fedd:ddea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1289 errors:0 dropped:0 overruns:0 frame:0
TX packets:1207 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:936406 (914.4 KiB) TX bytes:137003 (133.7 KiB)
p7p1 Link encap:Ethernet HWaddr 08:00:27:44:A3:DB
inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe44:a3db/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:313 errors:0 dropped:0 overruns:0 frame:0
TX packets:386 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:30505 (29.7 KiB) TX bytes:44783 (43.7 KiB)
Когда я это делаю ping 192.168.56.101
с хоста, я получаю правильные ответы, но все попытки доступа к веб-сервису терпят неудачу. Я получаю ошибки тайм-аута.
решение1
Обычно, когда трафик ICMP (например, ping) разрешен для виртуализированного гостя, но трафик TCP (например, HTTP-запросы) блокируется, проблема связана с программным брандмауэром, работающим в гостевой ОС.
Примечание:Синтаксис команд в этом объяснении специфичен для Fedora Core, но общие шаги можно абстрагировать для использования в других дистрибутивах Linux.
В установках Fedora Core по умолчанию IPTables включен из коробки. Проверьте статус службы IPTables, чтобы узнать, находится ли она в состоянии «активно».
[root@gauss ~]# /bin/systemctl status iptables.service
Кроме того, чтобы увидеть текущие активные правила IPTables, проверьте статус сценария инициализации IPTables.
[root@gauss ~]# /usr/libexec/iptables.init status
Если в цепочке INPUT есть правило IPTables, подобное приведенному ниже, оно отвечает за блокировку трафика TCP/IP и UDP к хосту.
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Существует несколько вариантов включения HTTP-трафика (например, добавление правила IPTables в цепочку INPUT для явного приема трафика с TCP на порт 80 из хост-сети гипервизора IP 192.168.56.1, удаление универсального правила DROP в цепочке INPUT и т. д.).
Поскольку гость не имеет выхода во внешний мир и находится в сети, доступной только хосту, самый простой вариант — остановить IPTables и отключить его, чтобы он не запускался автоматически после перезагрузки.
[root@gauss ~]# /bin/systemctl stop iptables.service
[root@gauss ~]# /bin/systemctl disable iptables.service
После завершения этого процесса гостевая ОС Fedora Core сможет обслуживать HTTP-запросы через свой публичный интерфейс, а страницы можно будет просматривать на гипервизоре Windows 7, перейдя по адресу 192.168.56.101 в браузере или любом другом HTTP-клиенте.