Два vpn соединения одновременно windows 10

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

OpenVPN GUI
Connecting to VPNname has failed
All TAP-Windows adapters on the system are currently in use
TCP/UDP: Socket bind failed on local address [undef]: Address already in use (WSAEADDRINUSE)

несколько подключений в клиенте OpenVPN

При установке OpenVPN в Windows создается только один вертикаль адаптер типа TAP или Wintun. Если вы хотите одновременно подключаться к нескольким OpenVPN серверам, вам нужно создать дополнительные сетевые адаптер WinTAP или WinTUN.

Чтобы исправить эту проблему и разрешить одновременное подключение к двум VPN хостам, нужно добавить еще один виртуальный TAP сетевой адаптер. Каждое VPN подключение при этом будет использовать собственный TAP интерфейс.

Откройте командную строку с правами администратора и перейдите в каталог:

Cd “C:\Program Files\TAP-Windows\bin”

Запустите файл:

addtap.bat

создать новый виртуальный адаптер TAP-Windows для OpenVPN

BAT файл запустит программу tapinstall.exe с параметрами. Данная команда установит в Windows еще один сетевой адаптер c драйвером TAP-Windows Adapter V9. Запустите bat файл столько раз, сколько одновременных OpenVPN подключений вы хотите использовать.

Device node created. Install is complete when drivers are installed...
Updating drivers for tap0901 from C:\Program Files\TAP-Windows\driver\OemVista.inf.
Drivers installed successfully.

После этого в списке сетевых адаптеров Windows появится новое устройство типа TAP-Windows Adapter #2.

Для ручной установки TAP адаптера и драйвера можно использовать команду:

tapinstall.exe install “C:\Program Files\TAP-Windows\driver\OemVista.inf” tap0901

Начиная с версии OpenVPN 2.5 для управления TAP адаптерами в Windows нужно использовать утилиту tapctl.exe, которая заменила команду tapinstall.exe из предыдущих версий.

Чтобы добавить новый TAP адаптер, достаточно выполнить команду:

"c:\Program Files\OpenVPN\bin\tapctl.exe" create

Если нужно создать TUN адаптер, выполните:

"c:\Program Files\OpenVPN\bin\tapctl.exe” create --hwid wintun

создать wintun адаптер с помощью tapctl.exe-create-hwid

WinTun драйвер от разработчиков WireGuard появился в OpenVPN 2.5. Wintun драйвер работает быстрее чем классический OpenVPN драйвер WinTAP.

Вывести список сетевых адаптеров OpenVPN:

tapctl.exe list

{1199219C-C5AD-4722-B195-C80332101710}  OpenVPN Wintun
{E91285C8-728F-4643-9485-114970074AF7}  OpenVPN TAP-Windows
{9C5FB378-505E-4F49-8E04-9E862D14024B}  OpenVPN Wintun2

tapctl -ist список openvpn адаптеров

Вы можете вывести список сетевых TAP адаптеров, доступных клиенту OpenVPN с помощью команды:

“C:\Program Files\OpenVPN\bin\openvpn.exe” --show-adapters

Available TAP-WIN32 / Wintun adapters [name, GUID, driver]:
'OpenVPN Wintun' {1199219C-C5AD-4722-B195-C80332101710} wintun
'OpenVPN TAP-Windows2' {E91285C8-728F-4643-9485-114970074AF7} tap-windows6
'OpenVPN Wintun2' {9C5FB378-505E-4F49-8E04-9E862D14024B} wintun 

openvpn.exe--show-adapters

Чтобы удалить все установленные TAP адаптеры, запустите файл deltapall.bat в этом же каталоге.

Или воспользуйтесь командой:

tapctl.exe delete "OpenVPN TAP-Windows6"

Затем нужно внести изменения в конфигурационный файлы .ovpn ваших клиентских подключений OpenVPN (по умолчанию хранятся в каталоге C:\Program Files\OpenVPN\config). Добавьте в текстовые файлы, следующие параметры:

  • nobind – использовать динамических UDP порт источника для каждой VPN сессии опция nobind в OpenVPN позволяет использовать динамический порт для каждого подключения
  • dev-node ‘OpenVPN TAP-Windows2’ – привязать OpenVPN подключение к конкретному сетевому интерфейсу (указывается имя сетевого адаптера в Window)

При подключении клиент OpenVPN будет привязываться к конкретному интерфейсу. Можно добавить команду подключения к OpenVPN в автозапуск Windows. Дополнительно вы можете назначить статический IP для OpenVPN клиента.

Если не привязать OVPN профили к конкретному сетевому адаптеру, то при попытке создать второе OpenVPN подключении может появится ошибка:

TCP/UDP: Socket bind failed on local address [undef]: Address already in use (WSAEADDRINUSE)

Обратите внимание, что при использовании нескольких OpenVPN подключений сервер должен отправлять вам маршрут к своим подсетям через параметр:

push "route 10.10.10.0 255.255.255.0 10.10.20.1"

Теперь ваш OpenVPN клиент на Windows позволит одновременно запускать два и более активных VPN-подключений. В Linux при подключении к OpenVPN из консоли, множественные подключения доступны по-умолчанию.

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

Зачем?

Давайте разбираться.

На один компьютер вы можете установить сколько угодно VPN-клиентов, но если вы попробуете включить их одновременно или один за другим, порядок не имеет значения, то работать будет только первое соединение, тогда как второе скорее всего просто зависнет. Хотя не исключено, что проблемы начнутся уже после установки второго VPN, например, NordVPN может перестать подключаться к серверам, если вы установите на ПК еще один VPN-клиент, инсталлирующий в систему свою фоновую службу.

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

Перед другими адаптерами TAP-адаптеры имеют приоритет, более того, этот приоритет наивысший в системе, в чём легко можно убедиться, выполнив в запущенной от имени администратора консоли PowerShell команду:

Get-NetIPInterface

И посмотрев значение параметра InterfaceMetrix напротив виртуального VPN-адаптера. Поэтому, когда другая программа-клиент пытается создать второе VPN-подключение, возникает конфликт, в результате которого это второе соединение зависает в статусе «Подключение».

Get-NetIPInterface

Как создать два одновременных VPN-подключения

Обойти это ограничение можно как минимум двумя путями.

Первый способ технически сложен для рядового пользователя, он подразумевает создание и настройку в рамках VPN-сети отдельной подсети с собственным портом и при условии, что в вашей VPN-сети используется протокол OpenVPN.

Второй способ гораздо более прост: используя Oracle VM VirtualBox или другой гипервизор, пользователь создает виртуальную машину с операционной системой и устанавливает на нее второй VPN-клиент, избегая тем самым конфликта ТАР-адаптеров.

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

А вообще, если хорошо разобраться, двойное туннелирование решение довольно сомнительное.

Если речь идет о безопасности, то что мешает отследить второе подключение, если можно отследить первое?

И если вы не доверяете одному VPN-провайдеру, то какие основания у вас доверять другому?

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

Загрузка…

TL;DR В статье описывается самый простой способ настроить VPN-сервер, у которого IP-адрес для подключения VPN-клиентов отличается от IP-адреса, с которого клиенты выходят в интернет.

Используете VPN для защиты приватности в интернете и арендуете для этого свой личный сервер? При этом вы единственный клиент, который подключается к этому серверу во всем мире? Так ли сложно найти ваш реальный IP-адрес, как вам кажется? С вступлением в силу пакета Яровой, это становится намного проще.

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

Модель угроз

Для того, чтобы от чего-то защищаться, нужно четко понимать модель угроз. Мы не будем рассуждать о новых законах, требующих от провайдеров хранить весь трафик клиентов, но совершенно точно можно сказать, что данные о подключениях, т.н. Netflow, хранить достаточно просто, и это давно и успешно делается. То есть факт подключения условного IP-адреса 1.1.1.1 к адресу 2.2.2.2 в определенное время суток записывается.

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

Чтобы повысить уровень приватности при использовании VPN, необходимо разделить точку подключения и точку выхода в интернет на уровне IP. На картинке выше наш пользователь находится за забором под пристальным вниманием Ирины Яровой. Все подключения, проходящие через забор, Ирина строго запоминает. Пользователь, как порядочный гражданин, подключается к адресу good.citizen.vpn, при этом назад он возвращается уже с адреса super.cool.guy.vpn. В итоге для Ирины эти два подключения выглядят не связанными между собой.

Какие бывают двойные VPN

Под названием «двойной» VPN часто понимают разные вещи, но почти всегда это значит разнесенные территориально или на сетевом уровне узлы подключения и выхода в интернет. Иногда это просто маркетинговый трюк VPN-провайдеров, который не значит абсолютно ничего, такие услуги могут называться «тройным» и «четверным» VPN.

Мы разберём самые типовые схемы, которые применяют на практике.

VPN между серверами

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

На всём пути следования трафика минимальный MTU (Maximum transmission unit) остаётся равным значению самого первого тоннеля, и каждый промежуточный сервер имеет доступ к расшифрованному трафику клиента.

VPN через прокси

Тоже достаточно распространённый способ. Часто используется для маскирования VPN-трафика под другой протокол, например в Китае. Такой способ удобнее цепочки из проксей, потому что с помощью VPN легко маршрутизировать весь системный трафик в тоннель. Существуют также инструменты для перехватывания системных вызовов программ и перенаправления их в прокси: ProxyCap, Proxifier, но они менее стабильны, так как иногда пропускают запросы и они уходят мимо прокси или работают некорректно с некоторыми программами.

В этом режиме прокси-сервер не видно в трассировке маршрута.

VPN внутри VPN

Самый параноидальный и медленный способ: все тоннели поднимаются на стороне клиента, при этом каждый внутри другого. Такой способ требует хитрой настройки маршрутов на стороне клиента и запуска всех VPN-клиентов в нужном порядке. Это плохо сказывается на задержках и производительности, зато промежуточные сервера не имеют доступа к открытому трафику клиента. Все накладные расходы по инкапсуляции суммируются, и максимальный размер пакета (MTU), доступный в итоге клиенту, уменьшается в зависимости от числа тоннелей. Промежуточные сервера не видны в трассировке маршрутов.

Настройка VDS

Самый лёгкий способ настроить VPN с разделёнными точками входа и выхода — подключить несколько IP-адресов на один виртуальный сервер. Этот способ позволяет получить максимальную скорость и минимальные задержки, так как по сути трафик терминируется на одном сервере. У нас, в Vdsina.ru вы можете это сделать самостоятельно из панели управления. В то время как IPv4 везде кончаются, мы выдаем дополнительные IP-адреса даже на серверах за 60 рублей!

Разберем поэтапно настройку сервера.

Выбираем сервер

Заказываем VDS с подходящим тарифом, в нужном датацентре. Учитывая нашу задачу, выберем датацентр подальше, в Нидерландах ;)

Подключаем дополнительный IP-адрес

После покупки дополнительного IP-адреса его нужно настроить по инструкции.

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

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

xxx.xxx.38.220 — super.cool.guy.vpn # внешний адрес (точка выхода)
xxx.xxx.39.154 — good.citizen.vpn # адрес подключения (точка входа)

Проверка двух IP

Важно помнить, что тот IP-адрес, который был установлен на сервере изначально, будет точкой выхода, соответственно новый адрес будет точкой входа. Подключимся по SSH к серверу и проверим, какой адрес используется в качестве внешнего.

Для этого проще всего из консоли использовать сервис ifconfig.co. При запросе через curl он возвращает IP-адрес, с которого был сделан запрос.

$ curl ifconfig.co
xxx.xxx.38.220

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

Команды выполняются на клиенте:

ssh -D 9999 root@good.citizen.vpn

# в новом окне
curl -x socks5h://127.0.0.1:9999 ifconfig.co
super.cool.guy.vpn

Первая команда устанавливает SSH-сессию с адресом good.citizen.vpn и одновременно активирует SOCKS-прокси внутри этой сессии, который доступен на локальном порту. Вторая делает обычный HTTP-запрос через этот прокси.

Важно помнить, что в наших примерах для запросов используются выдуманные доменные имена. Они будут отображаться только при PTR-резолве, и полноценный запрос к ним сделать не получится. Поэтому на данном этапе обращаться к серверу нужно через IP-адрес.

Настройка сервера IKEv2

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

Мы же разберем пример настройки сервера с использованием доверенного сертификата от Let’s Encrypt. Это позволяет не устанавливать клиенту посторонние корневые сертификаты, а выдать только логин и пароль.

Подготовка сервера

Мы будем использовать сервер на базе Ubuntu 18.04, но инструкция также подходит для большинства современных дистрибутивов.

Обновляем систему и устанавливаем нужные пакеты

apt update && apt upgrade

apt install certbot strongswan libstrongswan-extra-plugins

Выпуск сертификата

Для выпуска доверенного сертификата вам потребуется направить реальный домен на IP-адрес точки входа. Мы не будем рассматривать этот пункт подробно, так как он выходит за рамки статьи. В качестве примера мы будем использовать вымышленный домен good.citizen.vpn

Если у вас на сервере уже есть есть веб-сервер, используйте подходящий способ выпуска сертификата через certbot или другой клиент для Let’s Encrypt. В данном примере предполагается, что порт HTTP (80) ничем не занят.

certbot certonly --standalone --agree-tos -d good.citizen.vpn

Ответив на вопросы мастера? мы получим подписанный сертификат и ключ

# find /etc/letsencrypt/live/good.citizen.vpn/

/etc/letsencrypt/live/good.citizen.vpn/
/etc/letsencrypt/live/good.citizen.vpn/fullchain.pem
/etc/letsencrypt/live/good.citizen.vpn/README
/etc/letsencrypt/live/good.citizen.vpn/cert.pem
/etc/letsencrypt/live/good.citizen.vpn/privkey.pem
/etc/letsencrypt/live/good.citizen.vpn/chain.pem

Для проверки подлинности IKEv2 сервера используются те же X.509-сертификаты, что и для
HTTPS. Чтобы Strongswan смог использовать эти сертификаты, их нужно скопировать в папку /etc/ipsec.d.

Вот как должны быть расположены сертификаты:

cp /etc/letsencrypt/live/good.citizen.vpn/cert.pem /etc/ipsec.d/certs/
cp /etc/letsencrypt/live/good.citizen.vpn/privkey.pem /etc/ipsec.d/private/
cp /etc/letsencrypt/live/good.citizen.vpn/chain.pem /etc/ipsec.d/cacerts/

Так как сертификаты letsencrypt перевыпускаются часто, делать это вручную неудобно. Поэтому автоматизируем этот процесс с помощью хука для certbot.

Задача скрипта скопировать три файла в нужную папку каждый раз, когда сертификат обновился, и после этого послать команду strongswan перечитать сертификаты.

Создадим файл /etc/letsencrypt/renewal-hooks/deploy/renew-copy.sh и сделаем его исполняемым.

#!/bin/sh

set -e

for domain in $RENEWED_DOMAINS; do
        case $domain in
        good.citizen.vpn)
                daemon_cert_root=/etc/ipsec.d/

                # Make sure the certificate and private key files are
                # never world readable, even just for an instant while
                # we're copying them into daemon_cert_root.
                umask 077

                cp "$RENEWED_LINEAGE/cert.pem" "$daemon_cert_root/certs/"
                cp "$RENEWED_LINEAGE/chain.pem" "$daemon_cert_root/cacerts/"
                cp "$RENEWED_LINEAGE/privkey.pem" "$daemon_cert_root/private/"

                 # Reread certificates
                /usr/sbin/ipsec reload
                /usr/sbin/ipsec purgecerts
                /usr/sbin/ipsec rereadall
                ;;
        esac
done

Теперь после каждого перевыпуска сертификата скрипт будет копировать новые файлы в папки strongswan-а и посылать команду демону перечитать сертификаты.

Настройка Strongswan

Добавим конфиг strongswan /etc/ipsec.conf

config setup

    #  Разрешить несколько подключений с одного аккаунта
    uniqueids=no

    # Increase debug level
    # charondebug = ike 3, cfg 3

conn %default

    # Универсальный набор шифров для большинства платформ
    ike=aes256-sha256-modp1024,aes256-sha256-modp2048

    # Таймауты "мёртвых" подключений
    dpdaction=clear
    dpddelay=35s
    dpdtimeout=2000s

    keyexchange=ikev2
    auto=add
    rekey=no
    reauth=no
    fragmentation=yes
    #compress=yes

    # left - local (server) side
    leftcert=cert.pem # Имя файла сертификата в папке /etc/ipsec.d/certs/
    leftsendcert=always
    # Маршруты отправляемые клиенту
    leftsubnet=0.0.0.0/0

    # right - remote (client) side
    eap_identity=%identity
    # Диапазон внутренних IP-адресов назначаемых VPN-клиентам
    rightsourceip=10.0.1.0/24
    rightdns=8.8.8.8,1.1.1.1

 # Windows and BlackBerry clients usually goes here
conn ikev2-mschapv2
    rightauth=eap-mschapv2

# Apple clients usually goes here
conn ikev2-mschapv2-apple
    rightauth=eap-mschapv2
    leftid=good.citizen.vpn

Логины и пароли VPN-клиентов задаются в файле /etc/ipsec.secrets

В этом файле также нужно указать имя приватного ключа, который мы ранее копировали из папки letsencrypt:

# Имя файла приватного ключа в папке /etc/ipsec.d/private/
: RSA privkey.pem

# Пользователи VPN
# имя : EAP "Пароль"
IrinaYarovaya : EAP "PleaseLoveMe123"
Mizooleena : EAP "IwannaLoveToo3332"

На данном этапе можно перезапустить сервер strongswan и проверить, активировался ли новый конфиг:

$ systemctl restart strongswan

$ ipsec statusall
Virtual IP pools (size/online/offline):
  10.0.1.0/24: 254/0/0
Listening IP addresses:
 xxx.xxx.38.220
Connections:
ikev2-mschapv2:  %any...%any  IKEv2, dpddelay=35s
ikev2-mschapv2:   local:  [CN=good.citizen.vpn] uses public key authentication
ikev2-mschapv2:    cert:  "CN=good.citizen.vpn"
ikev2-mschapv2:   remote: uses EAP_MSCHAPV2 authentication with EAP identity '%any'
ikev2-mschapv2:   child:  0.0.0.0/0 === dynamic TUNNEL, dpdaction=clear
ikev2-mschapv2-apple:  %any...%any  IKEv2, dpddelay=35s
ikev2-mschapv2-apple:   local:  [good.citizen.vpn] uses public key authentication
ikev2-mschapv2-apple:    cert:  "CN=good.citizen.vpn"
ikev2-mschapv2-apple:   remote: uses EAP_MSCHAPV2 authentication with EAP identity '%any'
ikev2-mschapv2-apple:   child:  0.0.0.0/0 === dynamic TUNNEL, dpdaction=clear

Можно видеть, что конфиг успешно активирован и сертификат подключен. На данном этапе уже можно подключаться к VPN-серверу, но он будет без доступа к интернету. Чтобы выпустить клиентов в интернет, нужно включить форвардинг и настроить NAT.

Настройка NAT

Активируем форвардинг пакетов:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

Включаем NAT. Важно иметь в виду, что это просто пример минимальной конфигурации iptables. Настройте остальные правила в зависимости от ваших потребностей.

ethName0 — замените на свое имя интерфейса
10.0.1.0/24 — диапазон IP-адресов который будет выдаваться VPN-клиентам. Мы задавали его в /etc/ipsec.conf
111.111.111.111 — IP-адрес точки выхода, в нашем примере это адрес super.cool.guy.vpn

iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o ethName0 -j SNAT --to-source 111.111.111.111

Отладка

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

В случае проблем с подключением можно смотреть лог в реальном времени:

journalctl -f -u strongswan

Автозапуск при загрузке

Если всё успешно, можно добавить strongswan в автозапуск при загрузке:

systemctl enable strongswan

Сохранение правил iptables

Чтобы сохранить правила iptables после перезагрузки, существует специальный пакет iptables-persistent. Важно помнить, что он сохранит текущий набор правил и добавит его в автозагрузку.

apt install iptables-persistent 

Настройка клиентов

Настройка на стороне клиентов выполняется крайне просто — достаточно сообщить клиенту адрес сервера, логин и пароль. Для macOS и iOS можно создать профили автоконфигурации, которые достаточно будет активировать в два клика.

Настройка Windows

В новых версиях Windows IKEv2 настраивается в простом мастере, который можно вызвать из меню подключения к WiFi.

Windows не устанавливает маршрут по-умолчанию для такого соединения, поэтому установим его вручную. В свойствах VPN подключения заходим в свойства TCP/IPv4 —> дополнительно и устанавливаем галочку «Использовать шлюз в удаленной сети»


кликабельно

Настройка macOS

В macOS поддерживается IKEv2 начиная с версии 10.11 (El Capitan). Создание подключения происходит через меню настроек сети.

image

Добавлем новое подключение. В качестве имени подключения задаем любое произвольное имя.

image

Для проверки подлинности сертификата, нужно указать доменное имя. При этом в поле «Server Address» можно указать IP-адрес сервера, а домен только в «Remote ID», тогда для подключения не будет выполняться DNS-резолв, и оно будет происходить чуть быстрее.

image

Логин и пароль пользователя указываем из файла /etc/ipsec.secrets

image

Настройка iOS

Настройку iOS можно выполнить вручную через мастер, но намного удобнее использовать профиль автоконфигурации mobileconfig.

Ручная настройка по смыслу аналогична десктопной macOS:

Настройки -> VPN -> Добавить конфигурацию VPN

Профиль автоконфигурации для устройств Apple


Профили автоконфигурации .mobileconfig представляют из себя XML-файл с настройками, которые могут настраивать что угодно: от SSL-сертификатов до VPN-подключений.

Пользователю достаточно кликнуть по файлу, и все нужные настройки установятся автоматически.

Пример конфига для подключения к нашему IKEv2-серверу.
Для настройки файла под свою конфигурацию, достаточно отредактировать несколько параметров в этом шаблоне:

AuthName — имя пользователя из файла /etc/ipsec.secrets
AuthPassword — пароль пользователя /etc/ipsec.secrets
RemoteAddress — домен или IP-адрес сервера
RemoteIdentifier — домен, на который выпущен сертификат

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>IKEv2</key>
            <dict>

                <!-- Username and password from ipsec.secrets -->
                <key>AuthName</key>
                <string>IrinaYarovaya</string>
                <key>AuthPassword</key>
                <string>PleaseLoveMe123</string>

                <!-- Hostname or IP address of VPN server.
                 Chosing IP address instead of DNS name can avoid issues with client DNS resolvers and speed up connection process. -->
                <key>RemoteAddress</key>
                <string>123.123.123.123</string>

                <!-- leftid in ipsec.conf -->
                <key>RemoteIdentifier</key>
                <string>good.citizen.vpn</string>

                <key>AuthenticationMethod</key>
                <string>Certificate</string>
                <key>ChildSecurityAssociationParameters</key>
                <dict>

                <!-- in ipsec.conf this proposal is: ike=aes256-sha256-modp2048 -->
                    <key>DiffieHellmanGroup</key>
                    <integer>14</integer>
                    <key>EncryptionAlgorithm</key>
                    <string>AES-256</string>
                    <key>IntegrityAlgorithm</key>
                    <string>SHA2-256</string>
                    <key>LifeTimeInMinutes</key>
                    <integer>1440</integer>
                </dict>
                <key>DeadPeerDetectionRate</key>

                <!--
                    None (Disable)
                    Low (keepalive sent every 30 minutes)
                    Medium (keepalive sent every 10 minutes)
                    High (keepalive sent every 1 minute)
                -->
                <string>High</string>
                <key>ExtendedAuthEnabled</key>
                <true/>
                <key>IKESecurityAssociationParameters</key>
                <dict>
                    <key>DiffieHellmanGroup</key>
                    <integer>14</integer>
                    <key>EncryptionAlgorithm</key>
                    <string>AES-256</string>
                    <key>IntegrityAlgorithm</key>
                    <string>SHA2-256</string>
                    <key>LifeTimeInMinutes</key>
                    <integer>1440</integer>
                </dict>

                <!--
                Always On OnDemand Rule
                Cen be disabled in connection preferences by "On Demand" checkbox
                http://www.v2ex.com/t/137653
                https://developer.apple.com/library/mac/featuredarticles/iPhoneConfigurationProfileRef/Introduction/Introduction.html
                https://github.com/iphoting/ovpnmcgen.rb
                -->
                <key>OnDemandEnabled</key>
                    <integer>1</integer>
                    <key>OnDemandRules</key>
                    <array>
                        <dict>
                            <key>Action</key>
                            <string>Connect</string>
                        </dict>
                    </array>
            </dict>
            <key>IPv4</key>
            <dict>
                <key>OverridePrimary</key>
                <integer>1</integer>
            </dict>
            <key>PayloadDescription</key>
            <string>Configures VPN settings</string>
            <key>PayloadDisplayName</key>
            <string>VPN</string>
            <key>PayloadIdentifier</key>
            <string>com.apple.vpn.managed.96C1C38F-D4D6-472E-BA90-9117ED8896B5</string>
            <key>PayloadType</key>
            <string>com.apple.vpn.managed</string>
            <key>PayloadUUID</key>
            <string>96C1C38F-D4D6-472E-BA90-9117ED8896B5</string>
            <key>PayloadVersion</key>
            <integer>1</integer>

            <!-- VPN connection name in Network Preferences -->
            <key>UserDefinedName</key>
            <string>London VPN</string>
            <key>VPNType</key>
            <string>IKEv2</string>
        </dict>
    </array>

    <!-- Set the name to whatever you like, it is used in the profile list on the device -->
    <key>PayloadDisplayName</key>
    <string>My Super IKEv2 VPN</string>

    <!-- A reverse-DNS style identifier (com.example.myprofile, for example) that identifies the profile. This string is used to determine whether a new profile should replace an existing one or should be added. -->
    <key>PayloadIdentifier</key>
    <string>vpn.googd.citizen</string>

    <!-- A globally unique identifier, use uuidgen on Linux/Mac OS X to generate it -->
    <key>PayloadUUID</key>
    <string>F3FAD91C-019C-4A79-87A1-CF334C583339</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

Настройка Android

К сожалению Android единственная из популярных операционных систем, которая до сих пор не имеет встроенной поддержки IKEv2. Для подключения можно использовать официальный клиент Strongswan из PlayMarket

Итог

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

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

OpenVPN client on Windows with default settings only supports one active VPN connection. When installing OpenVPN on Windows, only one virtual adapter of the TAP or Wintun type is created. If you want to connect to multiple OpenVPN servers at the same time, you need to create an additional WinTAP or Wintun network adapter.

If you try to start another VPN connection, an error will appear:

OpenVPN GUI
Connecting to VPN_name has failed
All TAP-Windows adapters on the system are currently in use
TCP/UDP: Socket bind failed on local address [undef]: Address already in use (WSAEADDRINUSE)

OpenVPN: All TAP-Windows adapters on the system are currently in use

To fix this problem and allow simultaneous connection to two (or more) OpenVPN servers, you need to add another virtual TAP network adapter. Each VPN connection will use its own TAP network interface.

Open an elevated command prompt and go to the directory:

Cd “C:\Program Files\TAP-Windows\bin”

Run the file:

addtap.bat

openvpn add tun adapter on windows

The BAT file will run tapinstall.exe with several parameters. This command will add an additional network adapter in Windows with the TAP-Windows Adapter V9 driver. Run the bat file as many times as you want to use concurrent OpenVPN connections.

Device node created. Install is complete when drivers are installed...
Updating drivers for tap0901 from C:\Program Files\TAP-Windows\driver\OemVista.inf.
Drivers installed successfully.

After that, a new device “TAP-Windows Adapter #2” will appear in the list of Windows network adapters.

To manually add the new TAP adapter and install the driver, you can use the command:

tapinstall.exe install “C:\Program Files\TAP-Windows\driver\OemVista.inf” tap0901

Starting with OpenVPN 2.5, to manage TAP adapters in Windows, you need to use the tapctl.exe utility, which replaces the legacy tapinstall.exe.

To add a new TAP adapter, just run the command:

"c:\Program Files\OpenVPN\bin\tapctl.exe" create

If you need to create a TUN adapter, run:

"c:\Program Files\OpenVPN\bin\tapctl.exe" create --hwid wintun

tapctl create new wintun adapter

The Wintun driver from the developers of WireGuard appeared in OpenVPN 2.5. The Wintun driver is faster than the classic OpenVPN WinTAP driver.

List OpenVPN network adapters:

tapctl.exe list

Available TAP-WIN32 / Wintun adapters [name, GUID, driver]:
'OpenVPN Wintun' {f308344f-76c9-4b07-a931-e56d7243942d} wintun
'OpenVPN TAP-Windows2' {E91285C8-728F-4643-9485-114970074AF7} tap-windows6
'OpenVPN Wintun2' {f101234f-3212-4b07-a931-e56d72432123} wintun

You can list the TAP network adapters available to the OpenVPN client using the command:

 “C:\Program Files\OpenVPN\bin\openvpn.exe” --show-adapters

Available TAP-WIN32 adapters [name, GUID]:
'Local Area Connection 2' {f308344f-76c9-4b07-a931-e56d7243942d}
'Local Area Connection 3' {f101234f-3212-4b07-a931-e56d72432123}

tapctl.exe list virtual adapters

To remove all installed TAP adapters, run the deltapall.bat file in the same folder.

Or use the command:

 tapctl.exe delete "OpenVPN TAP-Windows6"

Check the configuration files (.ovpn) of your VPN connections in the C:\Program Files\OpenVPN\config. Add the following options to the OVPN config files:

  • nobind – use a dynamic UDP source port for each VPN sessionnobind option in openvpn config file
  • dev-node 'OpenVPN TAP-Windows2' – bind an OpenVPN connection to a specific network interface (the name of the network adapter is specified)

The OpenVPN client binds to a specific interface when a connection is established. You can add the command to connect to OpenVPN to Windows startup. In addition, you can assign a static IP address to the OpenVPN client.

If you do not bind OVPN profiles to a specific network adapter, then when you try to create a second OpenVPN connection, an error may appear:

TCP/UDP: Socket bind failed on local address [undef]: Address already in use (WSAEADDRINUSE)

Note that when using multiple OpenVPN connections, the server must send you the route to its subnets via the push (you can’t:

push "route 10.1.10.0 255.255.255.0 10.1.10.1"

Now your OpenVPN client will allow you to run two or more active VPN connections at the same time. On Linux, multiple VPN connections are allowed by default when connecting to OpenVPN from the terminal.

Ksenia Zvezdina / ShuttTerstick.com


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

К счастью, создавая двойное соединение, подобное это не так уж плохо в Windows, если вы готовы настроить виртуальную машину, чтобы сделать тяжелый подъем. Та же трюк будет работать на MacOS и Linux. Однако на мобильных устройствах нельзя легко возможно, такие как iPhone, iPad и Mac.

Как иметь два VPN на одном устройстве

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

С другой стороны, если у вас есть два VPN, которые установлены один для того, чтобы когда вы работаете из дома, который приведет вас к корпоративной интрасети и еще один личный

Смотря netflix.

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

Единственное исключение, кажется,

Nordvpn.

, который иногда может прекратить соединение с серверами, если это установлена ​​вторая VPN. Мы не уверены, что это так, просто это обычно можно исправить, удалив его и любой другой VPN на вашем компьютере. Как только вы работаете с пустым шифером, просто переустановите оба VPN, убедитесь, что NordVPN идет первым.

Зачем использовать два VPN одновременно?

Как мы объясняем в нашей статье на

Какие VPN

, VPN соединяет вас с сервера ISP к серверу VPN и оттуда на сервер сайта, который вы хотите посетить. Соединение между VPN и сайтом зашифровано в процессе, создавая что-то называемое «безопасным туннелем». Этот туннель делает его, чтобы ваш ISP не может видеть, на что вы занимаетесь, и не сможете сайт, который вы подключены к Trace обратно в ваше местоположение.

Одновременные VPN-соединения — также называют «двойной хоп», «Multi-Hop» или «двойной VPN», когда вы подключаетесь к серверу VPN, а затем подключитесь к другому. Это эффективно создает двойное зашифрованное соединение, которое должно быть вдвое безопаснее, или, по крайней мере, вот как он рекламируется поставщиками VPN, которые предлагают IM-NORDVPN, это тот, кто пружиняется.

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

Тем не менее, есть дело для людей на корпоративном VPN, который не хочет, чтобы их работодатель отслеживать свои журналы, но даже в этом случае вы можете подумать дважды о настройке двойного VPN. Основная причина этого — это скорость, точнее отсутствие этого. Даже лучший VPN будет

замедлить ваше соединение

Но наличие двух работающих одновременно является огромным ударом для производительности.

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

Почему у вас не могут одновременные VPN-соединения?

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

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

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

Как настроить два одновременных VPN-соединения

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

VPN протокол

Как и OpenVPN, который позволяет тому, и это должно позволить вам создать двойное VPN-соединение.

Используйте виртуальную машину

Конечно, есть простой обходной путь, который вы избегаете всего этого нашистости, а именно запуская вашу вторую VPN по виртуальной машине (VM), что является вторым, поддельный компьютер работает на вашем рабочем столе или ноутбуке. Это звучит намного сложнее, чем это.

Вот как настроить виртуальную машину

Отказ

Запустив один VPN по вашему «реальному» компьютеру и второй по виртуальной одному или даже по поводу виртуального соединения — вы пропускаете проблему с противоречивыми адаптерами Tap. Поскольку они по существу, отдельные машины, вы можете сначала запускать один VPN, а затем другой на VM без каких-либо конфликтов возникает. Другим истеклом является то, что этот метод будет работать одинаково хорошо на Windows, MacOS и Linux.

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

Лучшие VPN

там и придерживаться этого.

  • Два windows при загрузке компьютера
  • Два windows на одном компьютере как удалить
  • Даунгрейд windows 10 enterprise до pro
  • Датчики температуры пк на рабочий стол windows 10
  • Дать права на запуск службы windows