在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理,如果要添加范围例外端口,如1000-2000语法命令如下:启用区域端口和协议组合
1
firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<s>]
参数解释
1
2
3
4
--zone # 作用域
--add-port=80/tcp # 添加端口,格式为:端口/通讯协议
--remove-port=80/tcp # 移除端口,格式为:端口/通讯协议
--permanent # 永久生效,没有此参数重启后失效
此举将启用端口和协议的组合。作用域<zone>
可以通过命令firewall-cmd --get-active-zones
查看,端口可以是一个单独的端口<port>
或者是一个端口范围<port>-<port>
。协议可以是tcp
或udp
,实际命令如下:
-
添加
1 2 3
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
-
重新载入
1
firewall-cmd --reload
-
查看
1
firewall-cmd --zone=public --query-port=80/tcp
-
删除
1
firewall-cmd --zone=public --remove-port=80/tcp --permanent
-
其他命令
1 2
firewall-cmd --list-ports # 查看已经开放的端口 firewall-cmd --state # 查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
当然你可以还原传统的管理方式
-
关闭firewalld防火墙
1 2
systemctl stop firewalld systemctl mask firewalld
-
检查是否安装了iptables
1
service iptables status
-
安装iptables及iptables-services
1 2
yum install -y iptables yum install iptables-services
-
设置防火墙开机启动
1 2
systemctl enable iptables systemctl enable iptables.service
-
开启防火墙服务
1
systemctl start iptables.service
-
修改
/etc/sysconfig/iptables
,增加如下一行1
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-
重启防火墙使配置生效
1
systemctl restart iptables.service
其他命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# iptable
systemctl stop iptables
systemctl start iptables
systemctl restart iptables
systemctl reload iptables
# firewalld
systemctl status firewalld # 查看防火墙状态
systemctl start firewalld # 开启防火墙
systemctl stop firewalld # 关闭防火墙
firewall-cmd --permanent --zone=public --add-port=27017/tcp --permanent # 开启指定端口
firewall-cmd --zone=public --remove-port=27017/tcp --permanent # 关闭指定端口
firewall-cmd --permanent --zone=public --add-port=27017-30000/tcp --permanent # 开启指定范围端口
firewall-cmd --permanent --zone=public --add-port=1-65535/tcp --permanent # 开启所有端口
firewall-cmd --zone=public --remove-port=27017-30000/tcp --permanent # 关闭指定范围端口
firewall-cmd --permanent --query-port=27017/tcp # 查看端口是否开放
firewall-cmd --reload # 重启防火墙
firewall-cmd --list-ports # 查看已经开放的端口
iptables -L -n # 查看规则,这个命令是和iptables的相同的
man firewall-cmd # 查看帮助