说明:很多人用CentOS 7时会发现CentOS 6系列中的iptables相关命令不能用了,因为Centos 7使用firewalld代替了原来的iptables。所以iptables相关命令是不能直接使用的,这里说下开放设置端口及firewalld常用命令。当然你也可以选择禁用 firewalld 重新安装使用 iptables 详见文章 -> CentOS 7 安装使用 iptables 防火墙方法介绍

beach-2562563_1280.jpg
beach-2562563_1280.jpg

安装 firewalld & systemd

# 安装 firewalld & systemd 
yum install firewalld systemd -y

# 开启防火墙
systemctl start firewalld.service

# 防火墙开机启动
systemctl enable firewalld.service

firewall-cmd 常用命令

# 开启防火墙
systemctl start firewalld.service

# 防火墙开机启动
systemctl enable firewalld.service

# 关闭防火墙
systemctl stop firewalld.service

# 查看防火墙状态
firewall-cmd --state

# 查看现有的规则
iptables -nL
firewall-cmd --zone=public --list-ports

# 重载防火墙配置
firewall-cmd --reload

# 添加单个单端口
firewall-cmd --permanent --zone=public --add-port=81/tcp

# 添加多个端口
firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp

# 删除某个端口
firewall-cmd --permanent --zone=public --remove-port=81/tcp

# 针对某个 IP开放端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="6379" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.233" accept"

# 删除某个IP
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.51" accept"

# 针对一个ip段访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"

# 规则添加后请记得重载操作使配置生效
firewall-cmd --reload

常用规则在日常情况下基本够用,更多使用姿势请通过 firewall-cmd -h 查看使用