L2TP 本身不提供加密,所以它必须与 IPsec 结合使用,才能创建一个安全的 VPN 隧道,在 Windows 服务器上,这个过程通常通过“路由和远程访问服务”和“证书服务”来实现。

核心概念
- L2TP (Layer 2 Tunneling Protocol): 负责在公共网络上建立一个“隧道”,用于封装你的网络数据包,它本身不加密。
- IPsec (Internet Protocol Security): 负责对隧道中的数据进行加密和身份验证,这是确保 VPN 安全的关键。
- 预共享密钥: 一种简单的身份验证方式,服务器和客户端必须使用完全相同的密钥才能建立连接。这是家庭或小型办公室最常用的方法。
- 证书: 一种更安全、更灵活的身份验证方式,需要你拥有一个证书颁发机构来签发证书,通常用于企业环境。
本指南将重点介绍最简单、最常用的“预共享密钥”方法,适用于 Windows 10/11 专业版/企业版/教育版以及 Windows Server 2012 及更高版本。
环境准备
- 服务器端: 一台具有公网 IP 地址的 Windows 机器(可以是云服务器,如阿里云、腾讯云、AWS,或家里的路由器开启了端口转发)。
- 客户端: 一台可以访问互联网的 Windows, macOS, iOS, Android 设备。
- 网络环境:
- 服务器的防火墙(Windows Defender 防火墙)需要开放 UDP 端口 500 (用于 IPsec IKE) 和 1701 (用于 L2TP)。
- 如果服务器在路由器后面,需要在路由器上做端口转发,将公网 IP 的 500 和 1701 端口转发到服务器的内网 IP 地址。
详细配置步骤 (以 Windows 10/11 专业版为例)
第一步:安装“路由和远程访问”服务
- 按
Win + S搜索“控制面板”并打开。 - 将“查看方式”改为“大图标”或“小图标”,然后点击“程序”。
- 点击“启用或关闭 Windows 功能”。
- 在弹出的窗口中,找到并勾选“远程访问服务”(它通常包含在“路由和远程访问”中),然后点击“确定”。
- 等待功能安装完成,安装后,系统可能会提示你重启电脑,但通常可以直接开始配置。
第二步:配置路由和远程访问
- 按
Win + R,输入rrasmgmt.msc并回车,直接打开“路由和远程访问”管理控制台。 - 在左侧控制台中,右键点击你的服务器名称(
WIN10-PC),选择“配置并启用路由和远程访问”。 - “欢迎使用路由和远程访问服务器安装向导”窗口出现,点击“下一步”。
- 选择连接类型:
- 选择“自定义配置”,然后点击“下一步”。
- 为什么选自定义? 因为默认的“VPN 访问”会配置 DHCP 中继,可能会与你的现有网络冲突,自定义配置更灵活。
- 自定义配置:
- 勾选“VPN 访问”,然后点击“下一步”。
- 完成安装:
- 点击“完成”。
- 启动服务:
- 系统会提示你“您现在想启动服务吗?”,点击“是”。
- 稍等片刻,服务启动成功后,服务器名称旁边会出现一个绿色的向上箭头,表示服务已运行。
第三步:设置 IPsec 预共享密钥
这是连接客户端的关键,请务必记住这个密钥。
- 再次打开“路由和远程访问”控制台 (
rrasmgmt.msc)。 - 在左侧,右键点击你的服务器,选择“属性”。
- 切换到“安全”选项卡。
- 在“IPsec”部分,点击“预共享密钥”输入框,输入你想要的任意复杂密码(
MyL2TP-Secret-Key-2025!)。 - 点击“确定”保存。
第四步:配置 Windows Defender 防火墙
- 按
Win + S搜索“Windows Defender 防火墙”并打开。 - 点击左侧的“允许应用或功能通过 Windows Defender 防火墙”。
- 点击“更改设置”(需要管理员权限)。
- 找到并勾选“路由和远程访问”,如果找不到,可以点击“允许其他应用...”,然后浏览到
C:\Windows\System32\svchost.exe并添加它。 - 确保在“专用”和“公用”列的复选框都被勾选,然后点击“确定”。
- (可选但推荐)为了确保 IPsec 协议能正常工作,最好在防火墙中直接开放端口:
- 返回防火墙主页,点击“高级设置”。
- 在左侧选择“入站规则”。
- 在右侧点击“新建规则...”。
- 规则类型: 选择“端口”,点击“下一步”。
- 协议和端口: 选择“UDP”,在“特定本地端口”中输入
500,1701,点击“下一步”。 - 操作: 选择“允许连接”,点击“下一步”。
- 配置文件: 勾选“域”、“专用”、“公用”(根据你的网络环境选择,通常全选),点击“下一步”。
- 名称: 给规则起个名字,L2TP VPN Ports”,点击“完成”。
第五步:为 VPN 客户端分配 IP 地址
服务器需要一个 IP 地址池来分配给连接的 VPN 客户端,这个池不能与你局域网现有的 IP 地址段冲突。
- 在“路由和远程访问”控制台中,展开“IP 路由” -> “常规”。
- 右键点击“NAT/基本防火墙”,选择“属性”。
- 切换到“IP” 选项卡。
- 勾选“使用 DHCP 自动分配 IP 地址”。
- 推荐做法: 如果你的服务器能 DHCP 服务器通信,这是最简单的。
- 静态地址池: 如果勾选了此项,你需要点击“添加”,输入一个不与内网冲突的 IP 地址范围,如果你的内网是
168.1.0/24,你可以设置168.50.1到168.50.100。
- 点击“确定”保存。
客户端连接配置 (以 Windows 11 为例)
- 打开“设置” -> “网络和 Internet” -> “VPN”。
- 点击“添加 VPN”。
- VPN 提供商: 选择“Windows (内置)”。
- 连接名称: 给这个连接起个名字,“My Home L2TP”。
- 服务器名称或地址: 输入你的服务器公网 IP 地址或动态 DNS 域名(
45.67.89或myhome.ddns.net)。 - VPN 类型: 选择“L2TP/IPsec with pre-shared key”。
- 预共享密钥: 精确输入你在服务器上设置的密钥(注意大小写和空格)。
- 点击“保存”。
- 在 VPN 列表中,选择你刚刚创建的连接,点击“连接”。
- 输入你的Windows 用户名和密码(即登录服务器的账户和密码),然后点击“确定”。
如果一切配置正确,你的设备就会成功连接到 VPN 服务器,所有网络流量都将通过服务器进行加密传输。

常见问题排查
- 错误 789: “L2TP 与 IPsec 服务器之间的安全协商失败”。
- 最常见原因: 服务器和客户端的“预共享密钥”不匹配,请仔细检查,确保两边完全一致。
- 其他原因: 防火墙没有正确放行 UDP 500 和 1701 端口;服务器或客户端的 IPsec 策略有问题。
- 无法连接到服务器:
- 检查服务器公网 IP 是否正确。
- 如果服务器在路由器后,检查端口转发是否配置正确(500 和 1701 端口都转发到服务器的内网 IP)。
- 检查服务器 Windows 防火墙和第三方杀毒软件是否阻止了连接。
- 连接成功但无法上网:
- 检查服务器是否启用了“IP 路由”功能,在“路由和远程访问”属性中,切换到“IP”选项卡,勾选“IP 路由器”。
- 检查 VPN 客户端是否正确获取了 VPN 服务器分配的 IP 地址。
- 检查服务器的默认网关设置,确保它能正确转发流量到互联网。
通过以上步骤,你应该就能成功搭建一个属于自己的 L2TP VPN 服务器了。
