在现代网络环境中,安全、稳定的远程访问已成为企业与个人用户的核心需求,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虽复杂但可靠,是构建零信任网络的重要一环。

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






