我正在运行 Centos 7 的远程虚拟机上配置 Web 服务器。我可以通过 ssh 访问该机器,但是当我安装并配置 Apache 进行简单测试后,我无法访问远程网页。
我尝试从本地计算机 (ubuntu) ping 远程 IP。我收到了这条消息,但没有发生更多事情:
PING <remote ip> (<remote ip>) 56(84) bytes of data.
如果我远程关闭虚拟机,我会得到
From <remote ip> icmp_seq=138 Destination Host Unreachable
当我停止 ping 任务时,我得到
3 packets transmitted, 0 received, 100% packet loss, time 2031ms
我的 iptables 规则如下:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
45 3148 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
禁用 SELinux 不起作用。可能是什么问题呢?
更新:我尝试了以下方法
防火墙cmd --add-service=http --zone=public --permanent
$ nmap -Pn -PS80 <remote ip>
给出以下内容(但是 apache 无法访问)开始 Nmap 7.60 (https://nmap.org) 于 2018-01-27 19:18 CET
Nmap 扫描报告 ip-
主机已启动(0.058 秒延迟)。
未显示:999 个过滤端口
港口国服务
22/tcp 打开 ssh
答案1
在默认配置的 Centos 7 上,安装新的网络服务后,还必须配置软件防火墙以允许它,否则将无法访问。
要立即允许 HTTP:
# firewall-cmd --add-service=http --zone=public
要使设置永久化:
# firewall-cmd --add-service=http --zone=public --permanent
要使设置立即生效并在重新启动后保持不变,您必须使用该firewall-cmd
命令两次:一次不带该--permanent
选项,一次带该选项。
这是iptables
您的 Ubuntu 还是 Centos VM 的输出? TCP 端口 80 上的字节和数据包计数仍然为零,表明没有传入的 HTTP 连接尝试到达该系统。如果那是来自 Centos,那么它和您的nmap
输出一起确认这两个系统之间肯定存在某些阻止 HTTP 连接的东西。