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