Вот моя установка. У меня есть vm, работающий с установленным Oracle Linux 7. Я запустил апача с service httpd start
и это запустилось без проблемы. Я создал index.html
файл в обоих /var/www/html
и /var/www
. Я могу достигнуть VM от своего использования хост-машины ping
или ssh
, но когда я открываю веб-браузер и перешел к IP-адресу, сервер не отвечает.
Я проверил netstat -plent
и это показывает, что порт 80 слушает:
# netstat -plent
tcp6 0 0 :::80 :::* LISTEN 0 121584 36432/httpd
Я посмотрел несколькона ответы, которые предполагают, что iptables может быть проблемой, но ни одно из тех решений не помогло. Что еще могло бы вызывать проблему?
Вы слушаете только IPv6, используя этот вывод netstat.
Вам нужно либо получить доступ к веб-сайту только с помощью IPv6, либо создать другую директиву слушателя в apache для прослушивания 0.0. 0,0: 80. В httpd.conf:
Listen 0.0.0.0:80
вы, конечно, можете прослушивать только IP-адрес, с которого вы хотите обслуживать трафик.
Однако этот совет неверен, если у вас есть поддержка сокетов с двойным стеком в Linux. Вам может потребоваться только проверить, включено ли прослушивание двойного стека. Используя procfs, проверьте этот файл:
/proc/sys/net/ipv6/bindv6only
Если он не равен 0, вам необходимо изменить его в вашей конфигурации на 0 или явно прослушивать IPv4.
Также проверьте правила вашего брандмауэра; если вы отклоняете трафик на ipv4 или ipv6, это объяснит это. Проверьте здесь:
iptables -t filter -nvL INPUT
ip6tables -t filter -nvL INPUT
Если политика по умолчанию не ACCEPT, и у вас нет правила, разрешающего HTTP-трафик, или если у вас есть правила, блокирующие его, это объяснит.