firewalld可通过命令开放端口或创建自定义服务管理流量,需使用--permanent添加规则并reload生效,推荐自定义服务方式便于维护。

在Linux系统中,firewalld 是一个动态管理防火墙的工具,支持网络区域、服务和端口配置。通过 firewalld 添加服务或开放端口,可以控制哪些网络流量被允许通过。以下是使用 firewalld 开放端口或添加自定义服务的方法。
查看 firewalld 状态
在进行任何配置前,先确认 firewalld 是否正在运行:
sudo systemctl status firewalld
如果未运行,启动并设置开机自启:
sudo systemctl start firewalld sudo systemctl enable firewalld
开放端口(临时或永久)
可以直接通过端口号开放服务,比如开放 8080/tcp 端口:
sudo firewall-cmd --permanent --add-port=8080/tcp
若要开放 UDP 端口,将 tcp 改为 udp:
sudo firewall-cmd --permanent --add-port=53/udp
配置完成后,重新加载防火墙规则:
sudo firewall-cmd --reload
查看已开放的端口:
sudo firewall-cmd --permanent --list-ports
添加自定义服务
对于常用服务(如 Nginx、Redis 等),推荐创建自定义服务文件,便于管理。
步骤如下:
# 1. 进入服务配置目录 sudo cd /usr/lib/firewalld/services2. 创建服务文件,例如 myapp.xml
sudo vim myapp.xml
文件内容示例(开放 8080/tcp):
MyApp Custom service for MyApp on port 8080
保存后,重新加载服务配置:
sudo firewall-cmd --reload
启用该服务:
sudo firewall-cmd --permanent --add-service=myapp
查看已启用的服务:
sudo firewall-cmd --permanent --list-services
验证端口是否开放
使用以下命令检查特定端口是否在规则中:
sudo firewall-cmd --list-all
也可以从外部使用 telnet 或 nmap 测试端口连通性:
telnet your_server_ip 8080 nmap -p 8080 your_server_ip
基本上就这些。通过 firewalld 添加端口或服务,关键是使用 --permanent 选项持久化规则,并在修改后执行 reload。自定义服务方式更规范,适合团队维护。










