Windows Server 2012 内置了“路由和远程访问服务”(Routing and Remote Access Service, RRAS),这是一个功能强大的工具,可以轻松配置成 VPN 服务器,它主要支持两种 VPN 协议:

- SSTP (Secure Socket Tunneling Protocol):通过 HTTPS (443端口) 隧道传输,能完美穿透大多数防火墙和代理服务器,兼容性最好,是目前最推荐的协议。
- L2TP/IPSec (Layer 2 Tunneling Protocol with IPsec):也需要穿过防火墙,但通常需要 UDP 端口 500 (IKE) 和 4500 (NAT-T),比 SSTP 稍微复杂一点,因为需要配置 IPsec 证书。
本教程将以最常用、最兼容的 SSTP VPN为例进行详细讲解。
第一部分:服务器端配置
步骤 1:安装服务器角色
- 登录服务器:以管理员身份登录你的 Windows Server 2012。
- 打开服务器管理器:点击任务栏上的“服务器管理器”图标。
- 添加角色:在“管理”菜单中,选择“添加角色”。
- 开始向导:在“开始之前”页面,点击“下一步”。
- 选择角色:在角色列表中,勾选 “远程访问”。
- 添加功能:系统会提示你添加必要的功能,直接点击“添加功能”,然后点击“下一步”。
- 远程访问:在“远程访问”功能介绍页面,点击“下一步”。
- 安装:确认选择无误后,点击“安装”,等待安装完成,安装成功后点击“关闭”。
步骤 2:配置 VPN 服务器
安装完成后,服务器管理器会提示你“配置远程访问服务”。
- 启动配置向导:点击“配置远程访问”链接,打开“路由和远程访问安装向导”。
- 选择角色:向导会检测到你已经安装了角色,直接点击“下一步”。
- 选择“VPN”:在“角色服务”页面,选择 “VPN”,然后点击“下一步”。
- 选择连接类型:
- VPN:选择此项,你的服务器将作为 VPN 服务器,客户端通过互联网连接到它。
- NAT:如果你的服务器需要为 VPN 客户端提供上网服务(即所有客户端流量都通过服务器出网),请勾选此选项,如果只是内网互联,可以不勾选。
- 勾选“通过虚拟专用网络连接访问外部网络”,然后点击“下一步”。
- 选择 Internet 接口:向导会检测你的服务器连接到互联网的网络适配器,选择那个公网 IP 所在的网卡(连接到路由器的网卡),然后点击“下一步”。
- IP 地址分配:
- 选择“来自一个指定的地址范围”:这是最推荐的方式,因为它不会占用你内网的 DHCP 地址池。
- 点击“新建”按钮,添加一个 VPN 客户端专用的 IP 地址池。
- 起始 IP 地址:
168.10.100 - 结束 IP 地址:
168.10.200 - (请确保这个地址段与你的服务器内网地址段不同,且未被其他设备使用)
- 起始 IP 地址:
- 点击“确定”,然后点击“下一步”。
- 完成向导:确认配置信息无误,点击“完成”。
- 启动服务:配置完成后,系统会提示你“路由和远程访问”服务已启动,点击“是”。
你的 VPN 服务器基础功能已经配置好了。
步骤 3:配置用户权限
默认情况下,所有用户都没有拨入 VPN 的权限,你需要为特定的用户账户授权。

- 打开“计算机管理”:在“服务器管理器”中,点击“工具” -> “计算机管理”。
- 找到用户:在左侧导航栏中,展开“本地用户和组” -> “用户”。
- 设置属性:找到你希望授予 VPN 权限的用户(
testuser),右键点击它,选择“属性”。 - 拨入权限:切换到“拨入”选项卡。
- 远程访问权限:在“远程访问权限”下,选择“允许访问”,然后点击“确定”。
这个用户就可以用来连接 VPN 了。
步骤 4:配置防火墙(非常重要!)
虽然 RRAS 安装时会自动配置防火墙规则,但最好手动检查一下。
- 打开高级安全 Windows Defender 防火墙:在“服务器管理器”中,点击“工具” -> “高级安全 Windows Defender 防火墙”。
- 入站规则:在左侧,确保你选中了“入站规则”。
- 查找 VPN 规则:在右侧的规则列表中,查找名称包含 “VPN” 或 “Routing and Remote Access” 的规则。
- 应该会有一个名为 “VPN” 的规则,确保它已启用。
- 对于 SSTP,它会允许 TCP 443 端口。
- 对于 L2TP,它会允许 UDP 500 和 UDP 4500 端口。
- 确认启用:如果规则是“已启用”状态,说明防火墙配置正确,如果不是,右键点击规则,选择“启用规则”。
步骤 5:获取并安装 SSL 证书(SSTP 必需)
SSTP 需要 SSL 证书来加密通信,你可以使用自签名证书(仅用于测试)或从公共 CA(如 Let's Encrypt)购买的证书。
这里以创建一个自签名证书为例(仅用于测试和内网环境):
- 打开服务器管理器,点击顶部菜单的“工具” -> “Internet Information Services (IIS) 管理器”。
- 在左侧展开服务器节点。
- 双击“服务器证书”。
- 在右侧操作栏中,点击“创建自签名证书...”。
- 为证书指定友好名称:输入
My SSTP VPN Certificate。 - 选择“个人”存储,然后点击“确定”。
- 将证书分配给 RRAS:
- 再次打开“路由和远程访问”工具(可以在“管理工具”里找到,或在服务器管理器中点击工具)。
- 右键点击你的服务器名称(在左侧树状图中),选择“属性”。
- 切换到“安全”选项卡。
- 点击“服务器证书...”按钮。
- 在下拉菜单中,选择你刚刚创建的自签名证书
My SSTP VPN Certificate。 - 点击“确定”。
至此,服务器端的所有配置都已完成。
第二部分:客户端连接测试
你可以在任何一台 Windows 客户端(如 Windows 10/11)上尝试连接了。
- 打开“设置” -> “网络和 Internet” -> “VPN”。
- 添加 VPN 连接:
- VPN 提供商:选择 "Windows (内置)"。
- 连接名称:随便起一个名字,
My Office VPN。 - 服务器名称或地址:输入你的 VPN 服务器的公网 IP 地址或域名(
0.113.10或vpn.mydomain.com)。 - VPN 类型:选择 "安全套接字隧道协议 (SSTP)"。
- 登录信息:选择“用户名和密码”,然后输入你在服务器上创建并授权的 VPN 用户名和密码。
- 保存:点击“保存”。
- 连接:在 VPN 列表中,点击你刚刚创建的连接,然后点击“连接”,系统会提示你输入密码(如果刚才没输入的话),输入后点击“确定”。
如果一切顺利,几秒钟后就会连接成功,你可以打开浏览器访问一个 IP 地址查询网站,看看你的 IP 地址是否已经变成了服务器的公网 IP。
第三部分:排错与常见问题
-
连接失败,错误 800 或 789:
- 原因:通常是防火墙、路由器或 ISP 阻止了 VPN 所需的端口。
- 解决:
- 确认你的服务器防火墙已放行 443 (SSTP) 或 500/4500 (L2TP) 端口。
- 确认你的路由器上做了端口转发,将外网的 443 端口转发到服务器的内网 IP 地址的 443 端口。
- 联系你的 ISP,确认他们没有阻止这些端口。
-
连接失败,错误 691:
- 原因:用户名或密码错误,或者该用户没有被授予“远程访问权限”。
- 解决:仔细核对用户名密码,并返回服务器端检查该用户的“拨入”属性是否设置为“允许访问”。
-
连接成功,但无法访问内网资源:
- 原因:
- 客户端没有正确获取到 VPN 服务器分配的 IP 地址。
- 服务器端的“路由和远程访问”属性中,没有勾选“IPv4 路跃”或“IPv6 路跃”。
- 客户端的 VPN 网关设置不正确。
- 解决:
- 在服务器 RRAS 属性中,切换到“IPv4”或“IPv6”选项卡,确保勾选了“静态路跃”或“动态路跃”。
- 在客户端 VPN 连接属性中,切换到“网络”选项卡,选择 VPN 类型,点击“属性” -> “IPv4” -> “高级”,确保勾选了“在远程网络上使用默认网关”,如果只想访问特定内网资源,不要勾选此项,而是手动添加静态路由。
- 原因:
-
证书问题:
- 原因:如果使用自签名证书,客户端会弹出警告,提示证书不受信任。
- 解决:在客户端,点击“仍然连接”即可(不推荐用于生产环境),在生产环境中,应使用受信任的 CA 颁发的证书。
配置 Windows Server 2012 VPN 服务器的核心步骤可以概括为:
- 安装角色:远程访问。
- 配置向导:选择 VPN,设置 IP 地址池。
- 授权用户:在用户属性中设置“拨入”权限为“允许访问”。
- 防火墙放行:确保 443 (SSTP) 端口开放。
- 配置证书:为 SSTP 准备 SSL 证书。
- 客户端连接:使用服务器公网 IP 和用户凭据进行连接。
希望这份详细的教程能帮助你成功搭建自己的 VPN 服务器!
