我已经在我们工作区的域上设置了一个 Web 服务器。该服务器已配置好,Apache 可以在其上运行,一切似乎都运行正常。
但是,我很难通过 Web 浏览器访问该机器。我输入了机器的 IP 地址,浏览器却提示无法显示页面。我还尝试 ping 机器的 IP 地址,并收到了响应。
我还检查了 Apache (httpd) 是否正在运行,我可以确认它正在运行。以下是服务器上保存的 hosts 文件(域为 company.internal):
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.10 localhost redrum.company.internal
我还编辑了 httpd.conf 文件,添加以下内容:
服务器名称 192.168.1.10:80
还有什么原因可能导致该问题?
编辑
我运行后netstat
发现,唯一的条目httpd
设置为 listen。使用命令fuser 80/tcp
我得到了以下信息:
80/TCP:1476 1478 1479 1480 1482 1483 1484 1485 1486
然后我运行,ps aux | grep 1476 | grep -v grep
结果返回:
根 1476 0.0 3.7 432020 18912 ? Ss 12:00 0:00 /usr/sbin/httpd
最后运行后pgrep httpd
返回了以下内容:
1476
1478
1479
1480
1481
1482
1483
1484
1485
1486
httpd
在端口 80 上运行并监听也是如此。
编辑2:
我已经运行了netstat -an | grep :80
并且返回了以下信息:
tcp 0 0 :::80 :::* 侦听
答案1
我确信这是防火墙(正如 David Schwartz 提到的)。CentOS iptables 默认不允许 HTTP 访问。请运行iptables -F
并检查问题是否仍然存在。您可以编辑/etc/sysconfig/iptables
以进行永久更改。
答案2
这不是完整的答案,但:FWIW,您要回答“端口 X 上正在监听什么?”这个问题的命令是 lsof。我通常的咒语是lsof -i -Pn | grep LISTEN
-罗宾