Создание виртуального сетевого адаптера в Windows для реализации VPN

Создание виртуального сетевого адаптера в Windows для реализации VPN

Я хотел бы реализовать собственный VPN-клиент в Windows 10 и поэтому ищу примеры создания виртуального сетевого адаптера, с помощью которого я смогу перехватывать все IP-пакеты для выделенной подсети.

Я также рассматривал OpenVPN и SoftEther, но, похоже, исходный код больше не поддерживается в Visual Studio 2019.

решение1

Проект WireGuard имеетВинтун, который теперь, похоже, является предпочтительным выбором, если вы хотите построить типичный VPN-сервер уровня 3 (переносящий только IPv4/IPv6). Первоначально он был написан для WireGuard, но теперь также используется OpenVPN. В файле Wintun README конкретно упоминается VS 2019 как требование к сборке, а исходный код находится в небольшом файле "wintun.c", поэтому он должен подойти в качестве хорошего примера.

Однако в файле README Wintun вам также рекомендуется вообще не создавать собственную версию, а вместо этого загрузитьпредварительно построенныйдрайвер и вставьте его в установщик вашего приложения – он уже имеет необходимую цифровую подпись, и таким образом вы избежите случайных конфликтов сдругойПриложения VPN, использующие Wintun. (Пользователям очень не нравится, когда новое приложение нарушает работу существующих приложений таким образом, что на исправление этого уходят часы!)


Если вы планируете создать VPN-сеть 2-го уровня (с Ethernet), используйте старый драйвер OpenVPNTAP-Windows (NDIS 6),кажетсядля совместимости с современными платформами Windows. В его файле README утверждается, что последний код успешно собирается на Windows Server 2016 с использованием "Microsoft Windows 10 EWDK", а в журнале коммитов Git есть упоминания об обновлениях, связанных с VS 2017. Обновление для VS 2019 также не должно занять много времени.

(Однако, вам, вероятно, не следует создавать собственную версию, чтобы снизить вероятность конфликтов с другими VPN-клиентами, которые мог установить пользователь.)

Некоторые другие проекты также имеют форки TAP-Windows, такие какНулевой уровень.

решение2

Можете ли вы взглянуть на этот проект?http://www.tinc-vpn.org/download/, это проект с открытым исходным кодом, работающий на Windows.

Связанный контент