Tag Archives: Mimbolovewindows

Пускаем внешний траффик мимо VPN

Written by elwood

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

1. В свойствах адаптера VPN-соединения зайти в IPv4 -> Advanced и снять галочку “Use default gateway on remote network”, в IPv6 тоже. После снятия галочки весь траффик, который раньше шел через VPN – будет идти так, как было без него. После этого нам будет нужно явно добавить маршрут (маршруты), для которых VPN необходим.
vpn-1
2. Определить адрес шлюза VPN-соединения – открыть статус адаптера на вкладке Details. В нашем случае это адрес 172.19.71.70
vpn-2
3. Определить номер интерфейса VPN-соединения командой route print. В нашем случае это номер 42.
vpn-3
4. Определить, какая подсеть (или отдельные адреса) нуждается в том, чтобы быть маршрутизируемой через VPN. Для этого уже не получится просто подсмотреть куда-нибудь, нужно знать, к каким IP-адресам вы подключаетесь. Либо задайте сами (если вы знаете), либо спросите у знающего коллеги. В моём случае это адреса 192.168.*.*, поэтому маска будет 255.255.0.0
5. Записать команду

route -p add 192.168.0.0 mask 255.255.0.0 172.19.71.70 if 42

Параметр -p означает, что добавляемый маршрут будет сохранён (persistent). Параметр if 42 означает, что этот маршрут будет применяться только при поднятом интерфейсе 42 (то бишь при подключенном VPN). Если не указывать if, то маршрут будет работать только до дисконнекта VPN. При дисконнекте Windows увидит, что маршрут неприменим, и уберёт его. И даже после переподключения, несмотря на то, что маршрут создан с параметром -p, он не активизируется. Придётся его удалять и добавлять снова вручную – и так при каждом переподключении. А если указать if, то при отключении от VPN система поймёт, что маршрут не нужно убирать, а нужно только деактивировать его до повторного поднятия интерфейса.

6. Переподключиться к VPN

7. Проверить маршрутизацию до публичных серверов (yandex.ru, например) и до внутренних компьютеров, доступных только в контексте VPN.

tracert yandex.ru
tracert 192.168.1.4

Первый маршрут должен идти так же, как и при отключенном VPN. Второй – через шлюз VPN-подключения.

Разные версии JDK на одной машине

Written by elwood

322px-java_logosvgДля взаимодействия с 32-разрядной COM библиотекой через jni4net понадобилось, чтобы приложение запускалось с помощью 32-разрядной JDK. Скачал, поставил, и напоролся на то, что установленная 32-битная версия 1.7_25 полностью заменила все имеющиеся JDK, закинув exe-файлы java.exe, javaw.exe прямо в Windows\System32. А мне хотелось, чтобы по умолчанию работала 64-разрядная версия. И только в определённых приложениях запуск производился с помощью 32-битной JVM. Нашел следующее решение:

  • Удаляем из System32 три exe файла, появившихся после инсталляции 32-битной JDK
  • Устанавливаем JAVA_HOME на 64-разрядную JDK. В Path прописываем путь к директории bin этой же 64-разрядной JDK. Это будет JDK по умолчанию.
  • В приложениях, которые требуют запуска с использованием недефолтной JDK, прописываем следующие строки в скрипт запуска:

    set JAVA_HOME=путь к JDK
    set PATH=%JAVA_HOME%\bin;%PATH%

Вот и всё! Теперь у нас в приложениях, где этих строк нет, будет запускаться дефолтная версия JVM, а в приложениях, которые мы сконфигурировали явно, будет стартовать именно та версия, которую мы прописали.