DefGuard 2.1.1 介绍与选型指南

DefGuard 2.1.1 介绍与选型指南:开源 WireGuard VPN + 身份认证(IAM/OIDC)一体化平台的定位、架构、功能边界、AGPL+商业双轨许可与版本取证,并与 Authelia、Authentik、Zitadel、Tailscale/Headscale 做量化选型对比。

DefGuardDefGuardSSO网络双因素认证2026/10/25

DefGuard 2.1.1 介绍与选型指南

目标:帮读者在动手部署前判断「DefGuard 是不是我要的东西」。本篇基于项目官方仓库、官方文档站与 shields.io 星标徽章的联网溯源(查询日期 2026-10-25),讲清 DefGuard 是什么、由哪些部件组成、能产出什么样的访问控制能力、对服务器与内核有哪些硬要求,并与 Authelia、Authentik、Zitadel、Tailscale/Headscale 做量化对比。部署、参数与 API 的逐步实测不在本篇展开。

一、环境信息与取材口径

本篇是选型篇,不包含本机部署实测;所有项目事实均来自可公开复核的来源,查询日期统一为 2026-10-25:

  • 项目仓库:https://github.com/DefGuard/defguard(DefGuard sp. z o.o.,波兰)
  • 最新稳定版:v2.1.1(2026 年 10 月释出的 2.1 补丁版);同期存在预发布 v2.2.0-beta1,未作为稳定版推荐
  • 许可证:双轨授权——开源核心(除 crates/defguard_core/src/enterprise 目录外)为 AGPL-3.0;企业目录及整体商业使用受独立 Enterprise License 约束(仓库 LICENSE.md 与 crates/defguard_core/src/enterprise/LICENSE.md)
  • 社区规模:GitHub 星标约 2.9k(shields.io 徽章实查 img.shields.io/github/stars/defguard/defguard,未直连 GitHub API)
  • 官方文档:https://docs.defguard.net
  • 官方站点:https://defguard.net

说明:版本号与星标属于随时间变化的数据,读者复核时可能已有更新;本文只对 2026-10-25 这个时间点的取值负责。选型结论不依赖星标的具体数值,而依赖功能边界与运行要求。

二、软件概述

DefGuard 是一个自托管的安全远程接入平台,把原本分散的「身份认证 + VPN 接入 + 访问控制」揉进一套统一管理平面。它解决的不是单点问题,而是一条完整链路:

  1. 身份(Identity):内置用户与组管理,支持本地账号、LDAP/AD 同步、外部 OIDC(Google、Microsoft Entra ID、Okta、JumpCloud 等);自身也是一个 OIDC Provider,可作为应用的 SSO 入口。
  2. 认证(Authentication):密码 + 多因素(TOTP、WebAuthn/FIDO2、邮件令牌、移动端生物识别),并可针对每个 VPN 位置单独强制 MFA。
  3. 接入(Access):基于 WireGuard 的 VPN,多位置(location)、每位置独立网关与访问控制;支持内核态与用户态 WireGuard。
  4. 授权(Authorization):按用户/组下发设备与网段,内置防火墙规则(ACL)实时生效,支持设备姿态检查(Device Posture)。
  5. 审计(Audit):活动日志可过滤检索,企业版支持 SIEM 实时流。

与「单纯的 WireGuard 管理面板」或「单纯的 SSO 网关」相比,DefGuard 的关键差异是把身份决策和网络策略绑定在同一套数据模型里——用户属于哪个组、组能访问哪些网段、设备是否满足安全基线,全部由同一个管理平面下发到 WireGuard 网关。

💡 技术拓展:零信任网络接入(ZTNA)的几种常见形态。

形态核心思路代表产品取舍
传统 VPN 远程接入拨号进内网,之后默认内网可达OpenVPN、WireGuard 原生简单但粗粒度,一旦接入横向移动风险高
身份感知代理每次请求过身份网关,按策略放行Authelia、Authentik、Zitadel适合 Web 应用,对非 HTTP 协议覆盖弱
身份 + 网络一体化身份系统直接管 VPN 设备与网段 ACLDefGuard、Tailscale粒度细、覆盖全协议,但需要客户端

DefGuard 属于第三种:它既不是纯 VPN(有完整 IAM),也不是纯 SSO(有 WireGuard 数据面),而是把两者合一。

三、核心架构

3.1 运行时组成

DefGuard 采用控制面 / 数据面分离的组件化架构,官方 docker-compose 栈含四个部件:

部件作用硬要求
Core(控制面)Rust 后端 + Web UI,承载身份、认证、策略、API;管理所有网关与边缘节点PostgreSQL 数据库;常驻进程,不可 Serverless
Edge(边缘代理)公网入口,处理用户自助注册(enrollment)、桌面客户端配置下发、反向代理独立进程,与 Core 通过 gRPC(50051)+ mTLS 通信
Gateway(VPN 网关)WireGuard 数据面,落地 ACL 与隧道,按 Core 下发的策略转发流量需要 NET_ADMIN 能力与 WireGuard 内核模块(或回退用户态)
PostgreSQL持久化用户、设备、网络、审计日志PostgreSQL(官方编排使用 18-alpine)

组件之间通过**自动采纳(auto-adoption)**建立信任:Core 启动时连接 Edge 与 Gateway 的 setup 端口,交换 CSR、签发证书、建立 mTLS 信道。这套机制让新增网关无需手工拷贝密钥。

3.2 网络与数据流

  • 客户端(桌面/移动)连接 Gateway 的 WireGuard 端口(默认 UDP 51820);
  • Gateway 定期通过 gRPC 从 Core 拉取最新的设备列表与 ACL;
  • 用户在 Web UI 修改策略 → Core 落库 → 推送到 Gateway → 实时生效(无需重启隧道);
  • Edge 对外暴露 enrollment URL,新用户凭令牌自助注册设备,无需管理员逐一手配。

3.3 身份与 SSO

DefGuard 同时扮演两种角色:

  • OIDC Provider:对外暴露 /.well-known/openid-configuration,支持授权码 + 刷新令牌,可作为内部应用的 SSO 身份源(scopes:openid、profile、email、phone、groups)。
  • OIDC Relying Party:可接入外部身份源(Google、Microsoft、Okta 等)做登录与目录同步;也支持 LDAP/AD 同步用户与组。

💡 技术拓展:SSO 协议不止 OIDC。

协议特点适用场景
OIDC(OpenID Connect)基于 OAuth 2.0 + JWT,REST 友好现代 Web/移动应用
SAML 2.0XML 断言,企业级传统老企业应用、联邦
LDAP目录查询协议,非 SSO内部系统账号同步

DefGuard 2.1.1 对外提供 OIDC Provider,并可消费外部 OIDC 与 LDAP;SAML 支持需关注后续版本或企业版能力。

四、功能特性

4.1 WireGuard VPN

  • 多位置(location),每位置独立网关、独立网段、独立 MFA 策略;
  • 设备自助注册,管理员可批量发令牌;
  • 内核态 WireGuard(性能好)与用户态(boringtun,无内核模块时回退)双支持;
  • 网关侧防火墙规则实时下发,支持按用户/组/目标的 allow/deny;
  • 设备姿态检查(2.1 新增):客户端 OS 版本、补丁、AD 成员、杀毒、磁盘加密等作为接入前置条件。

4.2 身份与访问管理

  • 本地用户与组、外部 OIDC 登录、LDAP/AD 同步;
  • 管理员可强制密码策略、MFA、会话超时;
  • 自助服务:用户自行管理设备、MFA 因子、SSH/GPG 公钥。

4.3 多因素认证

  • TOTP(Google Authenticator 类)、WebAuthn/FIDO2(硬件密钥)、邮件令牌、移动端推送;
  • 2.2 起引入多步可配置 MFA Flow(预发布),可为每个位置定义不同的认证步骤组合。

4.4 集成与 API

  • 完整 REST API(/api/v1/),覆盖用户、组、设备、网络、网关、统计等;
  • Webhook 事件通知;
  • OpenID 应用注册,作为 SSO 身份源;
  • SSH authorized_keys 端点,可对接服务器 SSH 认证。

五、版本、许可与发布节奏

维度实测/实查结果取证方式
最新稳定版v2.1.1仓库 Releases 与运行时 defguard --version(defguard 2.1.1+bbc29a1)
预发布版v2.2.0-beta1(多步 MFA、FIDO2 硬件密钥)仓库 Releases,标注 Pre-release
许可证AGPL-3.0(开源核心)+ Enterprise License(企业目录)双轨仓库 LICENSE.md
星标约 2.9kshields.io 徽章
语言Rust(后端)+ TypeScript/React(前端)仓库目录结构
发布节奏活跃,2026 年保持小版本迭代Releases 时间线

许可边界要点:开源核心可自由用于自托管(含商用),但修改后需按 AGPL 公开源码;企业目录下的功能(API Token、SIEM 流、部分高级策略等)需要商业授权。自建评估与中小团队使用开源核心即可。

六、适用场景与限制

适用场景:

  • 中小团队需要一套自托管的「VPN + 身份」一体化方案,不想分别维护 WireGuard 面板和 SSO 网关;
  • 对数据主权有要求,不愿把员工身份与网络拓扑交给第三方 SaaS;
  • 需要细粒度网络 ACL(按组/按目标放行),而非「接入即内网通」。

限制与边界:

  • 纯 Web 应用的 SSO 不是它的强项——它的 OIDC Provider 能力够用,但相比 Authentik/Zitadel 在应用目录、SAML 支持、策略编排上更轻;
  • 网关依赖 WireGuard(内核模块或用户态),在受限内核环境(如部分 LXC、无内核模块的容器)需回退用户态实现并实测性能;
  • 高级功能(API Token、SIEM 流、设备姿态的部分维度、外部 IdP MFA)属于企业版,开源核心不包含。

七、同类选型对比

维度DefGuard 2.1.1AutheliaAuthentikZitadelTailscale / Headscale
定位VPN + IAM 一体化反向代理 SSO全功能 IAM云原生 IAM网状 VPN(控制面 SaaS / 自托管 Headscale)
VPN 数据面WireGuard(内置)无无无WireGuard(内置)
SSO 协议OIDC(Provider + RP)、LDAPOIDC、SAML、LDAPOIDC、SAML、LDAP、SCIMOIDC、SAML、SCIM无(有 Tailscale 自身身份)
网络 ACL内置(按组/目标)无(靠反代规则)无无有(ACL)
MFATOTP/WebAuthn/邮件/推送TOTP/WebAuthn/推送TOTP/WebAuthn/邮件TOTP/WebAuthn已登录设备确认
部署形态docker-compose(Core+Edge+Gateway+PG)单二进制 + Redis/PGdocker-compose / k8sk8s 原生 / 二进制Tailscale 客户端 + Headscale 控制面
许可证AGPL(核心)+ 商业Apache-2.0自定义开源Apache-2.0BSD(Headscale)/ 商业(Tailscale)
内核依赖需要 WireGuard(内核或用户态)无无无需要 WireGuard
适用规模中小团队中小团队中大型中大型任意规模

选型建议:

  • 要「VPN + 身份」一体化、自托管、AGPL 可接受 → DefGuard;
  • 只要 Web 应用 SSO、不要 VPN → Authelia(轻量)或 Authentik(功能全);
  • 云原生、需要 SCIM/多租户、大规模 → Zitadel;
  • 只要网状 VPN、不在意身份系统 → Tailscale(托管)或 Headscale(自托管)。

八、参考链接