Skip to content

Commit

Permalink
Add del destinationcache
Browse files Browse the repository at this point in the history
  • Loading branch information
diev committed Nov 14, 2018
1 parent 25d1706 commit 8183fa0
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 17 deletions.
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,12 @@
процесс устаканивания всех нововведений)*.

## v1

### 1.0

#### 1.0.3 (2018-11-15): Add del destinationcache
- Проверена работа с названиями VPN с пробелами
- Добавлено игнорирование регистра букв при сравнении
- Добавлена очиска кэша таблицы маршрутизации при удалении
#### 1.0.2 (2018-11-14): Remove pause
- Удален отладочный останов
#### 1.0.1 (2018-11-14): Initial commit
Expand Down
28 changes: 23 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# [Always-VPN](http://diev.github.io/Always-VPN)
# [Always VPN](http://diev.github.io/Always-VPN)

[![Build status](https://ci.appveyor.com/api/projects/status/7wy8kb9ub5mgp25x?svg=true)](https://ci.appveyor.com/project/diev/always-vpn)
[![GitHub Release](https://img.shields.io/github/release/diev/Always-VPN.svg)](https://github.com/diev/Always-VPN/releases/latest)
Expand Down Expand Up @@ -38,8 +38,9 @@ Use VPN or On ne passe pas!
* При разблокировании рабочей станции любым пользователем

удаляет все действующие к этому моменту маршруты по умолчанию (то есть
выход в Интернет) и прописывает маршрут только на *IP* указанного
сервера VPN, а затем, если соединения с ним нет, поднимает его.
выход в Интернет), очищает кэш маршрутов и прописывает едиственный маршрут
только на *IP* указанного сервера VPN, а затем, если соединения с ним нет,
поднимает его.

## Настройка

Expand Down Expand Up @@ -73,6 +74,14 @@ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters\Negotiate
* название соединения (set vpn=*tunnel*)
* адрес сервера (set ip=*IP*).

Если название содержит пробелы, то здесь записывать БЕЗ кавычек - например,
set vpn=*VPN Tunnel IKEv2*. Регистр значения не имеет. Тем не менее,
всегда лучше, если такие названия будут одним английским словом.

Адрес лучше указывать цифрами (как *127.0.0.1*, указанный для примера в
программе), так как DNS может оказаться недоступен при удалении прежнего
шлюза.

Также сохраните себе куда-нибудь на бумажку шлюзы по умолчанию с Ваших
сетевых адаптеров - программа их очистит!

Expand Down Expand Up @@ -107,7 +116,16 @@ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters\Negotiate
переподключения сетей не вернут выход в Интернет без поднятия заданного
VPN! В этом ведь и заключается главная задача этой программы!

## IPv6 (ToDo)
Если шлюз по умолчанию на бумажку не записали, то его можно посмотреть
в правой колонке выдачи команды:

```
netsh int ipv4 show route | find "127.0.0.1/32"
```

где вместо 127.0.0.1 указать *IP* Вашего сервера.

## IPv6

Данный код обрабатывает только IPv4, поскольку и Windows не добавляет
маршрут IPv6 по умолчанию. Это можно сделать командой вида:
Expand All @@ -117,7 +135,7 @@ netsh interface ipv6 add route ::/0 interface=27
```

где 27 - для примера это наш интерфейс IKEv2.
Или патчить strongSwan issue [#817](https://wiki.strongswan.org/issues/817).
Или патчить *strongSwan* issue [#817](https://wiki.strongswan.org/issues/817).

## Лицензионное соглашение

Expand Down
2 changes: 1 addition & 1 deletion docs/_layouts/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ <h2>Downloads</h2>
<table>
<tbody>
<tr>
<td>&copy; 2016-2017</td>
<td>&copy; 2016-{{ 'now' | date: "%Y" }}</td>
{% if about %}
<td> </td>
{% elsif en %}
Expand Down
28 changes: 23 additions & 5 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# [Always-VPN](http://diev.github.io/Always-VPN)
# [Always VPN](http://diev.github.io/Always-VPN)

[![Build status](https://ci.appveyor.com/api/projects/status/7wy8kb9ub5mgp25x?svg=true)](https://ci.appveyor.com/project/diev/always-vpn)
[![GitHub Release](https://img.shields.io/github/release/diev/Always-VPN.svg)](https://github.com/diev/Always-VPN/releases/latest)
Expand Down Expand Up @@ -38,8 +38,9 @@ Use VPN or On ne passe pas!
* При разблокировании рабочей станции любым пользователем

удаляет все действующие к этому моменту маршруты по умолчанию (то есть
выход в Интернет) и прописывает маршрут только на *IP* указанного
сервера VPN, а затем, если соединения с ним нет, поднимает его.
выход в Интернет), очищает кэш маршрутов и прописывает едиственный маршрут
только на *IP* указанного сервера VPN, а затем, если соединения с ним нет,
поднимает его.

## Настройка

Expand Down Expand Up @@ -73,6 +74,14 @@ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters\Negotiate
* название соединения (set vpn=*tunnel*)
* адрес сервера (set ip=*IP*).

Если название содержит пробелы, то здесь записывать БЕЗ кавычек - например,
set vpn=*VPN Tunnel IKEv2*. Регистр значения не имеет. Тем не менее,
всегда лучше, если такие названия будут одним английским словом.

Адрес лучше указывать цифрами (как *127.0.0.1*, указанный для примера в
программе), так как DNS может оказаться недоступен при удалении прежнего
шлюза.

Также сохраните себе куда-нибудь на бумажку шлюзы по умолчанию с Ваших
сетевых адаптеров - программа их очистит!

Expand Down Expand Up @@ -107,7 +116,16 @@ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters\Negotiate
переподключения сетей не вернут выход в Интернет без поднятия заданного
VPN! В этом ведь и заключается главная задача этой программы!

## IPv6 (ToDo)
Если шлюз по умолчанию на бумажку не записали, то его можно посмотреть
в правой колонке выдачи команды:

```
netsh int ipv4 show route | find "127.0.0.1/32"
```

где вместо 127.0.0.1 указать *IP* Вашего сервера.

## IPv6

Данный код обрабатывает только IPv4, поскольку и Windows не добавляет
маршрут IPv6 по умолчанию. Это можно сделать командой вида:
Expand All @@ -117,7 +135,7 @@ netsh interface ipv6 add route ::/0 interface=27
```

где 27 - для примера это наш интерфейс IKEv2.
Или патчить strongSwan issue [#817](https://wiki.strongswan.org/issues/817).
Или патчить *strongSwan* issue [#817](https://wiki.strongswan.org/issues/817).

## Лицензионное соглашение

Expand Down
11 changes: 6 additions & 5 deletions vpn/always_vpn.cmd
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
@echo off
set version=1.0.2
set version=1.0.3
title Always VPN v%version%
color 1B

set vpn=tunnel
set ip=127.0.0.1

for /f "tokens=5,*" %%i in ('netsh int ipv4 show route ^| find "0.0.0.0/0"') do (
if not "%%j" == "%vpn%" (
netsh int ipv4 delete route 0.0.0.0/0 int=%%i
if /i "%%j" neq "%vpn%" (
netsh int ipv4 del route 0.0.0.0/0 int=%%i
netsh int ipv4 del dest int=%%i
netsh int ipv4 add route %ip%/32 int=%%i %%j
))

for /f "tokens=4,* skip=3" %%i in ('netsh int ipv4 show int') do if "%%j" == "%vpn%" goto :eof
for /f "tokens=4,* skip=3" %%i in ('netsh int ipv4 show int') do if /i "%%j" equ "%vpn%" goto :eof

rasdial %vpn%
rasdial "%vpn%"

0 comments on commit 8183fa0

Please sign in to comment.