strongSwan 6.1.0 介绍与选型指南
strongSwan 6.1.0 IPsec VPN 介绍与选型:核心架构(charon/swanctl/内核 XFRM)、功能特性、快速开始示例、适用场景,及与 WireGuard/OpenVPN/Nebula VPN/Firezone 的量化选型对比,版本数据溯源官方渠道(查询日期 2026-10-20)。
strongSwan 6.1.0 介绍与选型指南
目标:面向需要在 Linux 服务器上建设站点到站点(Site-to-Site)与远程访问(Road-Warrior)VPN 的运维与网络工程师,系统介绍 strongSwan 的定位、核心架构、功能特性与选型方法,并与 WireGuard、OpenVPN、Nebula VPN、Firezone 等同类方案做量化对比。本篇为认知与选型篇,全部版本、发布节奏与特性信息溯源自官方站点与官方发布渠道(查询日期 2026-10-20),完整安装与逐命令实测见本系列后续篇目。
一、环境信息
本篇是纯联网溯源的认知篇,下列为信息来源与查询基准:
- 上游官网:strongswan.org,查询日期 2026-10-20;官网首页最新发布信息为 Version 6.1.0, 2026-09-07。
- 官方文档站:docs.strongswan.org,查询日期 2026-10-20;文档导航包含 strongswan.conf、swanctl.conf、charon/charon-systemd 守护进程、MOBIKE、NAT Traversal、Route-based VPN、High Availability 等主题。
- GitHub Releases:
github.com/strongswan/strongswanreleases.atom 订阅源,查询日期 2026-10-20,近一年发布序列见第七节"版本节奏"。 - 发行版基线:Ubuntu 22.04(jammy)官方源当前可安装版本为 5.9.5-2ubuntu2.8(jammy-updates,2026-10-20 经
apt-cache policy核对),与本系列安装/配置/命令实测篇使用同一基线。 - 本平台站内同类文档:《WireGuard 1.0 工具线介绍与选型指南》《OpenVPN 2.7 介绍与选型指南》《Nebula VPN 1.11.2 介绍与选型指南》《Headscale 介绍与选型指南》。
💡 说明:strongSwan 的上游版本(6.1.0)与 Ubuntu jammy 官方源版本(5.9.5)存在代际差距。本系列采用双版本基准:本篇(A1)以上游最新稳定版 6.1.0 为叙述基准;安装篇、配置篇、命令篇以 Ubuntu 22.04 实际可装的 5.9.5 为实测基准,并在文内互标口径差异。
二、软件概述
strongSwan 是一个开源(GPLv2)、模块化、可移植的 IPsec VPN 完整实现。官网对其定位的一句话描述是:"Open-source, modular and portable IPsec-based VPN solution"(来源:strongswan.org,查询日期 2026-10-20)。它实现了完整的 Internet Key Exchange(IKE)密钥交换协议栈,可以为"策略式(policy-based)"与"路由式(route-based)"两类 IPsec 场景加密封包,覆盖从最简单的单隧道到非常复杂的多种类互连拓扑。
几个关键身份特征:
- Linux 内核数据面:在 Linux 上,strongSwan 的守护进程把加解密工作交给内核 XFRM 子系统(ESP/AH),用户态只负责 IKE 协商与 SA 管理,这也是它与 WireGuard 同属"内核态数据面"阵营、而与 OpenVPN(用户态 TLS)区分开的核心差别。
- IKEv2 为主线:官网功能页首条即"IKEv2(RFC 7296)密钥交换实现(IKEv1 也支持)"。6.1.0 官方发布说明进一步明确:IKEv1 已默认禁用,构建时需显式
--enable-ikev1,配置中version默认值为 2,IKEv1 支持将在"未来一年左右"移除(来源:6.1.0 release notes,2026-09-07)。 - 模块化插件架构:加密算法、凭据存储、认证方法、内核接口等皆以插件形式挂载,官方还提供插件完整性自测机制(来源:strongswan.org Features 页,查询日期 2026-10-20)。
- 多平台:官方文档站列出 Linux、Android、FreeBSD、macOS、Windows 等平台的移植与客户端文档(来源:docs.strongswan.org 导航,查询日期 2026-10-20)。
- 出身:
ipsec version版权横幅长期标注 "University of Applied Sciences Rapperswil, Switzerland",项目由瑞士高校团队发起并维护至今,社区治理稳定。
与平台内其他 VPN 主题的一句话定位差异:WireGuard 是极简内核隧道(无协商协议,密钥即配置);OpenVPN 是用户态 TLS VPN(跨平台兼容性最好);Nebula VPN 是带证书体系与 Lighthouse 的覆盖网络(mesh 组网);Headscale 是 Tailscale 控制面的自托管实现;Firezone 则是 WireGuard 之上的管理平台。strongSwan 的差异化在于:标准 IPsec 协议族 + IKEv2 协商 + 企业级认证体系(X.509/EAP/RADIUS)+ 策略与路由两种 VPN 形态,是"与其他厂商防火墙/路由器互连"场景事实上的标准选择。
三、核心架构
3.1 进程与组件分层
官方文档将守护进程族列为 charon(经典守护进程)、charon-systemd(systemd 托管形态)、charon-svc(Windows 服务)、charon-cmd(命令行临时形态)(来源:docs.strongswan.org 导航,查询日期 2026-10-20)。以 Linux 上最常见的 charon 为例,核心分层如下:
+--------------------------------------------------------------------------+
| swanctl(VICI 客户端 CLI) starter/stroke(遗留 ipsec 命令通道) |
+--------------------------------------------------------------------------+
| charon IKE 守护进程(libcharon) |
| IKEv2 协商 | 子 SA 管理 | 认证后端 | EAP/RADIUS 转发 | 策略/虚拟IP |
+---------------------------+----------------------------------------------+
| 插件层(libcharon 内) | vici(Unix 套接字控制) kernel-netlink(XFRM) |
| | socket-default(UDP 500/4500) updown(防火墙) |
+---------------------------+----------------------------------------------+
| libstrongswan(加密原语/证书解析/配置框架:aesni、openssl、gmp、x509 …) |
+--------------------------------------------------------------------------+
| Linux 内核:XFRM 子系统(ESP/AH 封装解封装、SA/SP 数据库、路由查找) |
+--------------------------------------------------------------------------+
要点解读:
- charon 是唯一常驻进程:IKE 协商、SA 生命周期、认证、日志全部在 charon 内完成;
starter只是 5.x 传统形态下负责读取ipsec.conf并拉起 charon 的辅助进程。 - 两条控制通道并存:新版走 VICI(Versatile IKE Control Interface,Unix 套接字,默认
/var/run/charon.vici),客户端是swanctl;旧版走 stroke(ipsec命令 +/var/run/charon.ctl)。官方文档的配置体系已以strongswan.conf+swanctl.conf为当前推荐,stroke 属遗留接口——6.1.0 发布说明中 stroke 插件仍有维护记录(SA 计数修复),但新部署应统一走 swanctl。 - 内核-netlink 边界:
kernel-netlink插件把协商完成的 SA(安全联盟)/SP(安全策略)写入内核 XFRM,ip xfrm state、ip xfrm policy可直接看到协商结果,这是排查隧道问题时最底层的证据面。
3.2 双配置体系
| 配置文件 | 作用域 | 状态 |
|---|---|---|
/etc/swanctl/swanctl.conf | 连接(connections)、凭据(secrets)、地址池(pools)、证书机构(authorities) | 当前推荐,经 swanctl --load-all 热加载 |
/etc/strongswan.conf(及 /etc/strongswan.d/ 片段目录) | 守护进程全局设置:线程数、插件开关、日志级别、VICI 套接字路径等 | 当前推荐,改动后 swanctl --reload-settings 或重启生效 |
/etc/ipsec.conf + /etc/ipsec.secrets | 与 swanctl.conf 同能力的传统写法 | 遗留体系,Ubuntu 22.04 的 5.9.5 仍完整支持 |
来源:docs.strongswan.org 配置文档导航(strongswan.conf / strongswan.d / swanctl.conf / swanctl Directory,查询日期 2026-10-20)。两种体系可以并存于同一台机器,但同一连接不要双写;本系列《配置参数详解》以双配置体系为主线逐项实测。
💡 技术拓展:IKE 协议版本不止一种。IKEv1(RFC 2409,main/aggressive 两阶段)与 IKEv2(RFC 7296,四消息建链)对比——
维度 IKEv1 IKEv2 建链消息 6–9 条(Main/Aggressive + Quick Mode) 4 条(IKE_SA_INIT + IKE_AUTH) NAT 穿越 补丁式扩展(RFC 3947 亦可) 协议内建 UDP 封装与端口浮动 认证扩展 XAUTH/L2TP 等历史包袱 EAP、多认证(RFC 4739)、签名算法协商(RFC 7427) 现状 strongSwan 6.1.0 起默认禁用、将移除 主线,所有新特性落地于此 strongSwan 6.1.0 实际采用 IKEv2 为主线(
version = 2为默认值),IKEv1 仅用于兼容无法升级的旧设备。
3.3 数据面:策略式与路由式
- 策略式(policy-based):
swanctl.conf里的local_ts/remote_ts流量选择器直接生成 XFRM 策略,匹配中的包自动进隧道。优点是语义直白;缺点是策略条目多时排障复杂。 - 路由式(route-based):用 XFRM interface(
xfrmi插件,6.x 内置)创建虚拟网卡xfrm0等,把隧道变成一张可路由的网卡,配合普通路由表/动态路由协议使用。官方文档专门有 Route-based VPN 章节支持这一形态(来源:docs.strongswan.org 导航,查询日期 2026-10-20)。
💡 技术拓展:IPsec 的封装协议不止 ESP 一种。AH(认证头,仅认证不加密,IP 协议号 51)与 ESP(封装安全载荷,认证+加密,IP 协议号 50)对比——
封装协议 机密性 完整性/认证 NAT 穿越 实践地位 ESP 有(可空加密) 有 UDP 封装成熟 事实标准,绝大多数部署 AH 无 有 与 NAT 冲突(改写 IP 头) 已边缘化 strongSwan 的连接默认使用 ESP(
esp_proposals指定算法组合),本系列实测篇的隧道证据(ip xfrm state、tcpdump)也以 ESP SA 为准。
四、功能特性
以下特性均可在官网 Features 页与官方文档对应章节查证(来源:strongswan.org / docs.strongswan.org,查询日期 2026-10-20):
| 类别 | 特性 | 说明/标准依据 |
|---|---|---|
| IKE 协议 | IKEv2 完整实现 | RFC 7296;IKEv1 亦可启用(6.1.0 起需显式编译) |
| 网络 | IPv6 隧道/传输模式全测试支持 | 官网 Features 原文 |
| 网络 | MOBIKE 动态地址/接口更新 | RFC 4555,移动/双网卡场景不断链 |
| 网络 | NAT 穿越(UDP 封装与端口浮动) | RFC 3947 |
| 网络 | IKEv2 消息分片 | RFC 7383,避免 UDP 分片问题(实测隧道建链日志中可见 EF(1/2) 分片行为) |
| 可靠性 | 死端检测 DPD | RFC 3706,自动清理僵死隧道并按策略重建 |
| 可靠性 | IKEv2 SA 重定向 | RFC 5685,网关间负载转移 |
| 可靠性 | Childless IKEv2 初始化 | RFC 6023 |
| 认证 | X.509 证书 / 预共享密钥 | 基础认证方式 |
| 认证 | EAP 用户认证 | EAP-SIM/AKA/TLS/TTLS/PEAP/MSCHAPv2 等,可经 EAP-RADIUS 转发 AAA |
| 认证 | IKEv2 多重认证 | RFC 4739(机器证书+用户认证叠加) |
| 认证 | 强签名算法协商 | RFC 7427 Signature Authentication |
| 证书 | CRL/OCSP 吊销校验 | RFC 5280 体系配套 |
| 地址 | 虚拟 IP 地址池 | IKE 守护进程内建、DHCP、RADIUS 或 SQL 数据库分配 |
| 数据面 | 策略式 + 路由式(XFRM interface) | 内核 XFRM;自动插入/删除策略防火墙规则 |
| 数据面 | 高可用 HA、Per-CPU SA 等扩展 | 官方文档 High Availability / Per-CPU SAs 章节 |
| 密码学 | 后量子密钥封装 ML-KEM 系列 | 6.0 系列引入、6.1.0 发布说明仍在维护其实现(如 ML-KEM 共享密钥空值防御) |
💡 技术拓展:远程访问场景的"用户认证"实现不止一种。常见 EAP 变体对比——
方式 机制 适用 EAP-MSCHAPv2 用户名/密码质询 最普及,配合 RADIUS 存账号 EAP-TLS 双向证书 安全最高,证书运维成本高 EAP-TTLS/PEAP 外层 TLS 隧道 + 内层密码 兼顾安全与账号管理便利 EAP-SIM/AKA SIM 卡凭据 运营商专网场景 本系列实测篇的站点到站点主线采用证书认证(pubkey),远程访问扩展场景推荐 EAP-MSCHAPv2 + RADIUS 的组合。
五、快速开始(最小可用示例)
按官方文档的当前推荐配置体系,一个最小站点到站点连接只需要三步:准备证书、写 swanctl.conf、加载连接。以下示例的语法结构取自官方文档 swanctl.conf/Quickstart 章节(来源:docs.strongswan.org,查询日期 2026-10-20),可直接作为骨架使用:
# /etc/swanctl/swanctl.conf —— 网关 moon 侧最小站点到站点连接
connections {
net-0-1 {
version = 2 # IKEv2(6.1.0 默认值)
local_addrs = 192.0.2.11 # 本端公网/对端可达地址
remote_addrs = 192.0.2.12 # 对端网关地址
local {
auth = pubkey # 证书认证
certs = moon-cert.pem # 放置于 /etc/swanctl/x509/
id = moon.example.org
}
remote {
auth = pubkey
id = sun.example.org
}
children {
net {
local_ts = 10.1.0.0/24 # 本端受保护网段
remote_ts = 10.2.0.0/24 # 对端受保护网段
start_action = start # 配置加载后自动建链
}
}
}
}
操作序列(命令语义按官方文档,逐条实测回显见《Ubuntu 22.04 安装 strongSwan 指南》与《strongSwan 5.9.5 常用 CLI 命令详解》):
- 用
pki工具生成 CA 与两台网关的证书,分别落位/etc/swanctl/{x509ca,x509,private}; - 两侧写入如上连接配置(本端/对端对称互换);
- 执行
swanctl --load-all加载凭据与连接; - 观察
swanctl --list-sas出现ESTABLISHED的 IKEv2 SA 与INSTALLED, TUNNEL的 ESP 子 SA,即隧道建立; - 内核层面用
ip xfrm state可直接看到两条 ESP SA,是最硬核的隧道证据。
本平台实测系列:《Ubuntu 22.04 安装 strongSwan 指南》、《strongSwan 5.9.5 配置参数详解》、《strongSwan 5.9.5 常用 CLI 命令详解》。
六、适用场景与限制
6.1 典型适用场景
- 企业站点到站点互联:分支-总部、多云 VPC 互通,尤其当对端是 Cisco/Juniper/fortigate 等硬件防火墙时,IKEv2 + X.509 是互操作性的最大公约数。
- 远程访问 VPN 网关:EAP 用户认证 + RADIUS/后端 AAA + 虚拟 IP 池,官方文档将 Virtual IP、EAP-RADIUS 列为一等公民特性。
- 路由式 VPN/云网络:XFRM interface 把隧道变成网卡,配合动态路由;官方文档有专门的 Route-based VPN 与 Cloud Platforms 章节。
- 合规与审计敏感环境:标准 IPsec 协议族、完整 CRL/OCSP、多重认证、可对接智能卡(Smart Card Configuration 章节)。
6.2 限制与注意事项
- IKEv1 退役在即:6.1.0 默认禁用 IKEv1,官方声明支持将在未来一年左右移除(来源:6.1.0 release notes,2026-09-07);存量 IKEv1 对端应有迁移计划。
- 一批遗留组件已移除:6.1.0 移除了 af-alg、gcrypt、keychain、libfast、manager、medsrv/medcli、smp、tnccs-11、tnccs-dynamic 等插件/组件(来源:同上);从 5.x 升级时不要依赖这些组件。
- 发行版版本滞后:Ubuntu 22.04 官方源停留在 5.9.5 系,需要 6.x 新特性(如 IKEv1 默认禁用、ML-KEM 维护更新)时需源码编译或使用上游仓库,本系列安装篇给出完整实测路径。
- 配置面广:双配置体系 + 大量插件意味着初学曲线高于 WireGuard;建议按"连接 → 认证 → 流量选择器 → 日志"四块理解,见《strongSwan 5.9.5 配置参数详解》。
- 安全通告响应快但需跟进:6.1.0 一次性修复了 10 项 CVE(openssl/PKCS#7、eap-aka、libcharon IKE 日志、x509 属性证书、IKEv2 rekey 竞态等,来源:6.1.0 release notes,2026-09-07),生产环境应有订阅官方 Blog/Release 的机制。
七、同类选型对比
7.1 横向对比表
| 维度 | strongSwan 6.1.0 | WireGuard | OpenVPN 2.7 | Nebula VPN 1.11.2 | Firezone |
|---|---|---|---|---|---|
| 定位 | 标准 IPsec/IKE 全功能实现 | 极简内核三层隧道 | 用户态 TLS VPN | 证书化 mesh 覆盖网络 | WireGuard 管理平台(零信任接入) |
| 数据面 | 内核 XFRM(ESP/AH) | 内核模块/内核态接口 | 用户态 TUN + TLS | 用户态 TUN + Noise | 内核 WireGuard |
| 协议与加密 | IKEv2 协商,算法套件可配(AES-GCM、SHA-2、DH 组、ML-KEM 等) | 固定套件(Noise + ChaCha20-Poly1305) | TLS 1.2/1.3 + OpenVPN 自有封装 | Noise 框架 + Curve25519/ChaCha20 | 同 WireGuard |
| 认证体系 | X.509/PSK/EAP 全家桶 + RADIUS/AAA + 多重认证 | 静态公钥对(无用户认证) | TLS 证书 + 用户名密码插件 | 内建 CA 证书链(nebula-cert) | 账号体系/SSO(平台侧) |
| 拓扑能力 | 站点到站点、远程访问、路由式、高可用 HA | 点对点/星型(需外部编排) | 点对点/远程访问 | Mesh(Lighthouse 协调) | 星型 + 策略(管理面) |
| NAT/动态环境 | NAT-T、MOBIKE、DPD、分片、重定向 | 依赖 UDP 打洞(无协商层) | TLS over TCP/UDP 可选 | 打洞 + 中继(relay) | 依赖 WireGuard |
| 配置复杂度 | 高(双配置体系、参数多) | 低(单文件接口配置) | 中(服务端/客户端配置 + 证书) | 中(config.yaml + 证书) | 低-中(图形化管理) |
| 版本节奏(实查) | 6.0.3(2025-10-27)→ 6.0.4(2025-12-12)→ 6.0.5(2026-04-15)→ 6.0.6(2026-05-11)→ 6.0.7(2026-06-08)→ 6.1.0(2026-09-07),高频维护 | 随内核演进,独立发布节奏弱 | 平台文档基线 2.7 | 平台文档基线 1.11.2 | 平台化快速迭代 |
| 许可证 | GPLv2(官网首页,查询日期 2026-10-20) | GPLv2 | AGPLv3(社区版) | MIT | Apache-2.0/商业双轨 |
| Ubuntu 22.04 交付形态 | 官方源 5.9.5(apt)+ 源码编译 6.1.0 | 官方源 + 内核自带 | 官方源/社区仓库 | 官方静态二进制 | 官方仓库/在线安装 |
| 站内文档 | 本系列 | 《WireGuard 1.0 工具线介绍与选型指南》 | 《OpenVPN 2.7 介绍与选型指南》 | 《Nebula VPN 1.11.2 介绍与选型指南》 | 暂无 |
关键差异解读:需要与其他厂商设备做标准 IPsec 互联、需要企业级认证(EAP/RADIUS/证书链/吊销)或路由式 VPN 时,strongSwan 是唯一正解级别的选项;若只是自家人之间点对点打通,WireGuard 配置成本最低; mesh 化自组网选 Nebula VPN(其协调面思想见《Headscale 介绍与选型指南》);需要给团队提供带账号体系的接入平台则看 Firezone。OpenVPN 在"穿墙/仅 TCP 可用"的恶劣网络环境仍有不可替代性。
7.2 社区活跃度与版本节奏(量化)
- 发布节奏(GitHub releases.atom 实查,查询日期 2026-10-20):近 12 个月发布 6 个稳定版本(6.0.3~6.1.0),平均约两个月一个版本,其中 6.1.0 为大版本(协议默认值变更 + 10 项 CVE 修复)。
- 维护响应:6.1.0 发布说明对每一项 CVE 给出专门官方博客链接与影响版本范围(如 CVE-2026-78133 影响 6.0.0+、可致 UAF/RCE,已在 6.1.0 修复),漏洞响应流程成熟。
- 文档完备度:官方文档站按 Antora 组织,含 How-tos、Interoperability(Windows 客户端互操作专章)、测试框架(testing/ 场景化测试)文档,体量在同类开源 VPN 中最大。
7.3 「如果…则…」选型建议
- 如果对端是第三方防火墙/云厂商 IPsec 网关 → strongSwan(IKEv2 + X.509,互通性最好)。
- 如果要全内核态高性能 + 极简配置且两端都归自己管 → WireGuard。
- 如果需要用户级准入、设备管理、SSO 审计的零信任接入 → Firezone(WireGuard 之上)或 Headscale/Tailscale 生态。
- 如果要无中心、跨公网 mesh 组网且节点间可打洞 → Nebula VPN。
- 如果网络环境仅允许 TCP 443 → OpenVPN。
- 如果一个平台要同时覆盖站点到站点 + 远程访问 + 路由式三类需求 → strongSwan 一套实现全部覆盖。
八、参考链接
- 官网首页与特性页:https://www.strongswan.org/(查询日期 2026-10-20)
- 官方文档站(配置体系、守护进程、特性章节):https://docs.strongswan.org/docs/latest/index.html(查询日期 2026-10-20)
- GitHub 仓库发布页:
https://github.com/strongswan/strongswan/releases(releases.atom 实查,查询日期 2026-10-20) - 6.1.0 发布说明(IKEv1 默认禁用、移除插件清单、10 项 CVE):https://github.com/strongswan/strongswan/releases/tag/6.1.0
- 官方下载(tarball 与校验和):https://download.strongswan.org/
- 站内同类文档:《WireGuard 1.0 工具线介绍与选型指南》、《OpenVPN 2.7 介绍与选型指南》、《Nebula VPN 1.11.2 介绍与选型指南》、《Headscale 介绍与选型指南》
- 站内实测系列:《Ubuntu 22.04 安装 strongSwan 指南》、《strongSwan 5.9.5 配置参数详解》、《strongSwan 5.9.5 常用 CLI 命令详解》