
Ich möchte einen benutzerdefinierten VPN-Client unter Windows 10 implementieren und suche daher nach Beispielen zum Erstellen eines virtuellen Netzwerkadapters, mit dem ich alle IP-Pakete für ein dediziertes Subnetz abrufen kann.
Ich habe mir auch OpenVPN und SoftEther angesehen, aber es sieht so aus, als würde der Quellcode von Visual Studio 2019 nicht mehr unterstützt.
Antwort1
Das WireGuard-Projekt hatWintun, was jetzt die bevorzugte Wahl zu sein scheint, wenn Sie ein typisches Layer-3-VPN (nur mit IPv4/IPv6) erstellen möchten. Es wurde ursprünglich für WireGuard geschrieben, wird jetzt aber auch von OpenVPN verwendet. In der Wintun-README wird VS 2019 ausdrücklich als Build-Anforderung erwähnt und der Quellcode befindet sich vollständig in einer kleinen „wintun.c“-Datei, sodass es als gutes Beispiel funktionieren sollte.
Allerdings rät die Wintun README auch dazu, keine eigene Version zu erstellen, sondern stattdessen dievorgefertigtTreiber und bündeln Sie ihn in das Installationsprogramm Ihrer Anwendung – er verfügt bereits über die erforderliche digitale Signatur, und auf diese Weise vermeiden Sie versehentliche Konflikte mitandereVPN-Apps, die Wintun nutzen. (Benutzer mögen es wirklich nicht, wenn eine neue App vorhandene Apps auf eine Weise beschädigt, deren Behebung Stunden dauert!)
Wenn Sie planen, ein Layer-2-VPN (mit Ethernet) aufzubauen, ist der ältere Treiber, OpenVPNsTAP-Windows (NDIS 6),scheintum auch mit modernen Windows-Plattformen kompatibel zu sein. In der README-Datei wird behauptet, dass der neueste Code erfolgreich auf Windows Server 2016 mit „Microsoft Windows 10 EWDK“ erstellt wird, und im Git-Commit-Protokoll werden VS 2017-bezogene Updates erwähnt. Es sollte nicht viel Aufwand erfordern, es auch für VS 2019 zu aktualisieren.
(Allerdings sollten Sie wahrscheinlich keine eigene Version erstellen, um die Wahrscheinlichkeit von Konflikten mit anderen VPN-Clients zu verringern, die der Benutzer möglicherweise installiert hat.)
Einige andere Projekte bieten auch Forks von TAP-Windows an, wie zum BeispielZeroTier.
Antwort2
Können Sie sich dieses Projekt ansehen?http://www.tinc-vpn.org/download/, dies ist ein Open-Source-Projekt, das unter Windows arbeitet.