本文介绍如何解决Fedora 28服务器Web服务无法访问的问题,主要原因是防火墙阻止了Web服务的访问。
临时关闭防火墙(仅供测试):
systemctl stop firewalld.service
如果Web服务恢复正常,则说明防火墙是问题所在。 接下来,我们将学习如何正确配置防火墙以允许Web服务访问。
Fedora 28 使用 firewalld 替代了传统的 iptables。 使用 firewalld 开放80端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令解释:
重启防火墙使配置生效:
firewall-cmd --reload
如果以上步骤仍然无法解决问题,可以尝试卸载 firewalld 并安装 iptables:
卸载firewalld:
yum remove firewalld
安装iptables:
yum install iptables-services
编辑iptables配置文件:
vi /etc/sysconfig/iptables
在默认的22端口规则之后添加以下两行,允许80和3306端口通过:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重要提示: 将规则添加到22端口规则之后,而非配置文件末尾,避免防火墙启动失败。 正确的配置文件示例如下:
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
重启iptables服务并使其开机启动:
systemctl restart iptables.service systemctl enable iptables.service
更多信息,请参考以下链接: