Centos7防火墙firewall

注:

CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,baidu之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口

开启防火墙,必须在本地登录情况下执行


防火墙状态
sudo systemctl status firewalld

自启动
sudo systemctl enable firewalld

开启(如果只用这个,重启服务器后不会自动开启)
sudo systemctl start firewalld
			

开放一个端口,比如30001


permanent 代表永久生效,不加的话,重启服务器后就没了
sudo firewall-cmd --zone=public --permanent --add-port=30001/tcp
			

删除一个开放端口,比如30001


sudo firewall-cmd --remove-port=30001/tcp
			

重启防火墙


sudo firewall-cmd --reload
			

查询端口号30001是否开启


sudo firewall-cmd --query-port=30001/tcp
			

查询所有开放的端口


确认规则是否正确添加和持久化。你可以使用以下命令查看当前的防火墙规则:
sudo firewall-cmd --list-all
或者查看永久规则:
sudo firewall-cmd --permanent --list-all
只查看端口规则
sudo firewall-cmd --list-port
或者查看永久规则:
sudo firewall-cmd --permanent --list-port
			

指定端口允许指定IP访问


sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="xxx.xxx.xxx.xxx" port protocol="tcp" port="22" accept"
			

查看指定端口允许指定IP访问的配置信息


sudo firewall-cmd --zone=public --list-rich-rules