文章总结: 本文详细介绍了在Ubuntu26.04系统上使用swanctl配置IPsecVPN的完整流程,包括系统网络配置、strongSwan组件安装、swanctl.conf文件编写、隧道建立与性能测试。关键发现表明swanctl相比传统配置更具结构化优势,实测加密隧道带宽达721Mbps。操作建议涵盖具体命令、配置文件示例及常见问题解决方法。 综合评分: 82 文章分类: 解决方案,安全工具,技术标准,应用安全,网络安全
告别老旧配置!Ubuntu 26.04玩转swanctl配置IPsec全通关指南
原创
衡水铁头哥 衡水铁头哥
铁军哥
2026年5月22日 07:45 北京
在小说阅读器读本章
去阅读
突然间发现,自从我发布了IPsec管理系统之后(告别IPsec复杂命令行!我做了个Web管理系统,StrongSwan对接H3C只需点点鼠标),我好像对于IPsec的配置介绍的就少了。
其实,从我的视角来看,IPsec的配置整体不算复杂,我们之前发过一个IPsec文章合集(IPsec),但是后来一篇文章只能加入到一个合集,后续的文章就添加到VPN合集了(VPN)。
配置IPsec的核心部分,我几乎都整合到了基于strongSwan开发的IPsec管理系统中(从点到网!我们的strongSwan管理系统支持网关模式了,可作中心枢纽互联多分支)。
念念不忘,必有回响。当然,几年前就有粉丝留言,说我当时用的strongswan-starter已经被淘汰(对比华三设备配置,讲解Linux主机如何配置strongSwan),想让我研究一下swanctl。又好几年过去了,目前看来swanctl好像还真就成了配置IPsec的主力,那我就来个虽迟但到,给大家简单介绍一下swanctl的配置。
首先,系统依旧使用我们最新配置的Ubuntu 26.04(仅占752MB内存!Ubuntu 26.04 Server版上手:这才是服务器该有的样子!),部署时用自动安装即可(拒绝手搓系统!Ubuntu 26.04自动安装实战:让电脑自己“卷”起来)。
部署完成之后,我们首先配置中间转发设备ttserver6作为路由器节点,使能系统IPv4转发能力,并为两张互联网卡配置IP地址。
sysctl -w net.ipv4.ip_forward=1ip addr add 10.12.1.2/24 dev ens192ip addr add 10.23.1.2/24 dev ens224
然后,我们配置ttserver5端点,配置网卡IP地址,并添加去往对端网段的静态路由,下一跳指向ttserver6。
ip addr add 10.12.1.1/24 dev ens192ip route add 10.23.1.0/24 via 10.12.1.2
ttserver7端点也如法炮制,配置网卡IP地址,并添加去往对端网段的静态路由,下一跳指向ttserver6。
ip addr add 10.23.1.3/24 dev ens192ip route add 10.12.1.0/24 via 10.23.1.2
万丈高楼平地起,现在两台端点设备可以顺畅沟通了,老规矩,咱们先浅浅地打个基线流摸个底。
因为3台设备都是Server版本,性能一般,平均带宽在7 Gbps左右,跟上次的测试数据差不多(Ubuntu 26.04 转发性能大考:Desktop居然干翻了Server?)。
接下来,我们开始配置strongswan-swanctl。首先,我们在IPsec隧道的两端安装核心组件以及额外的加密插件,避免执行swanctl命令时出现插件缺失报错。
apt-get updateapt-get install -y strongswan strongswan-swanctl libstrongswan-extra-plugins libcharon-extra-pluginsapt list strongswan strongswan-swanctl libstrongswan-extra-plugins libcharon-extra-plugins
可以看到,依旧有一个agent插件因缺乏特定权限而产生报错日志,一般情况下,如果我们不使用基于SSH-Agent的认证,可以在配置文件/etc/strongswan.conf的末尾追加封印配置,来直接禁用agent插件,强迫症瞬间治愈。
cat << 'EOF' >> /etc/strongswan.confswanctl { plugins { agent { load = no } }}charon { plugins { agent { load = no } }}EOF
接下来,我们就可以配置IPsec配置文件了,整体逻辑跟strongSwan差不多(strongSwan之ipsec.conf配置手册)。但最大的区别在于,它舍弃了陈旧的格式,拥抱了类似JSON的结构化配置文件swanctl.conf,同时将连接策略和密钥管理优雅地融为一体(strongSwan之ipsec.secrets配置手册)。
例如,ttserver5的IPsec配置如下:
nano /etc/swanctl/swanctl.confconnections { 74-76 { version = 1 local_addrs = 10.12.1.1 remote_addrs = 10.23.1.3 proposals = aes128-sha1-modp2048 local { auth = psk id = 10.12.1.1 } remote { auth = psk id = 10.23.1.3 } children { host2host { local_ts = 10.12.1.1/32 remote_ts = 10.23.1.3/32 esp_proposals = aes128-sha1 start_action = start } } }}secrets { ike-psk { id-s1 = 10.12.1.1 id-s2 = 10.23.1.3 secret = "swan" }}
ttserver7设备的配置也是对称呼应:
nano /etc/swanctl/swanctl.confconnections { 76-74 { version = 1 local_addrs = 10.23.1.3 remote_addrs = 10.12.1.1 proposals = aes128-sha1-modp2048 local { auth = psk id = 10.23.1.3 } remote { auth = psk id = 10.12.1.1 } children { host2host { local_ts = 10.23.1.3/32 remote_ts = 10.12.1.1/32 esp_proposals = aes128-sha1 start_action = start } } }}secrets { ike-psk { id-s1 = 10.12.1.1 id-s2 = 10.23.1.3 secret = "swan" }}
配置完成后,我们重启后台服务,应用strongswan.conf配置中的修改;再使用swanctl命令读取并加载swanctl.conf配置中的策略,拉起IPsec隧道。
systemctl restart strongswanswanctl --load-allswanctl --list-conns
这个红色的提示吓了我一跳,不过只是没有配置,不用担心,这只是系统在告诉我们没配证书,完全不是报错。
因为我们配置了start_action = start,服务重启后,隧道就像定了闹钟一样,已经自动建立起来了。
可以看到,SA隧道已经协商成功,当前报文数据为零。如果你喜欢掌握主动权,想手工触发SA协商,也可以甩出这条命令:
swanctl --initiate --child host2host
发几个ping包测试一下:
回看IPsec SA的隧道状态统计,in和out的报文数精准吻合,说明我们的业务流量已经丝滑地钻进IPsec隧道,被完美加密传输了。
最后,又到了喜闻乐见的压榨性能环节,我们再打个流测试一下性能。
在动态省电模式下,平均带宽不足600 Mbps,最高带宽721 Mbps,考虑到加密算法带来的CPU算力开销,这个成绩也算中规中矩了。
从老旧的ipsec.conf到如今结构化、现代化的swanctl.conf,IPsec的配置逻辑正变得越来越清晰易读。对于网络工程师来说,拥抱这些新工具,不仅是为了紧跟技术潮流,更是为了减少排错时的内耗。
***推荐阅读***
我们的WireGuard管理系统支持手机电脑了!全平台终端配置,支持扫码连接,一键搞定
保姆级教程:一条命令部署OpenVPN管理系统V4版,支持Win/Mac/安卓/iOS全平台接入
成本省下99.7%!用40元的腾讯云服务器自建IPsecVPN,成功对接企业级飞塔防火墙
别再乱选VPN了!实测数据告诉你:为什么L2TP是个“坑”
SRv6部署第一坑:为什么配置了Locator却Ping不通?
嫌一键部署不过瘾?带你手搓Hermes智能体,主打一个通透
十倍性能提升!Ubuntu 26.04深度实测:当VPP遇上OpenVPN,带宽直接冲破 6.5Gbps!
VPP转发性能从10G暴增至24G?揭秘OpenEuler虚拟机的极限压榨术
性能暴涨670 %!当WireGuard遇上VPP,带宽直冲7.4 Gbps!
手机也能跑DeepSeek-R1/Qwen3了:零成本搭建AI推理平台
2048卡昇腾910C集群算力集群交付工程手册
2048卡H100算力中心100G无阻塞存储网建设方案
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:铁军哥 衡水铁头哥 衡水铁头哥《告别老旧配置!Ubuntu 26.04玩转swanctl配置IPsec全通关指南》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论