問題:
虛擬機上安裝centOS7,配置Tomcat併成功啓動。但是在瀏覽器裏卻無法訪問Tomcat 8080端口。
原因:
因爲CentOS 7或RHEL 7或Fedora,默認防火牆是由firewalld來管理,而firewalld沒有對8080端口開放,所以進行8080端口開放配置。
CentOs 7 之前的版本,由iptables控制Linuxs的端口。
CentOS升級到7之後,無法使用iptables控制Linuxs的端口,因爲是Centos 7使用firewalld代 替了原來的iptables。
以下提供兩種方式解決該問題。
解決方案一,還原傳統的iptables管理方式。
1、執行命令設置firewalld
systemctl stop firewalld
systemctl mask firewalld
2、安裝iptables-services
執行命令:yum install iptables-services
如果不安裝,直接執行iptables相關命令會報錯:Failed to stop iptables.service: Unit iptables.service not loaded.
3、關閉防火牆
執行命令:systemctl stop iptables
4、編輯 vi /etc/sysconfig/iptables
添加以下內容並保存退出:
#允許8080端口通過防火牆
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
#允許3306端口通過防火牆
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
#允許9904端口通過防火牆
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9904 -j ACCEPT
5、重啓防火牆
執行命令:systemctl restart iptables
6、打開外部瀏覽器,輸入http://centOS IP:8080 ,即可看到Tomcat歡迎界面!
解決方案二,firewalld 進行8080端口開放配置
1、在firewalld 上開放8080端口
輸入命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent
命令解析:
--zone #作用域
--add-port=8080/tcp #添加端口,格式爲:端口/通訊協議
--permanent #永久生效,沒有此參數設置,重啓後會失效。
2、重啓防火牆
輸入命令:firewall-cmd --reload
3、打開外部瀏覽器,輸入http://centOS IP:8080,即可看到Tomcat歡迎界面!