Chcę używać Windows VPN, ale tylko dla określonej sieci, aby nie przejmowała całego mojego połączenia sieciowego.
np. Zamiast VPN staje się domyślną trasą, uczyń ją tylko trasą 192.168.123.0/24
(Widzę, że istnieje rozwiązanie tego problemu dla Ubuntu w tym pytaniu , ale czasami muszę to zrobić również w systemie Windows)
Czy można to zautomatyzować, aby za każdym razem, gdy łączę się z VPN, robi to?
windows
networking
vpn
routing
Legooolas
źródło
źródło
Odpowiedzi:
Możesz wyłączyć przejmowanie całego połączenia, przechodząc do właściwości VPN,
Networking
zakładki,Internet Protocol (TCP/IP)
właściwościAdvanced
, odznaczUse default gateway on remote network
. To może, ale nie musi oznaczać trasy, w192.168.123.0/24
zależności od konfiguracji serwera VPN. Jeśli nie, musisz za każdym razem ręcznie dodać trasę, chociaż możesz umieścić ją w pliku wsadowym.Aby ręcznie dodać trasę, uruchom (jako administrator):
Ten przykład spowoduje trwałe (nie jest konieczne uruchomienie polecenia po ponownym uruchomieniu) trasę do adresu IP
192.168.0.12
przez bramę VPN10.100.100.254
.Więcej na ten temat na http://technet.microsoft.com/en-us/library/bb878117.aspx
źródło
Z powodzeniem zastosowałem technikę @ TRS-80 , aby to osiągnąć.
Pracuję z domu i muszę połączyć się z VPN do sieci korporacyjnej, aby otrzymywać pocztę e-mail (nienawidzę poczty internetowej !!).
Jednocześnie muszę ciągle surfować po informacje, a także potrzebuję youtube do mojej muzyki w tle ... Teraz zdecydowanie nie chcesz streamować youtube z VPN, ponieważ to brzmi jak śpiew robota !!! :)
Wszystko, co zrobiłem, to obserwowałem @ TRS-80:
a potem zrobiłem własne:
Wszystko działa bezproblemowo!
źródło
Przyznana ta odpowiedź nie odzwierciedla Twojego żądania, ale używam maszyny wirtualnej specjalnie do tego celu. W ten sposób tylko sieć wewnątrz maszyny wirtualnej jest ograniczona przez trasy.
Możesz znaleźć jakieś lepsze odpowiedzi od innych osób, ale przynajmniej może to dać ci coś do rozważenia, ponieważ jest to łatwe rozwiązanie po utworzeniu maszyny wirtualnej.
źródło
Stwierdziłem, że należy bezpośrednio wskazać interfejs w poleceniu route. Bez tego system Windows użyje głównego interfejsu karty sieciowej zamiast VPN. W moim przypadku to wygląda
zwróć uwagę na „IF 26”.
źródło
Użyj polecenia cmdlet Add-VpnConnectionRoute w systemie Windows 8+.
źródło
jeśli masz zarówno IPV4, jak i IPV6, musisz odznaczyć opcję „Użyj domyślnej bramy w sieci zdalnej” w obu miejscach, nawet jeśli używasz tylko IPV4
źródło
Jeśli użyjesz CMAK i skonfigurujesz plik routingu, który klient może pobrać ... system Windows pobierze plik routingu i odpowiednio dostosuje trasy. Istnieją opcje usunięcia domyślnej trasy ... i dodania różnych tras statycznych itp. Jest to znane jako btw podzielonego tunelu.
Tutaj jest dobry poradnik : http://blogs.technet.com/b/rrasblog/archive/2007/06/11/split-tunnelling-using-cmak.aspx
źródło
Chcę dodać moje rozwiązanie do miksu. Działa na powłoce UNIX zasilanej przez Cygwin w systemie Windows 7 lub nowszym, ale powinien również działać z MSYS2, Bash-on-Windows [WSL] po kompilacji 14986 lub Busybox dla Windows). Musi być uruchamiany z uprawnieniami administratora.
Ma pewne ustawienia i próbuje wykryć niektóre rzeczy, które nie zostały wyraźnie ustawione. Ustawia również jawnie numer interfejsu (IF), aby przeciwdziałać niektórym problemom, jakie niektórzy użytkownicy (jak ja) mieli z innymi rozwiązaniami tutaj.
Warto również zauważyć, że może być konieczne ręczne ustawienie niskiej metryki lub w przeciwnym razie domyślna trasa zostanie dopasowana przed ruchem przeznaczonym dla sieci VPN. W tym celu należy przejść do ustawienia karty, w którym otwiera się pozycję menu „… Właściwości” karty VPN → karta „Sieć” → „Protokół internetowy w wersji 4 (TCP / IP)” Właściwości → „Zaawansowane” → i tam odznaczać „Automatic metryczny” checkbox (oprócz „Użyj domyślnej bramy ...” oczywiście) i ustawić wartość w „Interface metric:” pole do wartości niższej niż domyślnej trasy (patrz
ROUTE.EXE -4 print
wyjście).źródło
Trochę stary, ale znalazłem sposób, aby to zrobić za pomocą innej maszyny. Mam laptopa, na którym konfiguruję połączenie VPN, a tam mam FreeProxy skonfigurowane z Socks5 ..
Następnie skonfigurowałem firefox na moim komputerze klienckim, aby korzystał z serwera proxy laptopa. W rezultacie, jeśli użyję FireFox lub czegokolwiek, co jest skonfigurowane do używania tego proxy Socks5, użyje VPN, w przeciwnym razie użyje standardowego routingu.
źródło
Możesz użyć czegoś takiego jak netcatcher - po prostu dodaj wszystkie potrzebne trasy raz i zapomnij o tym. Automatycznie doda i usunie trasy po połączeniu lub rozłączeniu sesji VPN. Jeśli adres IP VPN jest uzyskiwany dynamicznie (DHCP), łapacz sieci łapie go i odpowiednio aktualizuje trasy.
źródło
z rosyjskiego forum: http://forum.ixbt.com/topic.cgi?id=14:43549
zapisz jako plik (np: vpn_route.vbs) i po podłączeniu VPN wykonaj polecenie
vpn_route.vbs:
źródło
Nie można tego zrobić w systemie Windows bez użycia dodatkowych programów, plików wsadowych lub wiersza polecenia. Alternatywą jest zdobycie wirtualnej (lub fizycznej) maszyny, na której można uruchomić VPN.
Wydaje się dziwne, że coś tak łatwego do wytłumaczenia jest tak trudne do osiągnięcia. Jak trudne może być po prostu przekierowanie ruchu z jednego programu do interfejsu VPN i wszystkich innych programów do domyślnego interfejsu NIC? Dlaczego mielibyśmy do tego konfigurować całą maszynę wirtualną? Z Linuksem jest to możliwe, ale jego rozwiązanie również nie jest zbyt eleganckie.
Jest również bardzo poszukiwany: natknąłem się na dziesiątki wątków na ten sam temat. Mam tylko nadzieję, że ktoś zda sobie sprawę z tego niedorzeczności i coś z tym zrobi. (W Windows 8!)
To rozwiązanie pochodzi z nieprzypisanego pliku wsadowego . Został on lekko dostosowany.
Instrukcje dla systemu Windows 7
Skrypt połączy się i ruchu trasy poprzez VPN aż do restartu - można zastąpić
route add
zroute -p add
do zmiany utrzymują się, ale jeśli nie masz uporczywy IP z sieci VPN, to w końcu przestać działać, gdy zmiany IP VPN.Networking
zakładkęProperties
Advanced
Use default gateway[...]
W skrypcie należy zastąpić następujące elementy:
<VPN>
o nazwie utworzonego połączenia VPN<USER>
z nazwą użytkownika VPN<PASS>
z hasłem VPN<TARGET>
z adresem IP, który chcesz przekierować przez VPN (jeśli chcesz trasować więcej adresów, po prostu zduplikuj trzy linie, w których używany jest cel)Uwaga: Jeśli nie chcesz zapisywać hasła w pliku, należy wymienić
<PASS>
z%password%
i dodaj następujący po pierwszej linii skryptu:set password= Input password:
.Scenariusz
źródło
„Krótki” przewodnik dla noobów takich jak ja, którzy niewiele wiedzą o sieciach. Nie wiele tu nowych, ale podsumowanie wszystkich dobrych opcji opisanych w poprzednich odpowiedziach i innych powiązanych wątkach. Cała procedura składa się z 3 podstawowych kroków:
1) Upewnij się, że cały ruch NIE przechodzi przez VPN. W tym celu należy odznaczyć
Use default gateway on remote network
pole wyboru w ustawieniach VPN. Usuń zaznaczenie tego pola wyboru zarówno dla IPv4, jak i IPv6. Zwykle po prostu całkowicie wyłączam protokół IPv6 dla połączenia VPN.(!) Jest (czasami) możliwe, że odznaczenie tego pola wyboru wystarczy do normalnej pracy - z mojego doświadczenia wynika, że niezbędne trasy (które będą kierowały konieczny ruch przez VPN) można dodawać automatycznie po ustanowieniu połączenia VPN. Nie wiem dokładnie, gdzie i jak te reguły są skonfigurowane, ale taki scenariusz istnieje - prawdopodobnie jest to magia zrobiona przez administratorów sieci VPN.
2) Wykonuj tylko niezbędny ruch, przechodząc przez VPN. W tym celu musisz zdefiniować trasy. Tutaj masz 3 opcje:
2.1) Dodaj stałą trasę przez bramę VPN:
route -p add a.b.c.d/<CIDR> w.x.y.z
lubroute -p add a.b.c.d mask e.f.g.h w.x.y.z
gdzie „brama VPN” = „twój adres IP w sieci VPN” =
w.x.y.z
i adres docelowy / sieć =a.b.c.d
. Możesz znaleźćw.x.y.z
, wykonującipconfig
i szukając nazwy połączenia VPN lub, jeśli używasz PowerShell, możesz uzyskać kompaktowe wyjście, wykonującipconfig | grep -A5 PPP
(co wyprowadzi 5 linii po znalezieniu każdego połączenia PPP).Minusy: będziesz musiał ponownie utworzyć trasy, jeśli zmieni się twój adres IP VPN.
2.2) Dodaj stałą trasę przez interfejs sieci VPN:
route -p add a.b.c.d/<CIDR> 0.0.0.0 IF <interface number>
gdzie
a.b.c.d
jest docelowy adres / sieć iinterface number
jest identyfikatorem twojego połączenia VPN. Identyfikator ten można znaleźć poprzez wykonanienetstat -rn
, lub dla bardziej zwartej wyjściunetstat -rn | grep -A10 'Interface List'
.Plusy: nie musisz nic zmieniać, jeśli zmieni się Twój adres VPN (
w.x.y.z
).Minusy: musisz ponownie utworzyć trasy z nowym identyfikatorem, jeśli usuniesz połączenie VPN.
2.3) Użyj polecenia cmdlet programu PowerShell:
Add-VpnConnectionRoute -ConnectionName '<VPN connection name>' -DestinationPrefix a.b.c.d/<CIDR>
Plusy: niezbędne trasy są dodawane za każdym razem, gdy połączenie VPN jest ustanawiane i usuwane za każdym razem, gdy jest rozłączane.
Minusy: nie ma polecenia
Get-VpnConnectionRoutes
cmdlet, więc zarządzanie tymi regułami może być trudne.3) Sprawdź i upewnij się, że routing działa zgodnie z oczekiwaniami!
Jeśli dodałeś trwałe trasy, możesz je sprawdzić, wykonując
netstat -rn | grep -A10 'Persistent Routes'
.Na koniec uruchom kilka
tracert
poleceń przeciwko obu adresom IP, które mają być dostępne przez VPN, i przeciwko tym, które powinny działać bez VPN.źródło