在 Windows 上创建虚拟网络适配器以实现 VPN

在 Windows 上创建虚拟网络适配器以实现 VPN

我想在 Windows 10 上实现自定义 VPN 客户端,因此我正在寻找如何创建虚拟网络适配器的示例,在该适配器中我可以获取专用子网的所有 IP 数据包。

我也研究了 OpenVPN 和 SoftEther,但看起来 Visual Studio 2019 不再支持源代码。

答案1

WireGuard 项目温顿,如果您要构建典型的第 3 层 VPN(仅承载 IPv4/IPv6),它现在似乎是首选。它最初是为 WireGuard 编写的,但现在也被 OpenVPN 使用。Wintun README 特别提到 VS 2019 作为构建要求,源代码全部在一个小的“wintun.c”文件中,因此它应该可以作为一个很好的例子。

然而,Wintun README 也建议你不要构建自己的版本,而是下载预建驱动程序并将其捆绑到应用程序的安装程序中 - 它已经具有所需的数字签名,这样您就可以避免与其他使用 Wintun 的 VPN 应用。(用户确实不喜欢新应用破坏现有应用,而且需要花费数小时才能修复!)


如果你打算构建第 2 层 VPN(承载以太网),较旧的驱动程序 OpenVPN 的TAP-Windows (NDIS 6)似乎也与现代 Windows 平台兼容。其 README 文件声称最新代码使用“Microsoft Windows 10 EWDK”在 Windows Server 2016 上成功构建,并且 Git 提交日志提到了 VS 2017 相关更新。对于 VS 2019 来说,更新它也应该不费吹灰之力。

(不过,再说一次,您可能不应该构建自己的版本,以减少与用户可能安装的其他 VPN 客户端发生冲突的可能性。)

其他一些项目也带有 TAP-Windows 的分支,例如零层

答案2

你能看看这个项目吗?http://www.tinc-vpn.org/download/,这是一个在 Windows 上运行的开源项目。

相关内容