linux 使用firewalld添加开放端口

博主使用的Redhat本身没有iptables服务,也不能联网安装,因此,只能使用firewalld添加开放端口,以下是一些最基本的关于firewalld的命令:
启动:
systemctl start firewalld
查看状态:
systemctl status firewalld
或者
firewall-cmd --state
停止:
systemctl disable firewalld
禁用:
systemctl stop firewald
接下来是相关教程:

1、查看firewall是否运行,下面两个命令都可以:

systemctl status firewalld.service
firewall-cmd --state

2、查看default zone和active zone(暂时我也不知道这是干什么用的):

我们还没有做任何配置,default zone和active zone都应该是public,命令为:

firewall-cmd --get-default-zone
firewall-cmd --get-active-zones

3、查看当前开了哪些服务:

firewall-cmd --list-services

其实这里的每一个服务名对应对应/usr/lib/firewalld/services下面一个xml文件,文件有描述该服务用了什么协议,对应的端口号,这些端口即为外界可以访问的端口。

4、查看还有哪些服务可以打开

firewall-cmd --get-services

你可以现在这里找找有没有你需要开启的服务(例如WebSphere或者db2),如果没有的话,根据上面说的,每一个服务对应一个xml,这时你就需要自己创建一个xml文件了。
5、查看所有打开的端口(博主在执行这条命令后没有显示任何东西,不知道是什么原因):

firewall-cmd --zone=public --list-ports

6、自己添加一个服务:

在/usr/lib/firewalld/services,随便拷贝一个xml文件到一个新名字,比如ssh.xml,把里面的short(这个改不改基本没有什么问题)、protocolport,其中protocol可以通过命令:

netstat -anp | grep 你的端口号

显示的第一列就是你所用到的协议,有时可能显示tcp6这种协议加序号的格式,依旧是tcp协议。例如WebSphere就是tcp协议,端口号为9060文件添加好后,记住改名字,例如:WebSphere.xml,保存在/usr/lib/firewalld/services目录下。
然后更新防火墙规则:

firewall-cmd --reload 

查看还有哪些服务可以打开,现在应该可以看到你添加的WebSphere服务。
此时就可以添加你的WebSphere服务到firewalld,执行命令:

firewall-cmd --add-service=WebSphere

这样添加的service当前立刻生效,但系统下次启动就失效,可以测试使用。要永久开发一个service,加上 –permanent:

firewall-cmd --permanent --add-service=WebSphere

这时候你的9060端口就可以被外网访问,你可以试试telnet命令看看有没有成功。
网上有的说此时还得再重启一下firewalld服务才可以真正成功,假如你的外网依旧无法telnet的话,可以试试重启一下firewalld服务。
下面是一篇关于讲解firewalld的文章:Firewalld的结构,有兴趣的小伙伴可以自己看看。

猜你喜欢

转载自blog.csdn.net/death05/article/details/79122220