Ubuntu系统下搭建IPsec VPN的完整指南,从配置到实战部署

dfbn6 2026-04-17 VPN翻墙 1 0

在现代网络环境中,安全、稳定的远程访问已成为企业与个人用户的核心需求,IPsec(Internet Protocol Security)作为一种广泛应用的网络安全协议,能够为数据传输提供加密和认证保障,Ubuntu作为开源操作系统中的佼佼者,因其稳定性和强大的社区支持,成为搭建IPsec VPN的理想平台,本文将详细介绍如何在Ubuntu服务器上使用StrongSwan(一个成熟的IPsec实现)搭建IPsec/L2TP或IPsec/XAuth(即“传统”IPsec)VPN服务,帮助你快速构建私有网络隧道。

第一步:环境准备
确保你有一台运行Ubuntu 20.04或更高版本的服务器(推荐使用云主机如AWS EC2或阿里云ECS),登录服务器后,更新系统包列表并安装必要软件:

sudo apt update && sudo apt upgrade -y
sudo apt install strongswan strongswan-pki libcharon-dev -y

StrongSwan是IPsec的主流实现,而strongswan-pki用于生成证书(如果选择证书认证方式),libcharon-dev是开发依赖库。

第二步:配置IPsec主文件
编辑 /etc/ipsec.conf 文件,定义连接参数,以下是一个典型的L2TP/IPsec配置示例:

config setup
    charondebug="ike 1, knl 1, cfg 1"
    uniqueids=no
conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=3
    keyexchange=ikev1
    authby=secret
    ike=aes256-sha256-modp2048!
    esp=aes256-sha256!
conn l2tp-psk
    left=%any
    leftid=@your-vpn-domain.com
    leftsubnet=192.168.100.0/24
    right=%any
    rightauth=psk
    rightauth2=none
    rightsourceip=192.168.100.0/24
    auto=add
    type=transport
    also=l2tp-ikev1

注意:leftid 应填写你的公网IP或域名;rightsourceip 是客户端分配的IP池;authby=secret 表示使用预共享密钥(PSK)认证。

第三步:设置预共享密钥
创建 /etc/ipsec.secrets 文件,添加PSK:

%any %any : PSK "your_strong_pre_shared_key_here"

保存后重启IPsec服务:

sudo systemctl restart strongswan
sudo systemctl enable strongswan

第四步:启用内核模块与转发
确保IP转发已开启:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

第五步:防火墙配置(UFW或iptables)
允许IPsec端口(500/UDP 和 4500/UDP)以及L2TP(UDP 1701):

sudo ufw allow 500/udp
sudo ufw allow 4500/udp
sudo ufw allow 1701/udp

第六步:测试与客户端连接
在Windows或iOS设备上,配置IPsec连接时输入服务器IP、预共享密钥,并选择“L2TP over IPsec”,若一切正常,客户端将成功建立隧道并获得私网IP地址。


通过以上步骤,你可以在Ubuntu上成功部署一个功能完整的IPsec VPN服务,此方案适用于小型办公场景、远程员工接入或站点间互联,后续可根据需要扩展证书认证(X.509)、多用户策略或集成Radius服务器实现更细粒度权限控制,记住定期更新证书、监控日志(journalctl -u strongswan)以保证安全与稳定性,IPsec虽复杂但可靠,是构建零信任网络的重要一环。

Ubuntu系统下搭建IPsec VPN的完整指南,从配置到实战部署

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN