CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,baidu之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口
防火墙状态
sudo systemctl status firewalld
自启动
sudo systemctl enable firewalld
开启(如果只用这个,重启服务器后不会自动开启)
sudo systemctl start firewalld
permanent 代表永久生效,不加的话,重启服务器后就没了
sudo firewall-cmd --zone=public --permanent --add-port=30001/tcp
sudo firewall-cmd --remove-port=30001/tcp
sudo firewall-cmd --reload
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
sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="xxx.xxx.xxx.xxx" port protocol="tcp" port="22" accept"
sudo firewall-cmd --zone=public --list-rich-rules