手把手教你用CentOS搭建L2TP/IPsec VPN服务,实现安全远程访问

dfbn6 2026-04-12 梯子VPN 7 0

作为一名网络工程师,在企业或个人环境中,远程访问内网资源是一项常见需求,尤其是在远程办公普及的今天,通过安全、稳定的虚拟私人网络(VPN)连接至关重要,L2TP(Layer 2 Tunneling Protocol)结合IPsec(Internet Protocol Security)是一种广泛支持、成熟可靠的VPN协议组合,尤其适用于Windows、iOS和Android等主流设备,本文将详细讲解如何在CentOS系统上搭建一个基于L2TP/IPsec的VPN服务器,确保数据传输加密且易于管理。

准备工作
你需要一台运行CentOS 7或8的服务器(推荐使用CentOS Stream或最小化安装版本),确保服务器已配置静态IP地址,并能正常访问互联网,我们以CentOS 7为例,执行以下步骤:

  1. 更新系统:

    sudo yum update -y
  2. 安装必要工具:

    sudo yum install -y xl2tpd iptables-services libreswan openssh-server
  • xl2tpd 是L2TP守护进程;
  • libreswan 提供IPsec加密功能;
  • iptables-services 用于配置防火墙规则。

配置IPsec(Libreswan)
IPsec负责建立加密隧道,确保通信安全,编辑配置文件 /etc/ipsec.conf

sudo vi /etc/ipsec.conf

根据你的网络环境调整IP段和预共享密钥):

config setup
    plutodebug=control
    protostack=netkey
    interfaces=%defaultroute
    uniqueids=yes
conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
    authby=secret
    pfs=yes
    auto=add
    keylife=24h
    rekey=no
    type=transport
    left=%any
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/1701

接下来配置预共享密钥(PSK),编辑 /etc/ipsec.secrets

sudo vi /etc/ipsec.secrets

添加一行:

%any %any : PSK "your_strong_pre_shared_key_here"

请务必使用高强度密码(如随机生成的16位字符),并妥善保存。

配置L2TP(xl2tpd)
编辑 /etc/xl2tpd/xl2tpd.conf

sudo vi /etc/xl2tpd/xl2tpd.conf

如下:

[global]
ip range = 192.168.100.100-192.168.100.200
local ip = your_server_ip
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpserver
auth file = /etc/ppp/chap-secrets
[lns default]
ip range = 192.168.100.100-192.168.100.200
local ip = your_server_ip
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpserver

注意:your_server_ip 替换为你的服务器公网IP或内网IP(若客户端在内网则用内网IP)。

设置用户认证
创建PPPoE认证文件 /etc/ppp/chap-secrets

sudo vi /etc/ppp/chap-secrets

格式:用户名 路由器名 密码 IP范围(可选)

username1 l2tpserver password1 *
alice l2tpserver mypassword *

启动服务并设置开机自启

sudo systemctl enable ipsec xl2tpd
sudo systemctl start ipsec xl2tpd

配置防火墙(重要!)
确保端口开放:

sudo firewall-cmd --permanent --add-port=500/udp
sudo firewall-cmd --permanent --add-port=4500/udp
sudo firewall-cmd --permanent --add-port=1701/udp
sudo firewall-cmd --reload

启用IP转发(关键步骤)
编辑 /etc/sysctl.conf,取消注释:

net.ipv4.ip_forward = 1

然后执行:

sudo sysctl -p

测试与客户端连接

  • Windows客户端:使用“网络和共享中心”添加新连接 → “连接到工作场所” → 输入服务器IP,选择L2TP/IPsec;
  • Android/iOS:使用第三方VPN客户端(如StrongSwan或L2TP Client);
  • 用户名密码按上面配置输入。

常见问题排查

  • 若无法连接,检查日志:journalctl -u ipsecjournalctl -u xl2tpd
  • 确保服务器公网IP正确,NAT穿透无误;
  • 防火墙规则是否遗漏UDP 500/4500/1701端口;
  • IPsec策略是否生效(可用 ipsec status 查看);


通过以上步骤,你可以在CentOS上成功搭建一个稳定、安全的L2TP/IPsec VPN服务,它不仅适合企业员工远程办公,也适用于家庭用户访问NAS、路由器等私有服务,作为网络工程师,掌握此类技能有助于提升网络安全架构能力,也为未来部署更复杂的零信任网络打下基础,建议定期更新证书、轮换密钥,并监控日志防止非法访问。

手把手教你用CentOS搭建L2TP/IPsec VPN服务,实现安全远程访问

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