Я хочу использовать Windows VPN, но только для конкретной сети, чтобы она не захватила все мое сетевое соединение.
например, вместо того, чтобы VPN стал маршрутом по умолчанию, сделайте его только маршрутом для 192.168.123.0/24
(Я вижу, что в этом вопросе есть решение для Ubuntu , но иногда мне приходится делать это и в Windows)
Можно ли это автоматизировать, чтобы при каждом подключении к VPN это делалось?
windows
networking
vpn
routing
Legooolas
источник
источник
Ответы:
Вы можете отключить захват всего вашего соединения, перейдя к свойствам VPN,
Networking
вкладке,Internet Protocol (TCP/IP)
свойствамAdvanced
, сняв галочкуUse default gateway on remote network
. Это может или не может оставить маршрут в192.168.123.0/24
зависимости от настройки сервера VPN. Если этого не произойдет, вам придется каждый раз вручную добавлять маршрут, хотя вы можете поместить его в командный файл.Чтобы вручную добавить маршрут, запустите (от имени администратора):
В этом примере будет создан постоянный (нет необходимости запускать команду после перезагрузки) маршрут к IP
192.168.0.12
через шлюз VPN10.100.100.254
.Подробнее об этом на http://technet.microsoft.com/en-us/library/bb878117.aspx
источник
Я успешно использовал метод @ TRS-80 для достижения этой цели.
Я работаю из дома и вынужден подключаться к VPN по корпоративной сети для получения моей электронной почты (я ненавижу веб-почту !!).
В то же время мне нужно постоянно искать информацию, а также использовать youtube для моей фоновой музыки ... Теперь вы определенно не хотите транслировать youtube из VPN, так как это звучит как пение роботов !!! :)
Все, что я сделал, это следил за @ TRS-80:
а потом сделал свое:
Все работает без проблем!
источник
Конечно, этот ответ не отражает ваш запрос, но я использую виртуальную машину специально для этой цели. Таким образом, только сеть внутри виртуальной машины ограничена маршрутами.
Вы можете найти некоторые лучшие ответы от других людей, но, по крайней мере, это может дать вам возможность подумать, поскольку это простое решение после создания виртуальной машины.
источник
Я обнаружил, что нужно напрямую указать интерфейс в команде route. Без этого Windows собирается использовать основной интерфейс сетевой карты вместо VPN. В моем случае это выглядит так
обратите внимание на «IF 26».
источник
Используйте командлет Add-VpnConnectionRoute в Windows 8+.
источник
если у вас есть и IPV4, и IPV6, вы должны снять флажок «Использовать шлюз по умолчанию в удаленной сети» в обоих местах, даже если вы используете только IPV4
источник
Если вы используете CMAK и настроите файл маршрутизации, который клиент может загрузить ... Windows загрузит файл маршрутизации и отрегулирует маршруты соответствующим образом. Есть варианты, чтобы удалить маршрут по умолчанию ... и добавить различные статические маршруты и тому подобное. Это известно как разделенный туннель между прочим.
Здесь есть хорошие инструкции: http://blogs.technet.com/b/rrasblog/archive/2007/06/11/split-tunnelling-using-cmak.aspx
источник
Я хочу добавить свое решение в смесь. Он работает на оболочке UNIX на базе Cygwin в Windows 7 или более поздней версии, но также должен работать с MSYS2, Bash-on-Windows [WSL] после сборки 14986 или Busybox для Windows). Необходимо запустить с правами администратора.
Он имеет некоторые настройки и пытается обнаружить некоторые вещи, которые вы явно не установили. Он также устанавливает номер интерфейса (IF) в явном виде, чтобы противостоять некоторым проблемам, которые некоторые пользователи (например, я) имели с другими решениями здесь.
Стоит также отметить, что может потребоваться вручную установить низкую метрику, иначе маршрут по умолчанию будет совпадать до того, как трафик будет предназначен для VPN. Это можно сделать, перейдя в настройку адаптера, где вы открываете пункт меню «… Свойства» для адаптера VPN → вкладка «Сеть» → «Протокол Интернета версии 4 (TCP / IP)» Свойства → «Дополнительно» → и там снимите флажок установите флажок «Автоматическая метрика» (в дополнение к «Использовать шлюз по умолчанию…» ) и установите значение в поле «Метрика интерфейса:» на значение ниже, чем маршрут по умолчанию (см.
ROUTE.EXE -4 print
вывод).источник
Немного старый, но я нашел способ сделать это, используя другую машину. У меня есть ноутбук, на котором я установил VPN-соединение, и там у меня есть FreeProxy с Socks5 ..
Затем я настроил Firefox на своем клиентском компьютере для использования прокси-сервера ноутбука. В результате, если я использую FireFox или все, что настроено для использования этого прокси-сервера Socks5, он будет использовать VPN, в противном случае он использует стандартную маршрутизацию.
источник
Вы можете использовать что-то вроде netcatcher - просто добавьте все маршруты, которые вам нужны, один раз и забудьте об этом. Он будет автоматически добавлять и удалять маршруты при подключении или отключении сеанса VPN. Если ваш IP-адрес VPN получен динамически (DHCP), netcatcher перехватит его и правильно обновит маршруты.
источник
с русского форума: http://forum.ixbt.com/topic.cgi?id=14:43549
сохранить как файл (например: vpn_route.vbs) и после подключения vpn выполнить команду
vpn_route.vbs:
источник
Это невозможно сделать в Windows без использования дополнительных программ, командных файлов или командной строки. Альтернативой является получение виртуальной (или физической) машины, на которой вы можете запустить VPN.
Кажется странным, что что-то так легко объяснимо, как это так трудно достичь. Насколько сложно может быть просто направить трафик от одной программы к интерфейсу VPN, а все остальные программы - к интерфейсу сетевого адаптера по умолчанию? Зачем нам нужно настраивать целую виртуальную машину для этого? А с Linux это возможно, но его решение тоже не очень элегантно.
Это тоже очень востребовано: я наткнулся на десятки тем на эту тему. Поэтому я только надеюсь, что кто-то осознает нелепость этого и что-то с этим сделает. (В Windows 8!)
Это решение взято из неназванного командного файла . Это было немного адаптировано.
Инструкция для Windows 7
Сценарий не будет подключаться к и маршрутизации трафика через VPN до перезагрузки - вы можете заменить
route add
сroute -p add
на изменение сохранится, но если вы не имеете постоянный IP с VPN, он будет в конечном итоге перестанет работать , когда ваши изменения IP VPN.Networking
вкладкуProperties
Advanced
Use default gateway[...]
Вам необходимо заменить следующее в скрипте:
<VPN>
с именем VPN-соединения, которое вы создали<USER>
с именем пользователя VPN<PASS>
с паролем VPN<TARGET>
с IP-адресом, который вы хотите направить через VPN (если вы хотите направить больше адресов, просто продублируйте три строки, где используется цель)Примечание: Если вы не хотите , чтобы сохранить пароль в файле, заменить
<PASS>
с%password%
и добавить следующее после первой строки сценария:set password= Input password:
.скрипт
источник
Краткое руководство для таких нубов, как я, которые мало знают о сетях. Не много нового здесь, но краткое изложение всех хороших вариантов, описанных в предыдущих ответах и в других связанных темах. Вся процедура состоит из 3 основных этапов:
1) Сделайте так, чтобы весь трафик НЕ проходил через VPN. Для этого необходимо снять
Use default gateway on remote network
флажок в настройках VPN. Обязательно снимите этот флажок для IPv4 и IPv6. Обычно я просто полностью отключаю протокол IPv6 для VPN-подключения.(!) (Иногда) возможно, что снятия этого флажка будет достаточно для нормальной работы - по моему опыту, необходимые маршруты (которые будут направлять необходимый трафик через VPN) могут быть добавлены автоматически после установления VPN-соединения. Я не знаю точно, где и как эти правила настроены, но такой сценарий существует - возможно, это какая-то магия, сделанная администраторами сети VPN.
2) Сделать только необходимый трафик, идущий через VPN. Для этого вам нужно определить маршруты. Здесь у вас есть 3 варианта:
2.1) Добавить постоянный маршрут через VPN-шлюз:
route -p add a.b.c.d/<CIDR> w.x.y.z
или жеroute -p add a.b.c.d mask e.f.g.h w.x.y.z
где «VPN-шлюз» = «ваш IP в сети VPN» =
w.x.y.z
и целевой адрес / сеть =a.b.c.d
. Вы можете найтиw.x.y.z
, выполнивipconfig
и найдя имя вашего VPN-соединения, или, если вы используете PowerShell, вы можете получить компактный вывод, выполнивipconfig | grep -A5 PPP
(который будет выводить 5 строк после нахождения каждого PPP-соединения).Минусы: вам придется заново создавать маршруты, если ваш VPN IP изменится.
2.2) Добавить постоянный маршрут через сетевой интерфейс VPN:
route -p add a.b.c.d/<CIDR> 0.0.0.0 IF <interface number>
где
a.b.c.d
целевой адрес / сеть иinterface number
идентификатор вашего VPN-соединения. Этот идентификатор может быть найден путем выполненияnetstat -rn
, или, для более компактного вывода,netstat -rn | grep -A10 'Interface List'
.Плюсы: не нужно ничего менять, если изменится ваш VPN-адрес (
w.x.y.z
).Минусы: необходимо заново создавать маршруты с новым идентификатором, если вы удаляете VPN-соединение.
2.3) Используйте командлет PowerShell:
Add-VpnConnectionRoute -ConnectionName '<VPN connection name>' -DestinationPrefix a.b.c.d/<CIDR>
Плюсы: необходимые маршруты добавляются каждый раз, когда VPN-соединение устанавливается и удаляется каждый раз, когда оно отключается.
Минусы: нет
Get-VpnConnectionRoutes
командлета, поэтому может быть сложно управлять этими правилами.3) Проверьте и убедитесь, что маршрутизация работает как положено!
Если вы добавили постоянные маршруты, вы можете проверить их, выполнив
netstat -rn | grep -A10 'Persistent Routes'
.И, наконец, выполните несколько
tracert
команд для обоих IP-адресов, к которым предполагается доступ через VPN, и для тех, которые должны работать без VPN.источник