手把手教你搭建L2TP/IPsec VPN服务器:安全远程访问的完整指南

在现代企业网络中,远程办公已成为常态,而虚拟专用网络(VPN)则是保障数据传输安全的关键技术之一,L2TP(Layer 2 Tunneling Protocol)结合IPsec加密机制,因其兼容性强、配置灵活且安全性高,成为许多中小型企业或个人用户首选的远程接入方案,本文将详细介绍如何在Linux系统(以Ubuntu为例)上搭建一个稳定、安全的L2TP/IPsec VPN服务器,帮助你实现安全远程访问内网资源。

确保你的服务器具备公网IP地址,并已开放必要的端口:UDP 500(ISAKMP)、UDP 4500(NAT-T),以及UDP 1701(L2TP控制通道),这些端口是L2TP/IPsec协议正常通信的基础。

第一步:安装必要软件包
使用以下命令安装StrongSwan(IPsec实现)和xl2tpd(L2TP守护进程):

sudo apt update
sudo apt install strongswan xl2tpd -y

第二步:配置IPsec(StrongSwan)
编辑 /etc/ipsec.conf 文件,添加如下内容:

config setup
    charondebug="ike 1, knl 1, cfg 1"
    uniqueids=no
conn %default
    ikelifetime=60m
    keylife=20m
    rekey=yes
    reauth=yes
    keyingtries=3
    left=%any
    right=%any
    auto=add
conn l2tp-psk
    type=transport
    authby=secret
    leftprotoport=17/udp
    rightprotoport=17/udp
    also=l2tp-ipsec

/etc/ipsec.secrets 中设置预共享密钥(PSK):

%any %any : PSK "your_strong_pre_shared_key_here"

请务必用高强度密码替换“your_strong_pre_shared_key_here”,并妥善保管。

第三步:配置L2TP服务(xl2tpd)
编辑 /etc/xl2tpd/xl2tpd.conf

[global]
ipsec saref = yes
listen-addr = your_server_public_ip
[lns default]
ip range = 192.168.100.100-192.168.100.200
local ip = 192.168.100.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tp-server
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd
length bit = yes

第四步:创建PPP选项文件
创建 /etc/ppp/options.l2tpd

require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
modem
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

第五步:添加用户账号
编辑 /etc/ppp/chap-secrets


这里定义了用户名和密码,支持多个用户。

第六步:启用IP转发与防火墙规则
编辑 /etc/sysctl.conf,取消注释:

net.ipv4.ip_forward=1

执行 sysctl -p 生效。

重启服务并测试连接:

sudo systemctl restart strongswan
sudo systemctl restart xl2tpd
sudo systemctl enable strongswan xl2tpd

完成以上步骤后,即可在Windows或iOS设备上通过“L2TP over IPsec”方式连接,输入服务器IP、用户名和密码即可成功建立隧道,该方案不仅适合远程办公,也适用于分支机构互联等场景,记得定期更新固件、轮换密钥,并开启日志监控以提升整体安全性。

client server secret IP addresses  第1张

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