目录
前言
一 7步解决方案
二 补充:Centos中如何打开和关闭防火墙??
1 防火墙系统为firewall的关闭和打开方式
2 CentOS 7以上默认使用firewall作为防火墙改为iptables
linux中明明启动了tomcat服务器,但是在网页上却打不开,那么十有八九是因为linux防火墙的问题,要么完全关闭防火墙,此时不太安全,要么就是针对某一个端口,设置其越过防火墙的限制。
Step1. 启动tomcat
进入 tomcat 所在的目录的 bin 的文件夹下执行" ./ startup.sh" 命令 启动 tomcat ,如果出现下面这种情况说明 tomcat 启动 成功。
Step2. 验证 tomcat 是否启动成功
输入" ps -ef|grep tomcat " 命令验证 tomcat 是否启动成功,如果出现下面这种情况说明启动成功。
Step3: 若启动成功,在linux中输入curl http://192.168.112.130:8080(自己linux的ip)看是否正常访问。
如下则表示正常访问:
Step4. 检验防火墙是否启动
输入命令 " firewall-cmd --state " 如果出现如图所示的这种情况说明正在运行,如果没有正在运行需要执行命令" systemctl start firewalld "开启防火墙服务
Step5. 检查8080端口是否被防火墙开启
输入命令" firewall-cmd --permanent --zone=public --list-ports “ 如果终端输出 “8080/tcp” 则说明8080端口被开启
如果没有该输出则需要执行命令" firewall-cmd --zone=public --add-port=8080/tcp --permanent"开启8080端口, 出现" success" 则表示添加成功。
Step6. 重新启动防火墙
输入命令" firewall-cmd --reload" 重新启动防火墙,出现” success“ 字样则表示重新启动成功。
Step7.验证开启的8080端口是否生效
输入命令” firewall-cmd --zone=public --query-port=8080/tcp“ 验证8080端口是否生效,如果出现 ” yes “字样则代表生效。
此时,重新启动tomcat就可以使用外部浏览器访问centos 中的tomcat啦。
Centos 7中默认的linux的系统默认防火墙不是iptables,而是firewall,此时应该使用以下方式关闭防火墙了。
(1)关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
(2)开启端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent #设置8080端口越过防火墙的限制
命令含义
--zone #作用域
--add-port=8080/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
(3)重启防火墙
systemctl start firewalld "开启防火墙服务
firewall-cmd --reload
其他常用命令:
firewall-cmd --state ##查看防火墙状态,是否是running
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助
更多命令,使用 firewall-cmd --help 查看帮助文件
CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下
1、关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
2、iptables防火墙(这里iptables已经安装,下面进行配置)
vi/etc/sysconfig/iptables #编辑防火墙配置文件
# sampleconfiguration for iptables service
# you can edit thismanually or use system-config-firewall
# please do not askus to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT[0:0]
:OUTPUT ACCEPT[0:0]
-A INPUT -m state--state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -jACCEPT
-A INPUT -i lo -jACCEPT
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -jACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080-j ACCEPT
-A INPUT -j REJECT--reject-with icmp-host-prohibited
-A FORWARD -jREJECT --reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
备注:这里使用80和8080端口为例。***部分一般添加到“-A INPUT -p tcp -m state --state NEW -m tcp--dport 22 -j ACCEPT”行的上面或者下面,切记不要添加到最后一行,否则防火墙重启后不生效。
systemctlrestart iptables.service #最后重启防火墙使配置生效
systemctlenable iptables.service #设置防火墙开机启动
致谢:本篇博文参考了以下三篇博文,特此感谢!!!
参考博文:https://blog.csdn.net/weixin_39477597/article/details/82464731
参考博文:https://blog.csdn.net/libsyc/article/details/78342851
参考博文:https://www.cnblogs.com/yyxq/p/10551274.html