在现代企业网络环境中,远程办公已成为常态,而如何确保员工通过公网安全地访问内网资源,是每个网络工程师必须解决的问题,L2TP(Layer 2 Tunneling Protocol)结合IPsec(Internet Protocol Security)是一种成熟、稳定且广泛支持的VPN解决方案,特别适合中小型企业和个人用户构建安全的远程接入通道,本文将详细介绍如何在Linux系统(以Ubuntu Server为例)上搭建一个基于L2TP/IPsec的VPN服务器,帮助你实现跨地域的安全访问。
第一步:准备环境
你需要一台运行Linux系统的服务器(推荐Ubuntu 20.04或22.04 LTS),具备公网IP地址,并开放必要的端口:UDP 500(IKE)、UDP 4500(NAT-T)、UDP 1701(L2TP),建议使用云服务商如阿里云、腾讯云或AWS部署,便于配置防火墙规则。
第二步:安装必要软件包
登录服务器后,执行以下命令安装所需组件:
sudo apt update sudo apt install xl2tpd strongswan -y
xl2tpd负责L2TP隧道管理,strongswan提供IPsec加密和认证功能。
第三步:配置IPsec(StrongSwan)
编辑配置文件 /etc/ipsec.conf,添加如下内容:
config setup
plutodebug=control
uniqueids=yes
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev1
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
conn l2tp-psk
auto=add
left=%any
leftid=@yourdomain.com # 替换为你的域名或公网IP
right=%any
rightsubnet=192.168.100.0/24 # 内网子网段
authby=secret
pfs=yes
type=transport
dpddelay=30
dpdtimeout=120
dpdaction=clear
接着配置预共享密钥(PSK),编辑 /etc/ipsec.secrets:
%any %any : PSK "your_strong_pre_shared_key"
注意:请设置强密码并妥善保管,避免泄露。
第四步:配置L2TP(xl2tpd)
编辑 /etc/xl2tpd/xl2tpd.conf:
[global]
port = 1701
ip range = 192.168.100.100-192.168.100.200
local ip = 192.168.100.1
require authentication = yes
refuse chap = no
refuse pap = no
[lns default]
ip range = 192.168.100.100-192.168.100.200
local ip = 192.168.100.1
require authentication = yes
第五步:启用IP转发与防火墙规则
编辑 /etc/sysctl.conf,取消注释:
net.ipv4.ip_forward=1
然后执行:
sudo sysctl -p
在防火墙中添加规则(以UFW为例):
sudo ufw allow 500/udp sudo ufw allow 4500/udp sudo ufw allow 1701/udp sudo ufw enable
第六步:启动服务与测试
重启服务:
sudo systemctl restart strongswan sudo systemctl restart xl2tpd sudo systemctl enable strongswan xl2tpd
客户端连接时,使用L2TP协议,输入服务器IP、用户名(如user1)和密码(需在系统中创建用户),预共享密钥填入前面配置的值,连接成功后,即可通过该隧道访问内网资源。
L2TP/IPsec方案兼顾安全性与兼容性,尤其适合Windows、iOS、Android等多平台用户,虽然配置稍复杂,但一旦部署完成,即可为企业提供稳定可靠的远程访问能力,作为网络工程师,掌握这一技能对提升运维效率和保障网络安全至关重要。

半仙加速器-海外加速器|VPN加速器|vpn翻墙加速器|VPN梯子|VPN外网加速









