Apache 正在运行但服务器没有响应?

Tre*_*eyK 3 httpd

我的服务器上安装了新的 Fedora 15,这给我带来了麻烦。

我的第一个问题是 httpd 无法启动。我不断收到一个错误,表明存在段错误,系统管理员最终将其追溯到 mod_perl 的问题,因此他将其删除,httpd 开始正常。

不过,我最近遇到了另一个非常令人烦恼的问题:我没有得到 Apache 的响应。

  • 我可以通过 SSH 连接到我的服务器
  • 我有正确的 IP 地址
  • 它发出 ping 声
  • httpd 服务已启动并正在运行
  • 我在 webroot 中有一个 index.html 文件
  • 如果我在通过 SSH 连接到服务器本身时 wget XX.XXX.XXX.XXX(服务器的 IP 地址),我会收到响应

但是每当我从任何计算机向服务器发出请求时,无论 ISP 是什么,我都没有得到任何响应 - Chrome 说它甚至无法连接。我完全不知道如何修复它,而且我已经对系统管理员进行了很多窃听。我的机器人团队从一家公司免费获得了这个服务器空间,我喜欢尽可能少地向系统管理员询问此类事情,但我想如果这个问题没有找到任何解决方案,我就不得不这样做。

谢谢你的帮助。

Nag*_*gev 5

在 CentOS 7 或类似操作系统上,检查您是否正在运行firewalld:

systemctl status firewalld
Run Code Online (Sandbox Code Playgroud)

Ubuntu 有ufw,它是一个更友好的iptables. man ufw详情请参阅。

如果您看到该服务正在运行,您可以通过添加该服务来打开端口 80,如root 用户http所述:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我曾经在一台机器上安装了 CentOS 7 mini,默认情况下没有安装防火墙。但是在另一台机器上使用另一个ISO,它是自己安装的。而且我一直查错了,这告诉我没有防火墙!

nmap 是一个有用的命令,可以告诉您这肯定是防火墙:

sudo nmap -sS -O -p80 ip-address

Starting Nmap 7.01 ( https://nmap.org ) at 2017-08-11 15:56 IST
Nmap scan report for ip-address
Host is up (0.0011s latency).
PORT   STATE SERVICE
80/tcp open  http
Run Code Online (Sandbox Code Playgroud)

如果您看到Filtered而不是open,则毫无疑问存在防火墙。如果您打开了多个终端,请仔细检查您是否在正确的机器上!

从终端进行检查的另一种快速方法是使用curl。在服务器上:

curl localhost
Run Code Online (Sandbox Code Playgroud)

That should return the homepage. On another machine on the network:

curl 1.2.3.4     # use the actual host's IP address
Run Code Online (Sandbox Code Playgroud)

That should also return the homepage. If you have to press CTRL+C because it sits waiting, or if you get an error like Failed to connect to 1.2.3.4 port 80: No route to host but got a response when you did it locally, it's a clear sign that something, most likely a firewall, is blocking access.