在 CentOS 系统上搭建 L2TP/IPsec VPN 服务详解(含配置步骤与常见问题排查)

dfbn6 2026-04-06 免费VPN 9 0

随着远程办公和网络安全需求的不断增长,搭建一个稳定、安全的虚拟私人网络(VPN)成为许多企业与个人用户的刚需,L2TP(Layer 2 Tunneling Protocol)结合 IPsec(Internet Protocol Security)是一种广泛使用的协议组合,它既支持多平台连接,又具备较强的数据加密能力,本文将以 CentOS 7/8 为例,详细介绍如何在 Linux 系统上部署 L2TP/IPsec VPN 服务,包括安装、配置、防火墙设置及常见问题解决方法。

确保你的 CentOS 系统已更新至最新版本,并拥有 root 权限或 sudo 权限,我们使用 openswan 和 xl2tpd 这两个开源软件来实现 L2TP/IPsec 功能,openswan 负责 IPsec 协议栈,xl2tpd 则负责 L2TP 隧道建立。

第一步:安装必要软件包
执行以下命令安装所需组件:

yum install -y openswan xl2tpd

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

config setup
    protostack=netkey
    plutodebug=all
    dumpdir=/var/log/pluto/
    nat_traversal=yes
conn l2tp-psk
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    left=%any
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/1701
    type=transport
    auth=esp
    esp=3des-sha1

第三步:配置预共享密钥(/etc/ipsec.secrets)
添加一行用于身份验证的密钥:

%any %any : PSK "your_pre_shared_key_here"

请将 "your_pre_shared_key_here" 替换为实际强密码,建议包含大小写字母、数字和特殊字符。

第四步:配置 xl2tpd(/etc/xl2tpd/xl2tpd.conf)
添加如下配置:

[global]
listen-addr = your_server_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)
创建并编辑该文件,内容如下:

+mschap-v2
ipcp-accept-local
ipcp-accept-remote
noccp
auth
mtu 1400
mru 1400
lock
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

第六步:配置用户账户(/etc/ppp/chap-secrets)
添加允许连接的用户名和密码:

username * password *

第七步:启用 IP 转发与防火墙规则
编辑 /etc/sysctl.conf 启用转发:

net.ipv4.ip_forward = 1

执行 sysctl -p 生效,然后配置 iptables:

iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -p udp --dport 1701 -j ACCEPT
iptables -A FORWARD -s 192.168.100.0/24 -d 0.0.0.0/0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE

重启服务:

systemctl restart ipsec
systemctl restart xl2tpd
systemctl enable ipsec xl2tpd

常见问题排查:

  • 若连接失败,请检查 /var/log/pluto.log/var/log/messages 中的日志。
  • 确保服务器公网 IP 可访问,且端口未被防火墙屏蔽。
  • 若客户端提示“无法建立隧道”,请确认 IPsec 密钥一致、防火墙规则正确。

通过以上步骤,你可以在 CentOS 上成功搭建一个功能完整的 L2TP/IPsec VPN 服务,满足日常远程访问与数据加密需求。

在 CentOS 系统上搭建 L2TP/IPsec VPN 服务详解(含配置步骤与常见问题排查)

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