告别老旧配置!Ubuntu26.04玩转swanctl配置IPsec全通关指南

admin 2026-05-23 04:47:04 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细介绍了在Ubuntu26.04系统上使用swanctl配置IPsecVPN的完整流程,包括系统网络配置、strongSwan组件安装、swanctl.conf文件编写、隧道建立与性能测试。关键发现表明swanctl相比传统配置更具结构化优势,实测加密隧道带宽达721Mbps。操作建议涵盖具体命令、配置文件示例及常见问题解决方法。 综合评分: 82 文章分类: 解决方案,安全工具,技术标准,应用安全,网络安全


cover_image

告别老旧配置!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&nbsp;<<&nbsp;'EOF'&nbsp;>> /etc/strongswan.confswanctl {&nbsp;&nbsp;plugins&nbsp;{&nbsp; &nbsp;&nbsp;agent&nbsp;{&nbsp; &nbsp; &nbsp;&nbsp;load&nbsp;=&nbsp;no&nbsp; &nbsp; }&nbsp; }}charon {&nbsp;&nbsp;plugins&nbsp;{&nbsp; &nbsp;&nbsp;agent&nbsp;{&nbsp; &nbsp; &nbsp;&nbsp;load&nbsp;=&nbsp;no&nbsp; &nbsp; }&nbsp; }}EOF

接下来,我们就可以配置IPsec配置文件了,整体逻辑跟strongSwan差不多(strongSwan之ipsec.conf配置手册)。但最大的区别在于,它舍弃了陈旧的格式,拥抱了类似JSON的结构化配置文件swanctl.conf,同时将连接策略和密钥管理优雅地融为一体(strongSwan之ipsec.secrets配置手册)。

例如,ttserver5的IPsec配置如下:

nano /etc/swanctl/swanctl.confconnections {&nbsp; &nbsp; 74-76 {&nbsp; &nbsp; &nbsp; &nbsp; version = 1&nbsp; &nbsp; &nbsp; &nbsp; local_addrs = 10.12.1.1&nbsp; &nbsp; &nbsp; &nbsp; remote_addrs = 10.23.1.3&nbsp; &nbsp; &nbsp; &nbsp; proposals = aes128-sha1-modp2048&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;local&nbsp;{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; auth = psk&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;id&nbsp;= 10.12.1.1&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; remote {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; auth = psk&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;id&nbsp;= 10.23.1.3&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; children {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; host2host {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; local_ts = 10.12.1.1/32&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remote_ts = 10.23.1.3/32&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; esp_proposals = aes128-sha1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; start_action = start&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}secrets {&nbsp; &nbsp; ike-psk {&nbsp; &nbsp; &nbsp; &nbsp; id-s1 = 10.12.1.1&nbsp; &nbsp; &nbsp; &nbsp; id-s2 = 10.23.1.3&nbsp; &nbsp; &nbsp; &nbsp; secret =&nbsp;"swan"&nbsp; &nbsp; }}

ttserver7设备的配置也是对称呼应:

nano /etc/swanctl/swanctl.confconnections {&nbsp; &nbsp; 76-74 {&nbsp; &nbsp; &nbsp; &nbsp; version = 1&nbsp; &nbsp; &nbsp; &nbsp; local_addrs = 10.23.1.3&nbsp; &nbsp; &nbsp; &nbsp; remote_addrs = 10.12.1.1&nbsp; &nbsp; &nbsp; &nbsp; proposals = aes128-sha1-modp2048&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;local&nbsp;{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; auth = psk&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;id&nbsp;= 10.23.1.3&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; remote {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; auth = psk&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;id&nbsp;= 10.12.1.1&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; children {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; host2host {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; local_ts = 10.23.1.3/32&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remote_ts = 10.12.1.1/32&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; esp_proposals = aes128-sha1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; start_action = start&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}secrets {&nbsp; &nbsp; ike-psk {&nbsp; &nbsp; &nbsp; &nbsp; id-s1 = 10.12.1.1&nbsp; &nbsp; &nbsp; &nbsp; id-s2 = 10.23.1.3&nbsp; &nbsp; &nbsp; &nbsp; secret =&nbsp;"swan"&nbsp; &nbsp; }}

配置完成后,我们重启后台服务,应用strongswan.conf配置中的修改;再使用swanctl命令读取并加载swanctl.conf配置中的策略,拉起IPsec隧道。

systemctl restart strongswanswanctl&nbsp;--load-allswanctl&nbsp;--list-conns

这个红色的提示吓了我一跳,不过只是没有配置,不用担心,这只是系统在告诉我们没配证书,完全不是报错。

因为我们配置了start_action = start,服务重启后,隧道就像定了闹钟一样,已经自动建立起来了。

可以看到,SA隧道已经协商成功,当前报文数据为零。如果你喜欢掌握主动权,想手工触发SA协商,也可以甩出这条命令:

swanctl&nbsp;--initiate&nbsp;--child&nbsp;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全通关指南》

评论:0   参与:  0