博主这次买的centos7自带的firewalld,和之前的ipatches很不一样,所以学习了下在firewalld下开放端口。以开启a服务500端口为例。
首先是一些最基本的关于firewalld的命令:
启动:
$systemctl start firewalld
查看状态:
$systemctl status firewalld
或者
$firewall-cmd --state
停止:
$systemctl disable firewalld
禁用:
$systemctl stop firewalld
以下是一些关于vim最基本的的操作:
1 用vi打开一个yum文件:
vi /usr/bin/yum
2 按 i 键后 进入insert模式,进入insert模式后才能进行修改
3 修改
4 按esc键退出修改模式
5 然后:wq 保存文件并退出vi(注意有个冒号)
好了,现在开始具体操作~
1 查看firewall是否运行,下面两个命令都可以:
$
systemctl status firewalld.service
$firewall-cmd --state
2 查看当前开了哪些服务:
$
firewall-cmd --list-services
其实这里的每一个服务名对应对应/usr/lib/firewalld/services下面一个xml文件,文件有描述该服务用了什么协议,对应的端口号,这些端口即为外界可以访问的端口。
3 查看还有哪些服务可以打开
$
firewall-cmd --get-services
你可以现在这里找找有没有你需要开启的服务(例如http或者db2),如果有,比如你要打开http的80端口,就可以跳到下文查看打开方法了,如果没有的话,根据上面说的,每一个服务对应一个xml,这时你就需要自己创建一个xml文件,才能开启相应的服务了。(博主猜测这里可以偷懒,把已有的xml文件改下端口号好了,但是为了不给以后的端口操作带来隐患,还是老老实实新建文件吧)
4 自己添加一个服务:
(这里用到一些简单的文件操作命令,一并附上)
a. 进入防火墙规则所在目录
$
cd /usr/lib/firewalld/services//cd后面有空格
b. 随便拷贝一个xml文件到一个新名字,比如ssh.xml,
$
cp ssh.xml a.xml//把ssh.xml复制粘贴,并重新命名为a.xml
c.由于你现在已经在a.xml所在的文件夹里面了,直接输入 vim a.xml 即可编辑文件。
e.把里面的short(这个改不改基本没有什么问题,只是为了方便阅读)、protocol、port修改掉,注 千万不要不小心改掉了里面的必须格式,比如博主把
$
netstat -anp | grep 500//你的端口号
显示的第一列就是你所用到的协议,有时可能显示tcp6这种协议加序号的格式,依旧是tcp协议。
f.然后更新防火墙规则:
$
firewall-cmd --reload
g.查看还有哪些服务可以打开# firewall-cmd –get-services,现在应该可以看到你添加的a.xml服务。
此时就可以添加你的a服务到firewalld,执行命令:
$
firewall-cmd --add-service=a
这样添加的service当前立刻生效,但系统下次启动就失效,可以测试使用。要永久开发一个service,加上 –permanent:
$
firewall-cmd --permanent --add-service=a
h. 这时候你的新增端口就可以被外网访问,你可以试试telnet命令看看有没有成功。
假如你的外网依旧无法telnet的话,可以试试重启一下firewalld服务
$
firewall-cmd --reload//在不改变状态的条件下重新加载防火墙。
- 本文作者: Baili
- 本文链接: https://baili90.github.io/2021/03/27/2021-03-27-firewalld0/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
