Windows 10 vpn настройка маршрутизации

В современных версиях Windows есть интересная возможность автоматического добавления статических маршрутов при активации определённого VPN подключения. Когда VPN подключение разрывается, данный маршрут автоматически удаляется из таблицы маршрутизации Windows. Для добавления IPv4 или IPv6 маршрута для VPN подключения используется PowerShell командлет Add-VpnConnectionRoute.

Вы конечно, можете вручную в командной строке добавлять нужные маршруты для VPN подключения, но главная проблема в том, что такие маршруты очищаются после отключения от VPN. Поэтому при следующем подключении, вам придется опять руками прописывать маршруты.

Допустим, вы хотите, чтобы через ваше VPN подключение маршрутизировались только пакеты для двух подсетей (192.168.111.24/ и 10.1.0.0/16), а весь основной трафик должен идти через вашего провайдера.

Откройте консоль PowerShell и выведите список всех настроенных VPN подключений в Windows:

Get-VpnConnection

Get-VpnConnection вывести список vpn подключений

В первую очередь нужно отключить опцию “Use default gateway in remote network” (Использовать основной шлюз в удаленной сети). Это можно сделать в свойствах VPN подключения в панели управления или командой:

Set-VpnConnection –Name workVPN -SplitTunneling $True

Подробнее про SplitTunneling здесь.

отключить опцию "Использовать основной шлюз в удаленной сети" для VPN подключений

Добавим два статических маршрута для нашего VPN-соединения:

Add-VpnConnectionRoute -ConnectionName "workVPN" -DestinationPrefix 192.168.111.0/24 –PassThru
Add-VpnConnectionRoute -ConnectionName "workVPN" -DestinationPrefix 10.1.0.0/16 –PassThru

В параметре DestinationPrefix нужно указать подсеть, или конкретный IP адрес хоста, трафик к которому нужно маршрутизировать через VPN. Для добавления одного IP адреса используйте формат 10.1.1.26/32.

Add-VpnConnectionRoute добавить статический маршрут для vpn подключения

DestinationPrefix : 192.168.111.0/24
InterfaceIndex :
InterfaceAlias : workVPN
AddressFamily : IPv4
NextHop : 0.0.0.0
Publish : 0
RouteMetric : 1

Если у вас активно VPN подключение, вам нужно переподключиться, чтобы новые маршруты добавились в таблицу маршрутизации.

таблица маршрутизации при активном vpn в windows 10

Новые маршруты привязаны к VPN подключению и добавляются при его запуске. Когда вы отключаетесь от VPN сервера, маршруты автоматически удаляются.

Отключитесь от VPN и проверьте таблицу маршрутизации. Маршрут к вашей удаленной сети удалился автоматически, а Get-NetRoute вернет, что маршрут не найден:

Get-NetRoute : No MSFT_NetRoute objects found with property 'DestinationPrefix' equal to '192.168.111.0/24'. Verify the value of the property and retry. CmdletizationQuery_NotFound_DestinationPrefix,Get-NetRoute

маршут автоматически удаляется после отключения от vpn сервера в windows 10

Вывести список статических маршрутов для подключения:
(Get-VpnConnection -ConnectionName workVPN).Routes

Чтобы полностью удалить статических маршрут для VPN подключения, используйте команду:
Remove-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.111.0/24 -PassThru

Если вам нужно изменить порядок разрешения DNS имен при активном VPN, познакомьтесь со статьей.

В предыдущих версиях Windows (Windows 7/ Server 2008R2) для динамического добавления маршрутов после установления VPN подключений приходилось использовать CMAK и различные скрипты с командами
add route
.

Например, можно создать командный файл vpn_route.netsh для добавления маршрутов.

interface ipv4
add route prefix=192.168.111.24 interface="workVPN" store=active
add route prefix=10.1.0.0/16 interface="workVPN" store=active
exit

Данный файл нужно запускать через задание планировщика, которое срабатывает на событие установки VPN подключения в Event Viewer (RasMan 20225)

schtasks /create /F /TN "Add VPN routes" /TR "netsh -f C:\PS\vpn_route.netsh" /SC ONEVENT /EC Application /RL HIGHEST /MO "*[System[(Level=4 or Level=0) and (EventID=20225)]] and *[EventData[Data='My VPN']]"

Add-VPNConnectionRoute-000.pngВ последнее время значительно вырос интерес к технологиям удаленного доступа для обеспечения работы сотрудников из любого места. Ключевую роль здесь играет VPN, как универсальное и безопасное средство для получения доступа во внутреннюю сеть предприятия. Наиболее привлекательно использовать для этого те протоколы, которые штатно поддерживаются в Windows, что позволяет организовать соединение на любом ПК без установки на него стороннего ПО. Но у данного способа есть одна проблема — добавление маршрутной информации, сегодня мы рассмотрим один из штатных способов, позволяющих легко управлять маршрутами для VPN-соединений.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Стандартные сетевые возможности Windows многим хороши, кроме одного — управление маршрутами для VPN-соединений. Именно это заставляло многих системных администраторов выбирать альтернативные технологии, например, OpenVPN, но это не совсем удобно если речь идет о личных устройствах сотрудников, так как требует установки дополнительного ПО, что, к тому же, не всегда возможно. Кроме того, мы неоднократно сталкивались с ситуациями, когда пользователи удаляли данное ПО, устанавливали конфликтующие приложения, теряли ярлыки для подключения, блокировали его антивирусным ПО и т.д. и т.п.

Подключение средствами ОС в этом плане более привлекательно, так как позволяет снять большую часть указанных выше проблем и подразумевает единообразие пользовательского интерфейса, что позволяет сделать простые и понятные инструкции.

Но вернемся к нашему вопросу. Для добавления маршрутов в удаленную сеть традиционно использовали несколько методов:

  • Статическая маршрутизация — на первый взгляд все просто, что прописали руками — то и работает. Но добавление маршрутов требует привилегий администратора, не всегда возможно заранее прописать маршрут из-за отсутствия интерфейса, при переподключении маршруты могут стать недействительными.
  • Маршрутизация на основе классов — требует тщательного планирования адресного пространства, нет возможности прокинуть дополнительные маршруты, сложно работать с сетями 192.168.х.х.
  • CMAK и различные скрипты — требуют административных привилегий, сложны в настройке, непрозрачны.

В тоже время начиная с Windows 8 существует штатное решение в виде командлета PowerShell, которое позволяет привязать маршруты к VPN-подключению и добавлять их при его запуске, при отключении соединения маршруты будут автоматически удалены.

Запустим консоль PowerShell и прежде всего узнаем имена имеющихся в системе VPN-подключений:

Get-VpnConnection

Результатом работы команды будет информация обо всех коммутируемых подключениях, нас интересует поле Name:

Add-VPNConnectionRoute-001.pngТеперь добавим маршрут к удаленной сети для подключения с именем L2TP MT:

Add-VpnConnectionRoute -ConnectionName "L2TP MT" -DestinationPrefix 192.168.111.0/24 -PassThru

где в параметр ConnectionName содержит имя подключения, взятое в кавычки, а DestinationPrefix — необходимую сеть назначения или узел.

Add-VPNConnectionRoute-002.pngТеперь проверим как это все работает. Проверим таблицу маршрутизации при отключенном VPN-подключении и убедимся, что маршруты в удаленную сеть отсутствуют:

Add-VPNConnectionRoute-003.pngТеперь подключимся к VPN-серверу и снова проверим таблицу маршрутизации — в ней появится указанный нами маршрут к удаленной сети:

Add-VPNConnectionRoute-004.pngЕсли нужно добавить несколько маршрутов — выполняем команду несколько раз. При этом можно добавлять маршруты не только к удаленной сети, но и к определенному узлу, что в ряде случаев более предпочтительно по соображениям безопасности, например:

Add-VpnConnectionRoute -ConnectionName "L2TP MT" -DestinationPrefix 192.168.111.101/32 -PassThru

Данная команда добавит маршрут к узлу 192.168.111.101, к другим узлам удаленной сети доступа у VPN-пользователя не будет.

Чтобы удалить маршрут следует воспользоваться командой Remove-VPNConnectionRoute, синтаксис которой полностью повторяет команду добавления маршрута:

Remove-VpnConnectionRoute -ConnectionName "L2TP MT" -DestinationPrefix 192.168.111.0/24 -PassThru

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

Важно! Данные возможности не поддерживаются в Windows 7.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

В современных версиях Windows есть интересная возможность автоматического добавления статических маршрутов при активации определённого VPN подключения. Когда VPN подключение разрывается, данный маршрут автоматически удаляется из таблицы маршрутизации Windows. Для добавления IPv4 или IPv6 маршрута для VPN подключения используется PowerShell командлет Add-VpnConnectionRoute.

Вы конечно, можете вручную в командной строке добавлять нужные маршруты для VPN подключения, но главная проблема в том, что такие маршруты очищаются после отключения от VPN. Поэтому при следующем подключении, вам придется опять руками прописывать маршруты.

Допустим, вы хотите, чтобы через ваше VPN подключение маршрутизировались только пакеты для двух подсетей (192.168.111.24/ и 10.1.0.0/16), а весь основной трафик должен идти через вашего провайдера.

Откройте консоль PowerShell и выведите список всех настроенных VPN подключений в Windows:

Get-VpnConnection

Get-VpnConnection вывести список vpn подключений

В первую очередь нужно отключить опцию “Use default gateway in remote network” (Использовать основной шлюз в удаленной сети). Это можно сделать в свойствах VPN подключения в панели управления или командой:

Set-VpnConnection –Name workVPN -SplitTunneling $True

Подробнее про SplitTunneling здесь.

отключить опцию "Использовать основной шлюз в удаленной сети" для VPN подключений

Добавим два статических маршрута для нашего VPN-соединения:

Add-VpnConnectionRoute -ConnectionName "workVPN" -DestinationPrefix 192.168.111.0/24 –PassThru
Add-VpnConnectionRoute -ConnectionName "workVPN" -DestinationPrefix 10.1.0.0/16 –PassThru

В параметре DestinationPrefix нужно указать подсеть, или конкретный IP адрес хоста, трафик к которому нужно маршрутизировать через VPN. Для добавления одного IP адреса используйте формат 10.1.1.26/32.

Add-VpnConnectionRoute добавить статический маршрут для vpn подключения

DestinationPrefix : 192.168.111.0/24
InterfaceIndex :
InterfaceAlias : workVPN
AddressFamily : IPv4
NextHop : 0.0.0.0
Publish : 0
RouteMetric : 1

Если у вас активно VPN подключение, вам нужно переподключиться, чтобы новые маршруты добавились в таблицу маршрутизации.

таблица маршрутизации при активном vpn в windows 10

Новые маршруты привязаны к VPN подключению и добавляются при его запуске. Когда вы отключаетесь от VPN сервера, маршруты автоматически удаляются.

Отключитесь от VPN и проверьте таблицу маршрутизации. Маршрут к вашей удаленной сети удалился автоматически, а Get-NetRoute вернет, что маршрут не найден:

Get-NetRoute : No MSFT_NetRoute objects found with property 'DestinationPrefix' equal to '192.168.111.0/24'. Verify the value of the property and retry. CmdletizationQuery_NotFound_DestinationPrefix,Get-NetRoute

маршут автоматически удаляется после отключения от vpn сервера в windows 10

Вывести список статических маршрутов для подключения:
(Get-VpnConnection -ConnectionName workVPN).Routes

Чтобы полностью удалить статических маршрут для VPN подключения, используйте команду:
Remove-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.111.0/24 -PassThru

Если вам нужно изменить порядок разрешения DNS имен при активном VPN, познакомьтесь со статьей.

В предыдущих версиях Windows (Windows 7/ Server 2008R2) для динамического добавления маршрутов после установления VPN подключений приходилось использовать CMAK и различные скрипты с командами
add route
.

Например, можно создать командный файл vpn_route.netsh для добавления маршрутов.

interface ipv4
add route prefix=192.168.111.24 interface="workVPN" store=active
add route prefix=10.1.0.0/16 interface="workVPN" store=active
exit

Данный файл нужно запускать через задание планировщика, которое срабатывает на событие установки VPN подключения в Event Viewer (RasMan 20225)

schtasks /create /F /TN "Add VPN routes" /TR "netsh -f C:PSvpn_route.netsh" /SC ONEVENT /EC Application /RL HIGHEST /MO "*[System[(Level=4 or Level=0) and (EventID=20225)]] and *[EventData[Data='My VPN']]"

Add-VPNConnectionRoute-000.pngВ последнее время значительно вырос интерес к технологиям удаленного доступа для обеспечения работы сотрудников из любого места. Ключевую роль здесь играет VPN, как универсальное и безопасное средство для получения доступа во внутреннюю сеть предприятия. Наиболее привлекательно использовать для этого те протоколы, которые штатно поддерживаются в Windows, что позволяет организовать соединение на любом ПК без установки на него стороннего ПО. Но у данного способа есть одна проблема — добавление маршрутной информации, сегодня мы рассмотрим один из штатных способов, позволяющих легко управлять маршрутами для VPN-соединений.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Стандартные сетевые возможности Windows многим хороши, кроме одного — управление маршрутами для VPN-соединений. Именно это заставляло многих системных администраторов выбирать альтернативные технологии, например, OpenVPN, но это не совсем удобно если речь идет о личных устройствах сотрудников, так как требует установки дополнительного ПО, что, к тому же, не всегда возможно. Кроме того, мы неоднократно сталкивались с ситуациями, когда пользователи удаляли данное ПО, устанавливали конфликтующие приложения, теряли ярлыки для подключения, блокировали его антивирусным ПО и т.д. и т.п.

Подключение средствами ОС в этом плане более привлекательно, так как позволяет снять большую часть указанных выше проблем и подразумевает единообразие пользовательского интерфейса, что позволяет сделать простые и понятные инструкции.

Но вернемся к нашему вопросу. Для добавления маршрутов в удаленную сеть традиционно использовали несколько методов:

  • Статическая маршрутизация — на первый взгляд все просто, что прописали руками — то и работает. Но добавление маршрутов требует привилегий администратора, не всегда возможно заранее прописать маршрут из-за отсутствия интерфейса, при переподключении маршруты могут стать недействительными.
  • Маршрутизация на основе классов — требует тщательного планирования адресного пространства, нет возможности прокинуть дополнительные маршруты, сложно работать с сетями 192.168.х.х.
  • CMAK и различные скрипты — требуют административных привилегий, сложны в настройке, непрозрачны.

В тоже время начиная с Windows 8 существует штатное решение в виде командлета PowerShell, которое позволяет привязать маршруты к VPN-подключению и добавлять их при его запуске, при отключении соединения маршруты будут автоматически удалены.

Запустим консоль PowerShell и прежде всего узнаем имена имеющихся в системе VPN-подключений:

Get-VpnConnection

Результатом работы команды будет информация обо всех коммутируемых подключениях, нас интересует поле Name:

Add-VPNConnectionRoute-001.pngТеперь добавим маршрут к удаленной сети для подключения с именем L2TP MT:

Add-VpnConnectionRoute -ConnectionName "L2TP MT" -DestinationPrefix 192.168.111.0/24 -PassThru

где в параметр ConnectionName содержит имя подключения, взятое в кавычки, а DestinationPrefix — необходимую сеть назначения или узел.

Add-VPNConnectionRoute-002.pngТеперь проверим как это все работает. Проверим таблицу маршрутизации при отключенном VPN-подключении и убедимся, что маршруты в удаленную сеть отсутствуют:

Add-VPNConnectionRoute-003.pngТеперь подключимся к VPN-серверу и снова проверим таблицу маршрутизации — в ней появится указанный нами маршрут к удаленной сети:

Add-VPNConnectionRoute-004.pngЕсли нужно добавить несколько маршрутов — выполняем команду несколько раз. При этом можно добавлять маршруты не только к удаленной сети, но и к определенному узлу, что в ряде случаев более предпочтительно по соображениям безопасности, например:

Add-VpnConnectionRoute -ConnectionName "L2TP MT" -DestinationPrefix 192.168.111.101/32 -PassThru

Данная команда добавит маршрут к узлу 192.168.111.101, к другим узлам удаленной сети доступа у VPN-пользователя не будет.

Чтобы удалить маршрут следует воспользоваться командой Remove-VPNConnectionRoute, синтаксис которой полностью повторяет команду добавления маршрута:

Remove-VpnConnectionRoute -ConnectionName "L2TP MT" -DestinationPrefix 192.168.111.0/24 -PassThru

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

Важно! Данные возможности не поддерживаются в Windows 7.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Содержание

  1. Как прописать статический маршрут в Windows 10
  2. Записки IT специалиста
  3. Автоматическое добавление маршрутов для VPN-соединения в Windows
  4. Дополнительные материалы:
  5. Настройка VPN в Windows, изменение параметров маршрутизации
  6. Автоматическое добавление статических маршрутов после подключения к VPN

У некоторых Интернет-провайдеров иногда возникает необходимость дополнительно прописать статический маршрут. Например, для работы файлообменных сетей DC++ и torrent. Если Вы подключены через роутер, то все настройки маршрутизации делаются на нём, а на компьютере ничего дополнительно указывать не нужно.

А вот если кабель провайдера подключен напрямую в компьютер или через модем в режиме «мост»(Bridge), тогда может возникнуть необходимость прописать статический маршрут, добавив его в таблицу маршрутизации Windows. Чтобы это сделать, Вы должны запустить командную строку с правами Администратора. Для этого надо нажать кнопку «Пуск» и выбрать пункт меню «Программы» -> «Стандартные» -> «Командная строка», либо нажать комбинацию клавиш Win+R и ввести команду «cmd».

В открывшемся черном окне консоли нужно прописать маршруты используя команду route.

Параметры команды:
-f Очистка таблиц маршрутов от записей всех шлюзов. При указании одной из команд таблицы очищаются до выполнения команды.
-p При использовании с командой ADD задает сохранение маршрута при перезагрузке системы. По умолчанию маршруты не сохраняются при перезагрузке. Пропускается для остальных команд, изменяющих соответствующие постоянные маршруты.
-4 Обязательное использование протокола IPv4.
-6 Обязательное использование протокола IPv6.
Одна из следующих команд:
PRINT Печать маршрута
ADD Добавление маршрута
DELETE Удаление маршрута
CHANGE Изменение существующего маршрута
destination Адресуемый узел.
MASK Указывает, что следующий параметр интерпретируется как маска сети.
netmask Значение маски подсети для записи данного маршрута. Если этот параметр не задан, по умолчанию используется значение 255.255.255.255.
gateway Шлюз.
interface Номер интерфейса для указанного маршрута.
METRIC Определение метрики, т.е. цены для адресуемого узла.

Для примера рассмотрим три основных подсети, используемые как локальные:

192.168.0.0/16
10.0.0.0/8
172.16.0.0/16

Соответственно, Вам надо будет прописать 3 вот такие строки:

route -p add 192.168.0.0 mask 255.255.0.0
route -p add 10.0.0.0 mask 255.0.0.0
route -p add 172.16.0.0 mask 255.240.0.0

Например, Ваш шлюз 192.168.50.1, тогда команды будут выглядеть так:

route -p add 192.168.0.0 mask 255.255.0.0 192.168.50.1
route -p add 10.0.0.0 mask 255.0.0.0 192.168.50.1
route -p add 172.16.0.0 mask 255.240.0.0 192.168.50.1

Если возникнет необходимость удалить статические маршруты — просто введите следующие команды:

route delete 192.168.0.0
route delete 10.0.0.0
route delete 172.16.0.0

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Автоматическое добавление маршрутов для VPN-соединения в Windows

Автоматическое добавление маршрутов для VPN-соединения в Windows

В последнее время значительно вырос интерес к технологиям удаленного доступа для обеспечения работы сотрудников из любого места. Ключевую роль здесь играет VPN, как универсальное и безопасное средство для получения доступа во внутреннюю сеть предприятия. Наиболее привлекательно использовать для этого те протоколы, которые штатно поддерживаются в Windows, что позволяет организовать соединение на любом ПК без установки на него стороннего ПО. Но у данного способа есть одна проблема — добавление маршрутной информации, сегодня мы рассмотрим один из штатных способов, позволяющих легко управлять маршрутами для VPN-соединений.

Стандартные сетевые возможности Windows многим хороши, кроме одного — управление маршрутами для VPN-соединений. Именно это заставляло многих системных администраторов выбирать альтернативные технологии, например, OpenVPN, но это не совсем удобно если речь идет о личных устройствах сотрудников, так как требует установки дополнительного ПО, что, к тому же, не всегда возможно. Кроме того, мы неоднократно сталкивались с ситуациями, когда пользователи удаляли данное ПО, устанавливали конфликтующие приложения, теряли ярлыки для подключения, блокировали его антивирусным ПО и т.д. и т.п.

Подключение средствами ОС в этом плане более привлекательно, так как позволяет снять большую часть указанных выше проблем и подразумевает единообразие пользовательского интерфейса, что позволяет сделать простые и понятные инструкции.

Но вернемся к нашему вопросу. Для добавления маршрутов в удаленную сеть традиционно использовали несколько методов:

  • Статическая маршрутизация — на первый взгляд все просто, что прописали руками — то и работает. Но добавление маршрутов требует привилегий администратора, не всегда возможно заранее прописать маршрут из-за отсутствия интерфейса, при переподключении маршруты могут стать недействительными.
  • Маршрутизация на основе классов — требует тщательного планирования адресного пространства, нет возможности прокинуть дополнительные маршруты, сложно работать с сетями 192.168.х.х.
  • CMAK и различные скрипты — требуют административных привилегий, сложны в настройке, непрозрачны.

В тоже время начиная с Windows 8 существует штатное решение в виде командлета PowerShell, которое позволяет привязать маршруты к VPN-подключению и добавлять их при его запуске, при отключении соединения маршруты будут автоматически удалены.

Запустим консоль PowerShell и прежде всего узнаем имена имеющихся в системе VPN-подключений:

Результатом работы команды будет информация обо всех коммутируемых подключениях, нас интересует поле Name:

Теперь добавим маршрут к удаленной сети для подключения с именем L2TP MT:

где в параметр ConnectionName содержит имя подключения, взятое в кавычки, а DestinationPrefix — необходимую сеть назначения или узел.

Теперь проверим как это все работает. Проверим таблицу маршрутизации при отключенном VPN-подключении и убедимся, что маршруты в удаленную сеть отсутствуют:

Теперь подключимся к VPN-серверу и снова проверим таблицу маршрутизации — в ней появится указанный нами маршрут к удаленной сети:

Если нужно добавить несколько маршрутов — выполняем команду несколько раз. При этом можно добавлять маршруты не только к удаленной сети, но и к определенному узлу, что в ряде случаев более предпочтительно по соображениям безопасности, например:

Данная команда добавит маршрут к узлу 192.168.111.101, к другим узлам удаленной сети доступа у VPN-пользователя не будет.

Чтобы удалить маршрут следует воспользоваться командой Remove-VPNConnectionRoute, синтаксис которой полностью повторяет команду добавления маршрута:

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

Важно! Данные возможности не поддерживаются в Windows 7.

Дополнительные материалы:

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Или подпишись на наш Телеграм-канал:

Настройка VPN в Windows, изменение параметров маршрутизации

Часто бывает, когда нам требуется VPN соединение с рабочей сетью из дома. Для начала нам требуется создать этот самый VPN, конечно при условии, что есть сервер, к которому мы будем подключаться, а так же логин и пароль для авторизации. После того как мы создаём соединение в WINDOWS, подключаемся, кроме доступа к сети мы ещё и получаем интернет, который так же работает через рабочую сеть. А это по разным причинам может быть не всегда удобно, низкая скорость каналов, большие задержки ping, есть ограничения на доступ к ресурсам и т.д.

В этой статье коротко о том, как создать подключение к VPN. А так же как настроить маршрутизацию для туннеля, созданного стандартными средствами windows (7/8/10/2012/2016), так, что бы через него шёл только тот трафик, который нам необходим.

1. Создание подключения.
1.1 Переходим в центр управления сетями и общим доступом. (нажать на значок сети правой кнопкой мыши)

1.2 Выбираем «Создание и настройка нового подключения или сети»

1.3 Выбираем «Подключение к рабочему месту»

1.4 Выбираем «Использовать мое подключение к интернету»

1.5 Указываем IP адрес или доменное имя вашего сервера. Вводим название нашего подключения

1.6 Далее (для win 8/10) нажимаем на панели задач на значок сети, выбираем подключение, нажимаем на него левой кнопкой мыши

1.7 Находим подключение с нашим названием, нажимаем левой кнопкой мыши, нажимаем кнопку подключиться.

1.8 Вводим логин и пароль.

После этого подключение должно работать.

Но что же делать, если нам надо пустить через VPN только какую-то часть трафика, например для определённых сетей?

2. Настройка маршрутизации для VPN подключения

2.1 Заходим снова в центр управления сетями и общим доступом. (нажать на значок сети правой кнопкой мыши)

2.2 Выбираем раздел «Изменение параметров адаптера»

2.3 Находим наше VPN подключение, нажимаем правой кнопкой мыши и выбираем пункт «Свойства»

2.4 Переходим на вкладку «Сеть» и нажимаем кнопку «Свойства»

2.5 Находим кнопку «Дополнительно»

2.6 На вкладке «Параметры IP» убираем галочку «Использовать основной шлюз удалённой сети»

Закрываем все окна, нажимая кнопку «ОК», пока не дойдём до окошка с вашим VPN. Как показано в пункте 1.6 подключаем соединение. Всё, теперь подключение установлено, но в удалённую сеть не будет идти никакой трафик, т.к мы отключили использование шлюза и ничего не добавили в маршрутизацию.

3. Настройка маршрутизации

3.1 Нажимаем снова на Ваше подключение правой кнопкой мыши, выбираем пункт «Подробно», если его нет, то «Состояние». Но тогда придётся сначала подключить Ваше VPN, зайти в состояние, посмотреть адрес шлюза и записать его.

3.2 В разделе «Подробно» смотрим на поле «Адрес сервера», записываем данные.

3.3 Открываем поиск, в панели задач и вводим cmd (командная строка)

3.4 Вводим команду:

route add 192.168.0.0 MASK 255.255.255.0 172.239.0.1

192.168.0.0 — адрес Вашей рабочей сети.
MASK 255.255.255.0 -маска Вашей подсети
172.239.0.1 — шлюз

После введения команды нажимаем Enter.

Автоматическое добавление статических маршрутов после подключения к VPN

В современных версиях Windows есть интересная возможность автоматического добавления статических маршрутов при активации определённого VPN подключения. Когда VPN подключение разрывается, данный маршрут автоматически удаляется из таблицы маршрутизации Windows. Для добавления IPv4 или IPv6 маршрута для VPN подключения используется PowerShell командлет Add-VpnConnectionRoute.

Допустим, вы хотите, чтобы через ваше VPN подключение маршрутизировались только пакеты для двух подсетей (192.168.111.24/ и 10.1.0.0/16), а весь основной трафик должен идти через вашего провайдера.

Откройте консоль PowerShell и выведите список всех настроенных VPN подключений в Windows:

В первую очередь нужно отключить опцию “Use default gateway in remote network” (Использовать основной шлюз в удаленной сети). Это можно сделать в свойствах VPN подключения в панели управления или командой:

Set-VpnConnection –Name workVPN -SplitTunneling $True

Добавим два статических маршрута для нашего VPN-соединения:

Add-VpnConnectionRoute -ConnectionName «workVPN» -DestinationPrefix 192.168.111.0/24 –PassThru
Add-VpnConnectionRoute -ConnectionName «workVPN» -DestinationPrefix 10.1.0.0/16 –PassThru

Если у вас активно VPN подключение, вам нужно переподключиться, чтобы новые маршруты добавились в таблицу маршрутизации.

Новые маршруты привязаны к VPN подключению и добавляются при его запуске. Когда вы отключаетесь от VPN сервера, маршруты автоматически удаляются.

Отключитесь от VPN и проверьте таблицу маршрутизации. Маршрут к вашей удаленной сети удалился автоматически, а Get-NetRoute вернет, что маршрут не найден:

Чтобы полностью удалить статических маршрут для VPN подключения, используйте команду:
Remove-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.111.0/24 -PassThru

В предыдущих версиях Windows (Windows 7/ Server 2008R2) для динамического добавления маршрутов после установления VPN подключений приходилось использовать CMAK и различные скрипты с командами add route .

Например, можно создать командный файл vpn_route.netsh для добавления маршрутов.

interface ipv4
add route prefix=192.168.111.24 interface=»workVPN» store=active
add route prefix=10.1.0.0/16 interface=»workVPN» store=active
exit

Данный файл нужно запускать через задание планировщика, которое срабатывает на событие установки VPN подключения в Event Viewer (RasMan 20225)

Utilize a proficient VPN tool for routing all your network traffic safely

by Vlad Constantinescu

Vlad might have a degree in Animal Husbandry and Livestock Management, but he’s currently rocking anything software related, ranging from testing programs to writing in-depth reviews about them…. read more


Updated on

  • Using a VPN is an excellent way of keeping your online privacy safe if you use it right.
  • VPNs can redirect all your network traffic through a private server, away from prying eyes.
  • Sometimes, your VPN connection might leak sensitive data about you.
  • In this guide, we’re going to show you how to prevent these leaks from ever occurring on your PC.

How to route all traffic through VPN

Using a VPN is an excellent way of protecting your online privacy if it’s done right. It’s effective because the VPN service redirects all your network traffic through a private server, away from prying eyes.

Many casual users turn to VPNs to hide their IP address, spoof their location, or unblock streaming services.

But there are also businesses that use corporate VPNs like Cisco AnyConnect or SonicWall Global VPN Client to secure their networks.

However, in some cases, certain bits of traffic might escape the private tunnel and expose you. We call these incidents leaks.

In this article, we’re going to show you how to prevent these leaks from ever occurring on your PC.

Does VPN redirect all traffic?

Yes, a VPN redirects all your network traffic to its secure tunnel, unless you use split tunneling or a browser with a built-in VPN or VPN extension.

By routing all your Internet traffic through VPN servers, you protect all applications with web access on your computer or mobile device.

At the same time, you can route all traffic through OpenVPN on Windows 10 and connect to your access servers for enhanced privacy.

Similar to the split tunneling tool, it’s possible to route certain traffic through a VPN on Windows 10.

This is useful to redirect Internet traffic for particular cases like reducing high ping in games and keeping other PC services on the local connection.

How to route all traffic through VPN on Windows 10?

1. Using a VPN client’s kill switch

  1. Launch your VPN client (we used PIA in this example since it’s the best in the business)
    pia login
  2. Open its configuration section
  3. Look for the kill switch option
  4. Make sure it’s set to Auto or Always
    use PIA kill switch

It goes without saying that using a reliable VPN such as Private Internet Access can save you a lot of hassle.

You just go to its configuration section as we’ve described in Method #1 and make sure to activate the kill switch feature.

This tool makes sure that all your network traffic goes straight through the private VPN tunnel.

If the VPN connection fails, PIA automatically blocks all traffic, eliminating the risk of accidental leaks. It’s the best VPN with a built-in kill switch.

Private Internet Access

Worried about IP, DNS, or WebRTC leaks? PIA offers a built-in kill switch to quickly fix it.

2. Modifying a VPN connection manually on Windows 10

  1. Go to your Network Connections window
  2. Locate the VPN connection you normally use
  3. Right-click it and select Properties in the menuProperties of VPN Connection
  4. Select the Networking tab in the VPN’s properties window
  5. Choose the Internet Protocol Version 4 (TCP/IPv4)
  6. Click the Properties buttonProperties button IPv4
  7. In the newly-opened window, click the Advanced buttonAdvanced IPv4 settings
  8. Make sure that the Use default gateway on remote network option is checkedDefault gateway remote network setting
  9. Click OK
  10. Restart your PC

3. Using OpenVPN

  1. Locate the OpenVPN configuration file associated with your server (OVPN)
    OpenVPN Connect file tab
  2. Open it in a text editor
  3. Add the following line somewhere in the OVPN file: redirect-gateway def1
  4. Save the file and close it
  5. Restart your OpenVPN server
Read more about this topic

  • How to Manually Set Up a VPN on Windows 11
  • How To Fix VPN Blocking AirPlay [3 Working Solutions]
  • Fix GTA Online Not Working with VPN [5 Tested Methods]

Make sure that your network traffic is routed entirely through VPN

All things considered, there are several ways to ensure that all of your network traffic stays inside your private VPN tunnel. Depending on your setup, you can tackle the issue in various ways.

However, your safest bet would be to pick a reliable VPN service and let it do all the work.

Kill switches are some of the best tools you can use to ensure that all your network traffic is encrypted before getting out in the open.

As a general rule, you should avoid trusting free VPNs like Turbo VPN with your sensitive data.

While they’re a great starting point to get used to VPN technology and see how it changes your Internet experience, a premium VPN is worth it in the long haul.

newsletter icon

Когда мы подключаемся к некой сети по VPN и при этом
нам выдается IP из отдельного пула, который в целевую сеть не входит, то мы
должны вручную прописать маршрут до нужной нам сети. Что-то вроде:

route add -p 192.168.2.0 mask 255.255.255.0 172.16.0.1

И так делать необходимо каждый раз при подключении к этому VPN, что хоть и не сложно, но
необходимость каких-то дополнительных телодвижений жутко бесит. А если у нас
нет прав администратора – выполнить эту команду вообще невозможно. Прописать
один раз статический маршрут тоже не выйдет, т.к. при отключении происходит
уничтожение соответствующего интерфейса, и маршрут хоть и почему-то остается в
списке route print,
но при последующем подключении не работает, пока не прописать его заново.

Справедливости ради, выполнить нижеследующую инструкцию без
прав админа тоже не выйдет, но это хотя бы нужно сделать лишь один раз.

Таким образом, мы хотим, чтобы при подключении к VPN нужный
нам маршрут прописывался автоматически
. Microsoft не перестает удивлять, и такую
казалось бы очевидную-элементарную функцию в свою винду не удосужилась впилить
даже к версии 20H2.

Исполняется наше желание с помощью виндового же планировщика задач, который будет триггериться на события из журнала – собственно, подключения и отключения нужного нам VPN.

Допустим, что мы подключаемся к VPN-серверу, который находится в сети 192.168.2.0/24, а VPN-клиентам выдает адреса из пула 172.16.0.0/16, сам же имея при этом адрес 172.16.0.1. Таким образом, мы видим шлюз 172.16.0.1, но не знаем, что путь до 192.168.2.0/24 лежит через него.

Нужный нам журнал находится тут:

Просмотр событий – Журналы приложений и служб – Microsoft – Windows – NetworkProfile – Выполняется.

В этот журнал попадают подключения и отключения к различным сетям,
что нам и требуется.

Успешное подключение к VPN посредством стандартного rasdial генерирует событие с кодом 10000:

А отключение генерирует событие с кодом 10001:

Это мы и будем ловить. Далее нужно создать два задания в
планировщике – на подключение и отключение, которые будут отличаться всего в двух
местах.

Создаем задачу:

Создаем действие «Запуск программы» и ставим запуск C:\Windows\System32\ROUTE.EXE с параметрами add -p 192.168.2.0 mask 255.255.255.0 172.16.0.1 – получается та же самая команда на создание маршрута.

Обязательно ставим галку «Выполнить с наивысшими правами»,
т.е. от админа.

Триггером же нужно поставить событие из журнала. Создаем:

Выбираем «При событии», «Настраиваемое», «Создать фильтр событий», далее «XML», галка «Изменить запрос вручную» и копипастим туда следующее:

<QueryList>
  <Query Id="0" Path="System">
    <Select Path="Microsoft-Windows-NetworkProfile/Operational">
      *[System[(EventID=10000)]] and *[EventData[(Data[@Name="Name"]="MY-VPN")]]
    </Select>
  </Query>
</QueryList>

Где вместо MY-VPN ставим имя нашего подключения.

В «Условиях» снимаем галки про питание и батарею, а также ставим галку «Запускать только при подключении к следующей сети» и выбираем «Любое подключение». Если выбрать в этом списке что-то другое, то задача выполняться вообще не будет, а при попытке запустить ее вручную выдаст непонятную сраку:

Этот баг
известен микрософту, но делать с ним что-либо они не торопятся, по этой же
причине мы городили вышенаписанный XML, вместо того чтобы сделать простой триггер
по эвенту – в этом случае вытащить имя сети из содержимого эвента нельзя, а из-за
бага выбрать нужную сеть мы тоже не можем.

Задание на создание маршрута готово, теперь создаем задание на его удаление. Оно будет такое же, кроме пары отличий – в параметре команды ROUTE задаем delete 192.168.2.0, а в XML-копипасте ставим EventID=10001.

Теперь
подключаемся к нашему VPN
и делаем route print. Как видим, маршрут появился сам по
себе. Магия!

А теперь
отключаемся и видим, что маршрут пропал.

Спасибо за
внимание.


This entry was posted
on Пятница, 27 ноября, 2020 at 02:04 and is filed under technical.
You can follow any responses to this entry through the RSS 2.0 feed.

You can leave a response, or trackback from your own site.

  • Windows 10 vpn l2tp без ipsec
  • Windows 10 vpn error 809
  • Windows 10 virtualbox virtual machine
  • Windows 10 virtual machine settings
  • Windows 10 vibranium что это