strongSwan 6.1.0 介绍与选型指南

strongSwan 6.1.0 IPsec VPN 介绍与选型:核心架构(charon/swanctl/内核 XFRM)、功能特性、快速开始示例、适用场景,及与 WireGuard/OpenVPN/Nebula VPN/Firezone 的量化选型对比,版本数据溯源官方渠道(查询日期 2026-10-20)。

strongSwanVPN网络配置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/strongswan releases.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,四消息建链)对比——

维度IKEv1IKEv2
建链消息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) 分片行为)
可靠性死端检测 DPDRFC 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/AKASIM 卡凭据运营商专网场景

本系列实测篇的站点到站点主线采用证书认证(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 命令详解》):

  1. 用 pki 工具生成 CA 与两台网关的证书,分别落位 /etc/swanctl/{x509ca,x509,private};
  2. 两侧写入如上连接配置(本端/对端对称互换);
  3. 执行 swanctl --load-all 加载凭据与连接;
  4. 观察 swanctl --list-sas 出现 ESTABLISHED 的 IKEv2 SA 与 INSTALLED, TUNNEL 的 ESP 子 SA,即隧道建立;
  5. 内核层面用 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.0WireGuardOpenVPN 2.7Nebula VPN 1.11.2Firezone
定位标准 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)GPLv2AGPLv3(社区版)MITApache-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 一套实现全部覆盖。

八、参考链接