作为一名网络工程师,在企业或个人环境中,远程访问内网资源是一项常见需求,尤其是在远程办公普及的今天,通过安全、稳定的虚拟私人网络(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为例,执行以下步骤:
-
更新系统:
sudo yum update -y
-
安装必要工具:
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 ipsec和journalctl -u xl2tpd; - 确保服务器公网IP正确,NAT穿透无误;
- 防火墙规则是否遗漏UDP 500/4500/1701端口;
- IPsec策略是否生效(可用
ipsec status查看);
通过以上步骤,你可以在CentOS上成功搭建一个稳定、安全的L2TP/IPsec VPN服务,它不仅适合企业员工远程办公,也适用于家庭用户访问NAS、路由器等私有服务,作为网络工程师,掌握此类技能有助于提升网络安全架构能力,也为未来部署更复杂的零信任网络打下基础,建议定期更新证书、轮换密钥,并监控日志防止非法访问。

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






