
我想在 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 應用程式。 (用戶真的不喜歡新應用程式以需要數小時才能修復的方式破壞現有應用程式!)
如果你打算建立一個二層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 上執行的開源專案。