firewall-cmd
是一个用于管理 Linux 系统中 firewalld
的命令行工具。firewalld
是一种动态防火墙配置工具,能够为 IPv4 和 IPv6 提供即时服务和端口过滤功能,并支持丰富的策略选项。使用 firewall-cmd
可以轻松地对系统进行网络访问控制、添加或删除规则。
在大多数 Linux 发行版中,如 CentOS、Fedora、OpenSUSE 等,通常已经预安装了 firewalld
以及相应的管理工具。要检查是否已安装,请使用以下命令:
sudo firewall-cmd --version
若未安装,可以通过发行版的包管理器进行安装。例如,在 Fedora 中可以使用以下命令:
sudo dnf install firewalld
或者在 CentOS 上:
sudo yum install firewalld
安装完成后,启动 firewalld
并设置开机自启:
sudo systemctl start firewalld
sudo systemctl enable firewalld
使用以下命令查看防火墙是否正在运行以及当前的状态:
sudo firewall-cmd --state
如果返回 running
,则表示防火墙正在正常工作。
要查询已配置的服务或端口,请使用以下命令:
sudo firewall-cmd --list-services
查看特定服务的状态:
sudo firewall-cmd --query-service <service-name>
例如,检查 http
服务是否已被添加到防火墙中:
sudo firewall-cmd --query-service=http
允许 HTTP 和 HTTPS 流量:
sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https
或者一次性添加多个服务:
sudo firewall-cmd --add-services=ssh,http,https
开放 8080 端口供 HTTP 流量使用:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
同样可以一次性添加多个端口:
sudo firewall-cmd --zone=public --add-port=22-33/tcp --permanent
对 firewalld
进行任何更改后,需要使用 --permanent
参数来使更改生效,并在重新启动系统时保持这些设置:
sudo firewall-cmd --reload
这会将临时配置文件重载为永久配置文件。
使用 firewall-cmd
可以对网络进行细致的控制。例如,假设只想允许从本地网络访问特定服务:
sudo firewall-cmd --zone=trusted --add-service=http
防火墙在运行时可以动态地添加、修改或删除规则,而无需重启服务。这对于需要快速响应的应用场景非常有用。
firewall-cmd
是 firewalld
防火墙系统的命令行管理工具,提供了丰富的配置选项和灵活的网络策略控制能力。通过它我们可以方便地为系统添加、删除或调整防火墙规则,从而更好地保护系统免受未经授权的访问。
掌握 firewall-cmd
的使用技巧,可以帮助你高效地管理和优化网络访问策略,保障系统的安全性和稳定性。