UFW通过预定义的INI格式应用配置文件简化端口管理,支持查看、启用、自定义及多端口/协议规则;自定义需存于/etc/ufw/applications.d/并运行ufw app update刷新缓存。

UFW(Uncomplicated Firewall)通过应用配置文件(application profiles)简化服务端口管理,让非专业用户也能安全开放常用服务。这些配置文件本质是预定义的规则集合,存放在 /etc/ufw/applications.d/ 目录下,以 `.ini` 格式描述服务名称、端口、协议及说明。
查看和启用内置应用配置文件
系统自带的常见服务(如 OpenSSH、Nginx、Apache)通常已预置配置文件。可执行以下命令列出所有可用 profile:
sudo ufw app list
若看到 OpenSSH,即可直接启用:
sudo ufw allow OpenSSH
这条命令等价于 sudo ufw allow 22/tcp,但更语义化、易维护。启用后可通过 sudo ufw status verbose 查看生效规则。
编写自定义应用配置文件
当运行非标准端口的服务(如监听 8080 的 Web 应用)或私有服务时,需手动创建 profile。例如,为一个监听 TCP 8080 端口的内部 API 服务新建配置:
- 新建文件:
sudo nano /etc/ufw/applications.d/myapi - 写入内容(注意格式严格,空行与缩进不影响,但键名必须准确):
[MyAPI] title=Internal REST API Service description=HTTP API running on port 8080 for internal tools ports=8080/tcp
- 保存后刷新 UFW 缓存:
sudo ufw app update MyAPI - 验证是否识别:
sudo ufw app list | grep MyAPI,应显示MyAPI
支持多端口与多协议的高级写法
一个 profile 可同时开放多个端口或混合协议。例如,某监控服务需 TCP 9100(metrics)和 UDP 9101(health ping):
[NodeExporter] title=Prometheus Node Exporter description=System metrics collector ports=9100/tcp|9101/udp
也可用逗号分隔多个 TCP/UDP 组合:
ports=22/tcp,80/tcp,443/tcp,53/udp
注意:UFW 不支持端口范围(如 8000:8010/tcp)在 profile 中直接声明,这类需求仍需用原生命令 sudo ufw allow 8000:8010/tcp 配置。
禁用、删除与调试技巧
已启用的 profile 可直接拒绝或删除规则:
- 禁止某服务:
sudo ufw deny MyAPI(对应关闭 8080/tcp) - 彻底删除该 profile 规则:
sudo ufw delete allow MyAPI - 移除配置文件本身后,需运行
sudo ufw app update --remove MyAPI清理缓存(UFW 22.04+ 支持;旧版本需手动删缓存或重启 ufw) - 调试时可查看 profile 解析结果:
sudo ufw app info MyAPI,输出包括端口、协议、描述等,确认无语法错误
合理使用应用配置文件能让防火墙策略更清晰、可复用,也便于团队协作和配置同步。关键在于保持文件命名简洁、描述准确,并在变更后及时更新缓存。










