我遇到了一些与网站服务器无关的问题,因此我停止了 iptables。从那时起,apache 就不再提供页面服务了。我只收到错误“无法访问此站点。my.site.org 响应时间太长”。我尝试重新安装 apache、禁用 php、更改 www 文件的所有者/组以及其他十几件事。没有服务器端错误,而且看起来 apache 正在运行,如何才能让 apache 再次提供页面服务,而无需重新启动 iptables,因为这会破坏服务器的其余部分?
编辑:
不会让我复制前两个命令但可以复制第三个命令:
root@mineos ~# lsof -i
(LISTEN)
apache2 649 root 4u IPv6 11604 0t0 TCP *:http (LISTEN)
apache2 9079 www-data 4u IPv6 11604 0t0 TCP *:http (LISTEN)
apache2 9080 www-data 4u IPv6 11604 0t0 TCP *:http (LISTEN)
apache2 9081 www-data 4u IPv6 11604 0t0 TCP *:http (LISTEN)
apache2 9082 www-data 4u IPv6 11604 0t0 TCP *:http (LISTEN)
apache2 9083 www-data 4u IPv6 11604 0t0 TCP *:http (LISTEN)
我尝试了所有这些端口,但所有端口都拒绝连接。
答案1
您能向我们展示一下 apache 工作时所拥有的 iptables 规则吗?
$ iptables -L -n
and
$ iptables -t nat -L -n
还要检查 apache 正在监听的地址和端口。
这是一个大胆的猜测,但可能设置了一条 iptables 规则,将外部请求转发到您服务器上的端口 80,该端口是 apache 实际监听的端口。停止 iptables 会禁用该规则,因此您的请求不会得到答复。
编辑:
Apache 确实正在监听端口 80,但是......
我从你的 iptables 规则中看到,你的 INPUT 链的默认策略是DROP
。如果你通过简单地刷新所有链来“停止” iptables,那么你的机器将不接受任何内容。
防火墙停止后,尝试以下操作:
$ iptables -P INPUT ACCEPT
这将真正消除任何过滤。