Как получить базовый сетевой интерфейс, используемый VPN-подключением в Windows

Самое близкое решение, которое я нашел, — это использование Get-NetConnectionProfile для возврата всех активных интерфейсов, что отлично работает, когда есть только активный физический интерфейс и сама VPN. Однако это не сработает, если на компьютере пользователя есть 2 активных физических интерфейса (например, Wi-Fi + Ethernet) вместе с VPN.

В идеале я хотел бы решение, которое работает аналогично «ifconfig -v» в MacOS, которое сообщает вам эффективный интерфейс для виртуального интерфейса:

2 ответа

К сожалению, кажется, что нет надежного способа получить базовый физический адаптер для VPN с помощью Windows API. Если не считать использования анализатора пакетов, такого как Wireshark, лучшее решение, которое я нашел, включает в себя синтаксический анализ вывода двух команд PowerShell: Get-NetAdapter и Get-NetRoute.

С помощью информации от этих команд я могу узнать, какие интерфейсы являются виртуальными, а какие физическими, и я могу ранжировать физические интерфейсы по трем различным критериям (в случае ничьей мы переходим к следующим критериям):

  1. Сортировка физических интерфейсов по метрике интерфейса + метрике маршрута к шлюзу по умолчанию (0.0.0.0).

  2. Проводные соединения поверх беспроводных (PhysicalMediaType=802.3).

  3. Приоритет более быстрых адаптеров.

С этой логикой все протестированные мной VPN, по-видимому, отражают ожидаемый сетевой интерфейс, хотя некоторые VPN позволяют направлять трафик через определенный физический адаптер, и в этом случае, очевидно, все это выходит из окна.

Первый,

Вы можете установитьили какой-либо другой инструмент мониторинга трафика и захват соответствующих пакетов (фильтрация с использованием протокола или порта openvVPN и т. д.)

Второй,

Насколько мне известно, между виртуальным сетевым интерфейсом и обычным интерфейсом (ethernet, WIFI и т. д.) нет жесткой связи, по крайней мере, в OpenVPN (существуют разные протоколы VPN). Пакеты openVPN будут направляться на удаленный сервер с использованием таблицы маршрутизации вашей ОС.

Таким образом, если ваш Ethernet-интерфейс является вашим основным шлюзом по умолчанию и он отключен, ваша служба VPN сможет восстановиться, поскольку у нее будет маршрут к вашему удаленному адресу VPN-сервера через ваш интерфейс WIFI.

Другие вопросы по тегам