在 Centos 7 或 RHEL 7 或 Fedora 中防火墙由 firewalld 来管理,而不是 iptables。
一、firewalld 防火墙
语法命令如下:启用区域端口和协议组合
firewall-cmd [--zone=] --add-port=[-]/ [--timeout=]
此举将启用端口和协议的组合。
端口可以是一个单独的端口 或者是一个端口范围 -。
协议可以是 tcp 或 udp。
查看 firewalld 状态
systemctl status firewalld
开启 firewalld
systemctl start firewalld
开放端口
// --permanent 永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent
重新载入
firewall-cmd --reload
查看
firewall-cmd --list-ports
firewall-cmd --zone=public --query-port=80/tcp
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
二、iptables 防火墙
也可以还原传统的管理方式使用 iptables
systemctl stop firewalld
systemctl mask firewalld
安装 iptables-services
yum install iptables-services
设置开机启动
systemctl enable iptables
操作命令
systemctl stop iptables
systemctl start iptables
systemctl restart iptables
systemctl reload iptables
保存设置
service iptables save
开放某个端口 在 /etc/sysconfig/iptables 里添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT