凌峰创科服务平台

OpenWRT如何搭建L2TP服务器?

核心概念

  • L2TP (Layer 2 Tunneling Protocol): 一种隧道协议,它本身不提供加密。
  • IPsec (Internet Protocol Security): 用于对 L2TP 的数据进行加密和认证。
  • L2TP/IPsec: 这是目前最标准、最安全的 L2TP 实现方式,OpenWrt 的 luci-app-l2tp 软件包实际上就是封装了 xl2tpd (L2TP 守护进程) 和 strongSwan (IPsec 实现)。

第一步:准备工作

  1. 一台已刷好 OpenWrt 的路由器:确保路由器可以正常联网,并且能通过 Web 界面访问。
  2. 登录 OpenWrt 后台:通过浏览器访问路由器的管理地址(通常是 168.1.1)。
  3. 更新软件包列表
    • 进入 System (系统) -> Software (软件包)
    • 点击 "Update lists..." (更新列表...) 按钮,等待完成。

第二步:安装所需软件包

我们需要安装 L2TP 服务器和 IPsec 的相关组件。

OpenWRT如何搭建L2TP服务器?-图1
(图片来源网络,侵删)
  1. Software (软件包) 页面,点击 "Filter (筛选)" 按钮。
  2. 在搜索框中输入 luci-app-l2tp,然后点击旁边的 号进行安装,这个是 Web 配置界面。
  3. 再次搜索 strongswan-mod-pki,点击 号安装,这个提供 PKI (Public Key Infrastructure) 支持,是 IPsec 的核心组件。
  4. 最后搜索 kmod-tun,点击 号安装,这是内核模块,用于创建虚拟网络接口(如 tun),L2TP 依赖它。

安装完成后,系统会自动重启相关服务。


第三步:配置 L2TP 服务器

现在我们通过 Web 界面进行核心配置。

  1. 进入配置界面

    • 左侧菜单栏点击 "System (系统)" -> "L2TP Server (L2TP 服务器)"
  2. 基本设置

    OpenWRT如何搭建L2TP服务器?-图2
    (图片来源网络,侵删)
    • Enable (启用): 勾选此项,以启用 L2TP 服务器。
    • IP Address Pool (IP 地址池): 这是分配给 L2TP 客户端的 IP 地址范围。请确保这个范围与您路由器的 LAN 网段不冲突
      • 如果您的 LAN 网段是 168.1.0/24,您可以设置地址池为 168.2.100-192.168.2.200
      • 子网掩码: 255.255.0
    • DNS Servers (DNS 服务器): 客户端连接后使用的 DNS,建议使用公共 DNS,如 8.8.88.4.4,或者您路由器的网关 IP (如 168.1.1)。
    • Authentication Method (认证方法): 保持默认的 EAP-MSCHAPv2 即可。
  3. IPsec 设置

    • Enable (启用): 勾选此项,以启用 IPsec 加密。
    • IPsec Pre-Shared Key (IPsec 预共享密钥): 这是最重要的设置之一! 设置一个强密码,客户端连接时需要用到这个密钥,请务必记住它。
    • X.509 Certificate (X.509 证书): 保持默认的 Generate new certificate... (生成新证书...),OpenWrt 会自动为路由器创建一个自签名证书,对于家庭/小型办公使用完全足够。
  4. 用户认证

    • 切换到 "Authentication (认证)" 标签页。
    • 这里可以添加允许连接的用户名和密码。
    • 点击 "Add (添加)" 按钮。
    • Username (用户名): 输入一个用户名(vpnuser1)。
    • Password (密码): 输入一个强密码。
    • PEER DNS (对等 DNS): 可以留空,使用上面设置的 DNS。
    • 点击 "Save (保存)"
  5. 保存并应用

    • 点击页面底部的 "Save & Apply (保存并应用)" 按钮,系统会保存配置并重启 L2TP 和 IPsec 服务。

第四步:配置防火墙(至关重要!)

新版本的 OpenWrt 默认使用 firewall,我们需要为 L2TP 流量创建一个新的区域(Zone),以便客户端能访问内网和互联网。

OpenWRT如何搭建L2TP服务器?-图3
(图片来源网络,侵删)
  1. 进入防火墙配置

    • 左侧菜单栏点击 "Network (网络)" -> "Firewall (防火墙)"
  2. 添加新区域

    • 点击页面底部的 "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 (保存)"
  3. 应用更改

    • 保存后,点击页面右上角的 "Save & Apply (保存并应用)"
  4. 检查接口

    • 有时系统可能没有自动创建 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

  1. 进入 设置 -> 网络和 Internet -> VPN
  2. 点击 "添加 VPN"
  3. VPN 提供商: 选择 "Windows (内置)"
  4. 连接名称: 任意填写,如 "My Home L2TP"。
  5. 服务器名称或地址: 填写你的 OpenWrt 路由器的公网 IP 地址动态域名
  6. VPN 类型: 选择 "Layer 2 Tunneling Protocol with IPsec (L2TP/IPsec)"
  7. 登录信息的类型: 选择 "用户名和密码"
  8. 在下方的 "用户名""密码" 字段中,填入你在第三步 "用户认证" 中设置的用户名和密码。
  9. 点击 "保存"
  10. 返回 VPN 列表,点击你刚刚创建的 VPN,然后点击 "连接",系统可能会提示你输入 IPsec 预共享密钥,输入你在第三步 "IPsec 设置" 中设置的密钥即可。

Android / iOS

  1. 进入 设置 -> 通用 -> VPN
  2. 点击 "添加 VPN 配置..."
  3. 配置方式: 选择 "L2TP"
  4. 描述: 任意填写。
  5. 服务器: 填写你的 OpenWrt 路由器的公网 IP 地址动态域名
  6. 账户: 填入你设置的用户名。
  7. 密码: 填入你设置的密码。
  8. 密钥: 填入你在第三步 "IPsec 设置" 中设置的 IPsec 预共享密钥。
  9. 发送所有流量: 强烈建议开启,这确保所有网络流量都通过 VPN 加密。
  10. 点击右上角的 "完成""存储",然后打开 VPN 开关进行连接。

故障排查

如果连接失败,请按以下步骤检查:

  1. 检查防火墙:确保第四步的防火墙区域配置正确,特别是 ForwardMASQUERADElan/wan 的勾选。
  2. 检查日志
    • 在 OpenWrt 后台,进入 System (系统) -> System Log (系统日志)
    • "Filter (筛选)" 中输入 l2tpcharon (strongSwan 的进程名)。
    • 观察是否有错误信息,如 "authentication failed" (认证失败)、"no IP address available" (无可用IP地址) 等。
  3. 检查 IPsec 预共享密钥和用户名密码:客户端和服务器端的这两个密钥必须完全一致,区分大小写。
  4. 检查端口:L2TP/IPsec 默认使用 UDP 端口 500 (IKE)、4500 (NAT-T) 和 1701 (L2TP),确保你的路由器没有在 WAN 口防火墙中屏蔽这些端口。
  5. NAT 穿透:如果客户端在 NAT(如公司网络、酒店网络)之后,连接可能会失败,尝试切换不同的网络环境进行测试。

希望这份详细的指南能帮助你成功搭建 OpenWrt L2TP 服务器!

分享:
扫描分享到社交APP
上一篇
下一篇