firezone 是基于 wireguard 的网关封装服务,非独立协议;它依赖内核≥5.6(或≥5.0+backport)、iptables/nftables及wireguard模块,通过web ui和cli统一管理密钥、acl、路由等,配置持久化于sqlite数据库,不直接读写/etc/wireguard/*.conf。

Firezone 本质是 WireGuard 网关封装,不是独立协议
Firezone 不是替代 WireGuard 的新方案,而是基于 wireguard-tools 和内核模块的管理层。它把密钥生成、配置分发、用户生命周期、ACL 控制、Web UI 和日志聚合打包成一个可部署服务。安装 Firezone 前,你必须确认系统已满足 WireGuard 运行前提:内核 ≥ 5.6(或 ≥ 5.0 + backported 模块),且 iptables 或 nftables 可用。CentOS 7 / RHEL 7 / Rocky Linux 8 以下版本若内核低于 5.0,需先升级内核并启用 kmod-wireguard;否则 firezoned 启动时会报 Operation not supported 错误。
用官方脚本安装 Firezone(仅支持 x86_64 Debian/Ubuntu/Rocky/CentOS)
Firezone 官方不提供 RPM/DEB 包,只维护一个带校验的安装脚本。运行前确保 curl 和 sudo 可用,并关闭 SELinux(Firezone 当前不兼容 enforcing 模式):
- 执行
curl -fsSL https://get.firezone.dev | sudo bash - 脚本自动检测系统类型,下载对应二进制和 systemd 单元,写入
/opt/firezone - 安装后不会立即启动,需手动初始化:
sudo firezone init(该命令会生成 CA、管理员用户、默认策略,并提示访问地址) - 若提示
Failed to start firezoned.service: Unit firezoned.service not found,说明内核模块未加载,应先运行sudo modprobe wireguard并检查lsmod | grep wireguard
firezone init 生成的配置不可直接编辑
Firezone 将所有配置持久化在 SQLite 数据库(/var/lib/firezone/firezone.db)中,而非传统 /etc/wireguard/*.conf。修改客户端配置、添加 Peer、调整 AllowedIPs 或 DNS,必须通过 Web UI(默认 https://<server-ip>:443</server-ip>)或 CLI 工具 firezone-cli 操作。直接改 /etc/wireguard/wg0.conf 会被下一次 firezoned 重载覆盖——因为 Firezone 在后台用 wg-quick down && wg-quick up 动态刷新接口,但配置源始终是数据库。
常见误操作包括:
- 手动运行
wg-quick up wg0导致接口冲突(Firezone 自己管理wg0) - 在
/etc/wireguard/下新增其他 conf 文件,Firezone 不识别也不加载 - 修改
/etc/firezone/config.toml中的listen_addr后未执行sudo systemctl restart firezoned
防火墙必须放行 UDP 51820,且不能与现有 wg-quick 冲突
Firezone 默认监听 UDP 端口 51820(可改),但它不接管 iptables/nftables 规则——这部分由管理员自行配置。如果你之前用 wg-quick 配置过其他 WireGuard 接口(如 wg1),要特别注意 PostUp/PostDown 中的 MASQUERADE 和 FORWARD 规则是否与 Firezone 的流量路径重叠。例如:
- Firezone 要求
net.ipv4.ip_forward = 1,但若已有其他服务启用了iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE,可能造成 SNAT 重复或路由混乱 - 使用 firewalld 时,必须运行:
sudo firewall-cmd --add-port=51820/udp --permanent && sudo firewall-cmd --reload - 使用 ufw 时,禁用其默认的
ufw route行为,避免与 Firezone 的策略引擎冲突
最稳妥的做法是:清空已有 WireGuard 相关的 iptables 规则,仅保留 Firezone 初始化时输出的那几条(它会在首次启动时打印出推荐规则),后续策略全部交由 Firezone Web UI 管理。











