Firezone 教程:VPN 和防火墙网关

June 24, 2026 · View on GitHub

简介

Firezone 是一个基于 WireGuard 构建的开源 VPN 网关和防火墙。它提供安全的远程访问,支持基于身份的策略、分流隧道以及与流行身份提供商的集成,实现零信任网络访问。

架构

组件用途
Gateway(网关)处理 WireGuard 隧道的 VPN 服务器
Control Plane(控制平面)API 和 Web 管理界面
Relay(中继)用于 NAT 穿越的 STUN/TURN 服务器
客户端应用所有平台的原生应用
数据库用于配置存储的 PostgreSQL

系统要求

组件最低配置推荐配置
CPU2 核4 核
内存2 GB4 GB
操作系统Linux x86_64Ubuntu 22.04 或更新
端口UDP 51820UDP 51820, TCP 443
网络公网 IP 地址带 DNS 的公网 IP

安装

Docker Compose

version: '3.8'
services:
  firezone:
    image: firezone/firezone:latest
    ports:
      - "443:443"
      - "51820:51820/udp"
    env_file:
      - .env
    volumes:
      - ./firezone-data:/var/firezone
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv6.conf.all.forwarding=1
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: postgres:15
    volumes:
      - pg-data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: firezone
      POSTGRES_USER: firezone
      POSTGRES_PASSWORD: changeme
    restart: unless-stopped

volumes:
  pg-data:

环境配置

# .env
EXTERNAL_URL=https://vpn.example.com
DEFAULT_ADMIN_EMAIL=admin@example.com
DEFAULT_ADMIN_PASSWORD=securepassword
DATABASE_URL=postgres://firezone:changeme@db/firezone
SECRET_KEY_BASE=generate-a-long-random-string-here
WIREGUARD_PORT=51820
WIREGUARD_IPV4_ADDRESS=10.3.2.1
WIREGUARD_IPV6_ADDRESS=fd00::3:2:1

核心概念

概念说明
Site(站点)包含网关的网络位置
Resource(资源)受保护的端点(CIDR、DNS 名称或 IP)
Policy(策略)将组链接到资源的访问规则
Group(组)具有共享访问权限的用户集合
Gateway(网关)站点内的 VPN 服务器实例
Client(客户端)通过 VPN 连接的用户设备

网关管理

网关部署类型

类型部署方式用途
Docker服务器上的容器Linux 服务器环境
Systemd原生二进制服务裸机 Linux 安装
Gateway Group(网关组)多个网关高可用配置

网关配置设置

设置说明默认值
Listen PortWireGuard UDP 端口51820
DNS Servers推送到客户端的 DNSCloudflare 1.1.1.1
MTU最大传输单元1280
Persistent KeepaliveNAT 保活间隔25 秒

资源配置

资源类型

类型示例用途
CIDR10.0.0.0/24子网访问
IP 地址192.168.1.100单主机访问
DNS 名称internal.example.com基于域名的访问

创建资源

字段说明示例
名称资源显示名称"Internal Network"
地址CIDR、IP 或 DNS10.0.0.0/24
站点关联站点"Main Office"
流量过滤器允许的端口和协议TCP 80, 443

策略管理

策略结构

组件说明
Group(组)谁获得访问权限
Resource(资源)他们可以访问什么
Action(操作)允许或拒绝

策略示例

资源操作用途
EngineersDev Servers允许开发访问
All StaffIntranet允许内部 Wiki 访问
ContractorsProduction DB拒绝限制敏感访问
AdminsAll Resources允许完全管理访问

身份提供商集成

支持的提供商

提供商协议功能
Google WorkspaceOIDC组同步
Microsoft EntraOIDC / SAML条件访问策略
OktaOIDC / SAMLMFA 支持
KeycloakOIDC / SAML自托管 IdP
Auth0OIDC自定义认证规则
JumpCloudOIDC / SAML目录同步
Local邮箱和密码无需外部 IdP

OIDC 配置字段

字段说明示例
Client IDOAuth 客户端标识firezone-client
Client SecretOAuth 客户端密钥secret-value
Discovery URLOIDC well-known URLhttps://accounts.google.com/.well-known/openid-configuration
Redirect URI回调 URLhttps://vpn.example.com/auth/oidc/callback

客户端应用

支持的平台

平台分发方式主要功能
macOSApp Store原生应用,自动连接
WindowsMicrosoft Store系统托盘集成
Linux包管理器CLI 和 GUI 可用
iOSApp Store始终在线 VPN 模式
AndroidPlay Store / F-Droid按应用 VPN 路由
HeadlessCLI 二进制服务器和脚本使用

客户端配置选项

设置说明默认值
自动连接应用启动时连接
按需连接自动重连
DNS 覆盖自定义 DNS 服务器使用网关 DNS
分流隧道仅路由资源流量启用

分流隧道(Split Tunneling)

模式说明用途
全隧道所有流量通过 VPN最大安全性
分流隧道仅资源流量通过 VPN家庭和办公使用
排除应用按应用选择隧道移动设备

分流隧道优势

优势说明
节省带宽仅 VPN 相关流量使用隧道
速度保留直接互联网访问
兼容性保持本地网络访问
隐私资源访问已加密和安全

高可用

多网关架构

组件用途
主网关处理活跃流量
备用网关故障转移备用
负载均衡器分配连接
健康检查监控网关可用性

故障转移指标

指标阈值操作
健康检查失败连续 3 次标记网关不健康
故障转移时间30 秒以内切换到备用网关
客户端重连自动客户端自动重连

网络配置

防火墙规则

规则来源目标端口操作
允许 VPN任意网关51820/UDP接受
允许 HTTPS任意网关443/TCP接受
转发 VPNVPN CIDR资源任意接受
丢弃其他任意任意任意丢弃

NAT 穿越场景

场景解决方案
客户端在 NAT 后WireGuard 自动处理 NAT
网关在 NAT 后需要在路由器上设置端口转发
对称 NAT需要中继服务器穿越

监控

仪表板指标

指标说明
活跃连接当前连接的 VPN 用户数
数据传输传入和传出的字节数
网关健康每个网关的在线/离线状态
用户活动连接历史和持续时间

查看日志

# 网关日志
docker logs firezone-gateway -f

# 控制平面日志
docker logs firezone -f

# 最近的连接流
docker exec firezone-db psql -U firezone \
  -c "SELECT * FROM flows ORDER BY created_at DESC LIMIT 10;"

API 访问

REST API 端点

端点方法用途
/api/v1/usersGET / POST用户管理
/api/v1/groupsGET / POST组管理
/api/v1/resourcesGET / POST资源管理
/api/v1/policiesGET / POST策略管理
/api/v1/gatewaysGET / POST网关管理
/api/v1/sitesGET / POST站点管理

API 认证

curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://vpn.example.com/api/v1/users

安全功能

功能说明
WireGuard 协议现代高性能 VPN
零信任模型基于身份的访问控制
MFA 支持多因素认证
加密ChaCha20-Poly1305 密码
密钥轮换自动 WireGuard 密钥刷新
审计日志完整的访问审计追踪

备份

组件方法频率
数据库pg_dump每日
配置.env 文件备份更改时
WireGuard 密钥安全存储生成时
SSL 证书证书备份续期时

故障排除

问题原因解决方案
无法连接防火墙阻止 UDP在防火墙中打开端口 51820
VPN 无互联网DNS 配置问题检查网关中的 DNS 设置
VPN 速度慢MTU 不匹配将 MTU 降低到 1280
认证失败IdP 配置错误验证 OIDC 设置
网关离线服务未运行重启网关容器

总结

Firezone 提供了一个基于 WireGuard 构建的现代 VPN 解决方案,具有基于身份的访问控制。其与身份提供商的集成、分流隧道能力以及多平台客户端支持,使其适合寻求零信任网络访问的各种规模组织。