CentOS 升级到 7 之后,发现无法使用 iptables 控制 Linuxs 的端口,google 之后发现 Centos 7 使用 firewalld 代替了原来的 iptables。下面记录如何使用 firewalld:
1. firewalld 的基本使用
#启动:
systemctl start firewalld
#关闭:
systemctl stop firewalld
#查看状态:
systemctl status firewalld
#开机禁用:
systemctl disable firewalld
#开机启用:
systemctl enable firewalld
2. systemctl 是 CentOS7 的服务管理工具中主要的工具,它融合之前 service 和 chkconfig 的功能于一体
#启动一个服务:
systemctl start firewalld.service
#关闭一个服务:
systemctl stop firewalld.service
#重启一个服务:
systemctl restart firewalld.service
#显示一个服务的状态:
systemctl status firewalld.service
#在开机时启用一个服务:
systemctl enable firewalld.service
#在开机时禁用一个服务:
systemctl disable firewalld.service
#查看服务是否开机启动:
systemctl is-enabled firewalld.service
#查看已启动的服务列表:
systemctl list-unit-files|grep enabled
#查看启动失败的服务列表:
systemctl --failed
3. 配置 firewalld-cmd
# 查看版本:
firewall-cmd --version
# 查看帮助:
firewall-cmd --help
# 显示状态:
firewall-cmd --state
# 查看所有打开的端口:
firewall-cmd --zone=public --list-ports
# 更新防火墙规则:
firewall-cmd --reload
# 查看区域信息:
firewall-cmd --get-active-zones
# 查看指定接口所属区域:
firewall-cmd --get-zone-of-interface=eth0
# 拒绝所有包:
firewall-cmd --panic-on
# 取消拒绝状态:
firewall-cmd --panic-off
# 查看是否拒绝:
firewall-cmd --query-panic
# 重新载入
firewall-cmd --reload
4. 开启一个端口
[root@zhouhuoc ~] firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义: --zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
5. 重新载入防火墙
[root@zhouhuoc ~] firewall-cmd --reload
6. 查看端口是否开放
[root@zhouhuoc ~] firewall-cmd --zone= public --query-port=80/tcp
7. 将端口从开放列表移除
[root@zhouhuoc ~] firewall-cmd --zone= public --remove-port=80/tcp --permanent
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于