这是我的设置。 我有一个运行Oracle Linux 7的虚拟机。 我开始service httpd start apache和它开始没有问题。 我在/var/www/html和/var/www创build了一个index.html文件。 我能够使用ping或ssh从主机访问虚拟机,但是当我打开Web浏览器并导航到IP地址时,服务器不响应。
我检查了netstat -plent ,它显示端口80正在监听:
# netstat -plent tcp6 0 0 :::80 :::* LISTEN 0 121584 36432/httpd
我看了 几个build议iptables可能是问题的答案 ,但是这些解决scheme都没有帮助。 还有什么可能导致这个问题呢?
您忘记了在防火墙中打开端口。
例如。
firewall-cmd --add-service=http
你只在IPv6上进行监听,通过netstat输出。
您只需要使用IPv6访问网站,或者在apache中创build另一个侦听器指令来侦听0.0.0.0:80。 在httpd.conf中:
Listen 0.0.0.0:80
当然,您只能听取您想要为其提供stream量的IP地址。
但是,如果您在Linux中支持双栈套接字,则此build议不正确。 您可能只需检查是否启用了双栈侦听。 使用procfs,检查这个文件:
/proc/sys/net/ipv6/bindv6only
如果不是0,则需要在configuration中将其更改为0,或者明确地监听IPv4。
另外,请检查您的防火墙规则; 如果你拒绝ipv4或ipv6上的stream量,这将解释它。 在这里检查:
iptables -t filter -nvL INPUT ip6tables -t filter -nvL INPUT
如果默认策略不是“接受”,并且您没有允许HTTP通信的规则,或者如果您有规则阻止它,则可以解释。