在现代远程办公和跨地域访问日益普及的背景下,构建一个安全、稳定、易管理的虚拟私人网络(VPN)成为许多企业和个人用户的刚需,L2TP(Layer 2 Tunneling Protocol)结合 IPsec(Internet Protocol Security)是一种广泛使用的隧道协议组合,它既能提供数据加密又能实现用户身份认证,尤其适合在 Ubuntu 这类开源操作系统上部署,本文将详细介绍如何在 Ubuntu 20.04 或 22.04 服务器上搭建一套完整的 L2TP/IPsec VPN 服务,适用于企业内网访问、远程员工接入等典型场景。

准备工作至关重要,你需要一台运行 Ubuntu 的服务器(推荐使用云主机如阿里云、腾讯云或本地物理机),确保系统已更新至最新版本(执行 sudo apt update && sudo apt upgrade),需要配置静态公网 IP 地址,并开放必要的端口:UDP 500(IPsec IKE)、UDP 4500(IPsec NAT-T)、UDP 1701(L2TP 隧道),以及 TCP 22(SSH 管理端口),若使用防火墙(如 UFW),应运行如下命令:

sudo ufw allow 500/udp
sudo ufw allow 4500/udp
sudo ufw allow 1701/udp
sudo ufw allow 22/tcp
sudo ufw enable

接下来安装并配置 StrongSwan(IPsec 实现)和 xl2tpd(L2TP 用户空间守护进程),执行以下命令:

sudo apt install strongswan xl2tpd -y

配置 IPsec 时,编辑 /etc/ipsec.conf 文件,添加如下内容:

config setup
    plutodebug=control
    protostack=netkey
    dumpdir=/var/run/pluto/
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
    oe=no
conn %default
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ike
    authby=secret
    ike=aes256-sha256-modp2048!
    esp=aes256-sha256!
conn l2tp-psk
    auto=add
    left=%any
    leftid=@your_server_domain_or_ip
    right=%any
    rightsubnet=vhost:%priv
    rightprotoport=1723/udp
    dpddelay=30
    dpdtimeout=120
    dpdaction=restart
    authby=secret
    pfs=yes
    type=transport
    phase2alg=aes_gcm_16sha256
    ikelifetime=60m
    lifetime=60m

然后编辑 /etc/ipsec.secrets,添加预共享密钥(PSK):

%any %any : PSK "your_strong_pre_shared_key"

配置 xl2tpd 服务,编辑 /etc/xl2tpd/xl2tpd.conf

[global]
listen-addr = your_server_public_ip
ip range = 192.168.100.100-192.168.100.200
local ip = 192.168.100.1
refuse chap = yes
refuse pap = yes
require authentication = yes
name = l2tpserver
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd

创建 /etc/ppp/options.xl2tpd 文件用于 PPP 协议设置:

ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
ms-dns 8.8.4.4
noccp
auth
crtscts
lock
modem
debug
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

配置用户账户:编辑 /etc/ppp/chap-secrets,格式为:用户名 密码 IP地址(可选):

user1   *   password1   *

重启服务使配置生效:

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

完成上述步骤后,客户端(Windows、iOS、Android)即可通过 L2TP/IPsec 连接你的 Ubuntu 服务器,输入服务器 IP、用户名和密码即可建立安全隧道,整个过程无需复杂依赖,适合初学者快速上手,也具备良好的扩展性和安全性,是中小企业或个人开发者构建私有网络的理想选择。

Ubuntu 服务器搭建 L2TP/IPsec VPN 网络解决方案详解  第1张

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