2018 / 06 / 23
by John Yuan

Linux firewalld 使用简记

firewalld 是 CentOS 7 默认的防火墙,使用此工具来管理网络端口十分便利。本文主要记录在 CentOS 7 中如何使用 firewall-cmd 来开启或关闭指定的端口号。

本文只是一个速查笔记,完整的 firewalld 文档请查阅: Documentation | firewalld

方法一: 使用内置服务开放常用的端口

如果你只是想开放 80 端口,建议使用 firewalld 内置的 http 服务:

# 开启 http 服务,该命令会打开 80 端口
firewall-cmd --permanent --zone=public --add-service=http
# 重启 firewalld 以使配置生效
firewall-cmd --reload

除了 http 服务以外,firewalld 还内置其他很多常见的服务(比如: https),查看所有可用的服务,请使用以下命令:

# 查看所有服务
firewall-cmd --get-services

备注: 如果不确定某个服务所开放的端口号,前往 /usr/lib/firewalld/services 目录查看服务对应的 XML 文件即可。

移除指定的服务:

# 示例: 移除 http 服务(关闭80端口)
firewall-cmd --permanent --zone=public --remove-service=http
# 重启 firewalld 以使配置生效
firewall-cmd --reload

方法二: 开放指定的端口号

如果你想开放的端口不属于常见的服务,你可以使用以下命令来开放或关闭指定的端口:

# 开放 8080 端口
firewall-cmd --permanent --zone=public --add-port=8080/tcp
# 重启 firewalld 以使配置生效
firewall-cmd --reload

# 关闭 8080 端口
firewall-cmd --permanent --zone=public --remove-port=8080/tcp
# 重启 firewalld 以使配置生效
firewall-cmd --reload

查看当前开放的端口或服务

firewall-cmd --list-all