firewalld的配置存储在/usr/lib/firewalld/和/etc/firewalld/上的各种XML文件中。 1. 系统配置目录:/usr/lib/firewalld/services 目录中存放定义好的网络服务和端口参数,系统参数,不能修改。 2. 用户配置目录:/etc/firewalld/ 公共规则定义在/etc/firewalld/zones/public.xml 中。内容如下:
<?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="dhcpv6-client"/> <service name="ssh"/> </zone>这里指开放端口。两种方法: 1. 命令的方式添加端口
firewall-cmd --permanent --add-port=80/tcp firewall-cmd:是Linux提供的操作firewalld的一个工具;–permanent:表示设置为持久;–add-port:标识添加的端口和协议;另外举几个我感觉有用的例子:
#添加一个范围,9000到9100 firewall-cmd --permanent --add-port=9000-9100/tcp #移除80端口 firewall-cmd --permanent --remove-port=80/tcp2.修改配置文件的方式添加端口
<?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>...</description> <service name="dhcpv6-client"/> <service name="ssh"/> #这里添加规则 <port protocol="tcp" port="80"/> <port protocol="tcp" port="8080"/> </zone>实际上执行命令跟这是一样的效果。 最后重启防火墙,service firewalld restart,使配置生效。 附上常用命令:
#查看状态 firewall-cmd --state #查看规则 firewall-cmd --list-all #重启 service firewalld restart #开启 service firewalld start #关闭 service firewalld stop #查看服务状态 systemctl status firewalld.service #停止服务并取消开机启动 systemctl stop firewalld.service systemctl disable firewalld.service