核心概念
- L2TP (Layer 2 Tunneling Protocol): 一种隧道协议,它本身不提供加密。
- IPsec (Internet Protocol Security): 用于对 L2TP 的数据进行加密和认证。
- L2TP/IPsec: 这是目前最标准、最安全的 L2TP 实现方式,OpenWrt 的
luci-app-l2tp软件包实际上就是封装了xl2tpd(L2TP 守护进程) 和strongSwan(IPsec 实现)。
第一步:准备工作
- 一台已刷好 OpenWrt 的路由器:确保路由器可以正常联网,并且能通过 Web 界面访问。
- 登录 OpenWrt 后台:通过浏览器访问路由器的管理地址(通常是
168.1.1)。 - 更新软件包列表:
- 进入 System (系统) -> Software (软件包)。
- 点击 "Update lists..." (更新列表...) 按钮,等待完成。
第二步:安装所需软件包
我们需要安装 L2TP 服务器和 IPsec 的相关组件。

- 在 Software (软件包) 页面,点击 "Filter (筛选)" 按钮。
- 在搜索框中输入
luci-app-l2tp,然后点击旁边的 号进行安装,这个是 Web 配置界面。 - 再次搜索
strongswan-mod-pki,点击 号安装,这个提供 PKI (Public Key Infrastructure) 支持,是 IPsec 的核心组件。 - 最后搜索
kmod-tun,点击 号安装,这是内核模块,用于创建虚拟网络接口(如tun),L2TP 依赖它。
安装完成后,系统会自动重启相关服务。
第三步:配置 L2TP 服务器
现在我们通过 Web 界面进行核心配置。
-
进入配置界面:
- 左侧菜单栏点击 "System (系统)" -> "L2TP Server (L2TP 服务器)"。
-
基本设置:
(图片来源网络,侵删)- Enable (启用): 勾选此项,以启用 L2TP 服务器。
- IP Address Pool (IP 地址池): 这是分配给 L2TP 客户端的 IP 地址范围。请确保这个范围与您路由器的 LAN 网段不冲突。
- 如果您的 LAN 网段是
168.1.0/24,您可以设置地址池为168.2.100-192.168.2.200。 - 子网掩码:
255.255.0
- 如果您的 LAN 网段是
- DNS Servers (DNS 服务器): 客户端连接后使用的 DNS,建议使用公共 DNS,如
8.8.8和8.4.4,或者您路由器的网关 IP (如168.1.1)。 - Authentication Method (认证方法): 保持默认的
EAP-MSCHAPv2即可。
-
IPsec 设置:
- Enable (启用): 勾选此项,以启用 IPsec 加密。
- IPsec Pre-Shared Key (IPsec 预共享密钥): 这是最重要的设置之一! 设置一个强密码,客户端连接时需要用到这个密钥,请务必记住它。
- X.509 Certificate (X.509 证书): 保持默认的
Generate new certificate... (生成新证书...),OpenWrt 会自动为路由器创建一个自签名证书,对于家庭/小型办公使用完全足够。
-
用户认证:
- 切换到 "Authentication (认证)" 标签页。
- 这里可以添加允许连接的用户名和密码。
- 点击 "Add (添加)" 按钮。
- Username (用户名): 输入一个用户名(
vpnuser1)。 - Password (密码): 输入一个强密码。
- PEER DNS (对等 DNS): 可以留空,使用上面设置的 DNS。
- 点击 "Save (保存)"。
-
保存并应用:
- 点击页面底部的 "Save & Apply (保存并应用)" 按钮,系统会保存配置并重启 L2TP 和 IPsec 服务。
第四步:配置防火墙(至关重要!)
新版本的 OpenWrt 默认使用 firewall,我们需要为 L2TP 流量创建一个新的区域(Zone),以便客户端能访问内网和互联网。

-
进入防火墙配置:
- 左侧菜单栏点击 "Network (网络)" -> "Firewall (防火墙)"。
-
添加新区域:
- 点击页面底部的 "Add (添加)" 按钮。
- Name (名称): 输入一个名称,
l2tp。 - Input (输入): 选择
accept(接受)。 - Output (输出): 选择
accept(接受)。 - Forward (转发): 选择
accept(接受)。这是关键! - Covered networks (覆盖的网络): 点击下拉菜单,选择
vpn,这个vpn接口是 L2TP 服务自动创建的。 - Allow forward to destination zones (允许转发到目标区域): 勾选
lan,这允许 L2TP 客户端访问你的家庭内网。 - Allow forward from source zones (允许从源区域转发): 勾选
wan,这允许 L2TP 客户端通过你的路由器访问互联网。 - MASQUERADE (源地址伪装): 勾选此项,这会让从 L2TP 客户端出去的流量都伪装成路由器的公网 IP,从而能够访问互联网。非常重要!
- 点击 "Save (保存)"。
-
应用更改:
- 保存后,点击页面右上角的 "Save & Apply (保存并应用)"。
-
检查接口:
- 有时系统可能没有自动创建
vpn接口,如果上一步的Covered networks下没有vpn选项,你需要手动创建。 - 进入 "Network (网络)" -> "Interfaces (接口)"。
- 点击 "Add new interface... (添加新接口...)"。
- Name (名称): 输入
vpn。 - Protocol (协议): 选择 "Unmanaged (未管理)"。
- 点击 "Switch to advanced configuration (切换到高级配置)"。
- 在 "IPv4 address (IPv4 地址)" 栏,输入你的 L2TP 服务器 IP,这个 IP 应该是你 LAN 网段的一个地址,并且是 DHCP 服务器不分配的地址,如果你的 LAN 是
168.1.1/24,你可以设置168.1.2/24。 - 点击 "Save (保存)",系统会提示你配置防火墙区域,选择刚刚创建的
l2tp区域即可。
- 有时系统可能没有自动创建
第五步:客户端连接示例
配置完成后,你就可以从客户端设备连接了。
Windows 10/11
- 进入 设置 -> 网络和 Internet -> VPN。
- 点击 "添加 VPN"。
- VPN 提供商: 选择 "Windows (内置)"。
- 连接名称: 任意填写,如 "My Home L2TP"。
- 服务器名称或地址: 填写你的 OpenWrt 路由器的公网 IP 地址或动态域名。
- VPN 类型: 选择 "Layer 2 Tunneling Protocol with IPsec (L2TP/IPsec)"。
- 登录信息的类型: 选择 "用户名和密码"。
- 在下方的 "用户名" 和 "密码" 字段中,填入你在第三步 "用户认证" 中设置的用户名和密码。
- 点击 "保存"。
- 返回 VPN 列表,点击你刚刚创建的 VPN,然后点击 "连接",系统可能会提示你输入 IPsec 预共享密钥,输入你在第三步 "IPsec 设置" 中设置的密钥即可。
Android / iOS
- 进入 设置 -> 通用 -> VPN。
- 点击 "添加 VPN 配置..."。
- 配置方式: 选择 "L2TP"。
- 描述: 任意填写。
- 服务器: 填写你的 OpenWrt 路由器的公网 IP 地址或动态域名。
- 账户: 填入你设置的用户名。
- 密码: 填入你设置的密码。
- 密钥: 填入你在第三步 "IPsec 设置" 中设置的 IPsec 预共享密钥。
- 发送所有流量: 强烈建议开启,这确保所有网络流量都通过 VPN 加密。
- 点击右上角的 "完成" 或 "存储",然后打开 VPN 开关进行连接。
故障排查
如果连接失败,请按以下步骤检查:
- 检查防火墙:确保第四步的防火墙区域配置正确,特别是
Forward、MASQUERADE和lan/wan的勾选。 - 检查日志:
- 在 OpenWrt 后台,进入 System (系统) -> System Log (系统日志)。
- 在 "Filter (筛选)" 中输入
l2tp或charon(strongSwan 的进程名)。 - 观察是否有错误信息,如 "authentication failed" (认证失败)、"no IP address available" (无可用IP地址) 等。
- 检查 IPsec 预共享密钥和用户名密码:客户端和服务器端的这两个密钥必须完全一致,区分大小写。
- 检查端口:L2TP/IPsec 默认使用 UDP 端口
500(IKE)、4500(NAT-T) 和1701(L2TP),确保你的路由器没有在 WAN 口防火墙中屏蔽这些端口。 - NAT 穿透:如果客户端在 NAT(如公司网络、酒店网络)之后,连接可能会失败,尝试切换不同的网络环境进行测试。
希望这份详细的指南能帮助你成功搭建 OpenWrt L2TP 服务器!
