...
运维

StrongSwan 安装及配置 —— 与 TP-Link 路由器建立 IPsec VPN

简单说明 StrongSwan 是什么、适用场景、为什么要配合路由器做 Site-to-Site 或远程访问 VPN。

StrongSwan 是一款开源、稳定且支持 IKEv1/IKEv2 的 IPsec VPN 解决方案。
在企业或家庭网络中,我们常常希望通过公网安全地连接不同的局域网,例如云服务器与家用路由器互通。
本文将演示如何在 Ubuntu 服务器上安装 StrongSwan,并与 TP-Link 路由器 建立 IPsec 隧道,实现内网互访。


二、实验环境

设备 角色 公网 IP 内网网段 备注
Ubuntu 云服务器 StrongSwan 网关 1.1.1.1 10.0.0.0/24 SiteA
TP-Link 路由器 IPsec VPN 客户端 动态公网 IP 192.168.1.0/24 SiteB

目标:1.1.1.1 能访问 192.168.1.x,反之亦然。


三、安装 StrongSwan

sudo apt update
sudo apt install strongswan -y

安装完成后会生成主要配置文件:

  • /etc/ipsec.conf — 主配置文件
  • /etc/ipsec.secrets — 存储密钥和凭证

四、配置 IPsec

1. 编辑 /etc/ipsec.conf

sudo nano /etc/ipsec.conf

示例配置:

config setup
    uniqueids=no
    charondebug="ike 2, esp 2"  # 开启日志便于排查

conn aliyun
    authby=secret  # 预共享密钥认证(正确)
    auto=add  # 启动时加载连接
    left=%defaultroute      # 或 left=172.21.97.169
    leftid=1.1.1.1  # 服务器身份标识(与路由器对端网关一致)
    leftsubnet=0.0.0.0/0  # 云端子网(全流量转发,正确)
    right=%any  # 路由器公网IP(动态IP填%any,固定IP填实际公网IP)
    rightsubnet=192.168.1.0/24  # 本地目标IP(正确)

    # 加密套件(建议与路由器同步,若路由器支持则用更强的)
    ike=3des-md5-modp1024!  # 替换3des-md5(优先),若不支持再改回3des-md5-modp1024
    esp=3des-md5!  # 同上,不支持则用3des-md5

    keyexchange=ikev1  # 与路由器IKE版本一致
    aggressive=no  # 关闭野蛮模式(优先用主模式,兼容性更好)
    # aggressive=yes  # 若路由器强制要求野蛮模式,再开启

    # DPD检测(优化重连)
    dpdaction=restart  # 检测到断开后重连(原clear是关闭,不合理)
    dpddelay=30s
    dpdtimeout=120s

注意:TP-Link 一般只支持 IKEv1,且加密方式需与其 Web 配置一致。


2. 编辑 /etc/ipsec.secrets

sudo nano /etc/ipsec.secrets

内容示例:

 : PSK "123456789"

PSK 就是路由器里配置的预共享密钥。


五、TP-Link 路由器端配置

在路由器管理页面(通常是 192.168.1.1)中:

  1. 打开 高级设置 → VPN → IPsec VPN
  2. 新建连接:

    • 模式:主模式 (Main Mode)
    • 远程网关:1.1.1.1(服务器公网)
    • 本地网段:192.168.1.0/24
    • 远程网段:10.0.0.0/24
    • 预共享密钥:123456789

保存后点击“连接”。


六、启动与调试

启动 StrongSwan

sudo ipsec restart
sudo ipsec status

查看连接状态

sudo ipsec statusall

如果出现:

INSTALLED, TUNNEL, ESP in UDP SPIs: ...

说明隧道已成功建立。


七、验证通信

在 Ubuntu 端:

ping 192.168.1.1

在 TP-Link LAN 设备中:

ping 10.0.0.1

若能互通,则配置成功。


常见问题

问题 可能原因 解决方案
隧道不建立 PSK 或 ID 不一致 检查 ipsec.secrets 与路由器设置
只能单向通信 路由未添加 在两端手动添加 ip route 指向隧道接口
路由器连上但无数据 NAT/防火墙限制 在云服务器上允许 UDP 500/4500 端口
日志无效 charon 未输出 修改 charondebug 级别为 ike 2, knl 2, cfg 2

通过本文配置,我们成功让 云端 Ubuntu StrongSwanTP-Link 路由器 建立了一个稳定的 IPsec Site-to-Site VPN,实现了不同局域网之间的透明互通。

数据磁盘满了后增加新硬盘扩展原硬盘软链接(mklink)方案
biu biu biu
js将字符串数字数组转换成uint8Array数组,用于mcu通讯指令。 金蝶发票助手打开提示:本功能基于跨技术平台的嵌套方式实现,对正浏览器版本和兼容模式有要求。解决 关于HP打印机在WIN7上打印窗口无响应的解决办法 免费SSL证书、自动化续签证书,acme.sh 完整教程:安装、使用、常见错误及解决方案 分享一个微信朋友圈点赞秒赞软件,无需下载一秒几千赞