这是我的设置。我有一个安装了 Oracle Linux 7 的虚拟机。我用 启动了 apache,service httpd start
它启动没有问题。我在和index.html
中都创建了一个文件。我能够使用或从我的主机访问虚拟机,但当我打开 Web 浏览器并导航到 IP 地址时,服务器没有响应。/var/www/html
/var/www
ping
ssh
我检查了一下netstat -plent
,发现 80 端口正在监听:
# netstat -plent
tcp6 0 0 :::80 :::* LISTEN 0 121584 36432/httpd
答案1
答案2
按照 netstat 输出,您仅监听 IPv6。
您需要仅使用 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
如果默认策略不是接受,并且您没有允许 HTTP 流量进入的规则,或者您有阻止它的规则,那就可以解释。