本文介紹如何解決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
更多信息,請參考以下鏈接: