Рабочий VPN и Karing на одном Mac: почему рвётся соединение и как настроить
Если при включённых рабочем VPN и Karing рвутся Codex и ChatGPT или не открываются внутренние сайты, дело почти всегда в том, куда идёт соединение рабочего VPN. Пошаговая настройка и проверка одной командой.
Многие работают так: Karing включён на Mac постоянно, а рабочий VPN (чаще всего OpenVPN) нужен, чтобы попасть в сеть компании. По отдельности обе программы работают. А вместе начинается странное: длинная задача в Codex обрывается на середине, ChatGPT пишет «stream disconnected before completion», внутренняя Jira не открывается, рабочий VPN сам переподключается. При этом серверы исправны, скорость в тестах нормальная.
Причина почти всегда одна, и её можно найти и исправить за несколько минут.

Почему два VPN мешают друг другу?
Karing на Mac работает как системный туннель: он забирает себе весь трафик компьютера. Весь — значит и соединение самого рабочего VPN с его сервером. Получается «VPN внутри VPN»: рабочий туннель едет через Karing.
Пока всё стабильно, это почти незаметно. Но стоит Karing переподключиться (например, когда он сам обновляет подписку), рабочий VPN теряет свой сервер и переподключается. Karing видит, что сетевые настройки поменялись, и сбрасывает свои соединения. Рабочий VPN снова переподключается, и так по кругу. Каждый такой сброс рвёт всё, что было открыто: ответ Codex, загрузку, звонок.
Правильная схема другая: рабочий VPN ходит к своему серверу напрямую через Wi-Fi или кабель, мимо Karing. Тогда два туннеля стоят рядом и не трогают друг друга.
Как проверить, куда идёт рабочий VPN?
Нужен адрес сервера рабочего VPN. Он записан в файле настроек .ovpn в строке remote, например remote 203.0.113.10 1194. Ещё его можно найти в журнале программы рабочего VPN.
Откройте «Терминал» (через Spotlight: ⌘ + пробел, наберите «Терминал») и выполните:
```
route -n get 203.0.113.10
```
Вместо 203.0.113.10 подставьте адрес своего сервера. Смотрите на строку interface:
| Что в interface | Что это значит |
|---|---|
en0 (или en1) | Рабочий VPN идёт напрямую через Wi-Fi или кабель — так и должно быть |
utun с цифрой (utun5 и т.п.) | Рабочий VPN идёт внутри туннеля Karing — отсюда и обрывы |
Как настроить, чтобы не рвалось?
1. Соблюдайте порядок: сначала Karing, потом рабочий VPN. Рабочий VPN при подключении прописывает себе маршрут к своему серверу. Если Karing подключится позже, он может перехватить этот маршрут. Поэтому сначала включите Karing, дождитесь подключения и только потом подключайте рабочий VPN.
2. Если Karing переподключился — переподключите рабочий VPN. Karing иногда переподключается сам, например после обновления подписки или смены сети. После этого отключите рабочий VPN и включите его снова. Karing при этом не трогайте.
3. Проверьте маршрут ещё раз. Выполните route -n get с адресом сервера. Если в interface по-прежнему utun, добавьте маршрут вручную. Сначала узнайте адрес роутера:
```
route -n get default
```
Нужна строка gateway, например 192.168.1.1. Затем:
```
sudo route -n add -host 203.0.113.10 192.168.1.1
```
Первый адрес — сервер рабочего VPN, второй — ваш роутер. Mac попросит пароль от учётной записи. После этого route -n get должен показать en0. Такой маршрут держится до перезагрузки Mac или смены сети, потом команду нужно повторить.
4. Если рабочий VPN работает по UDP, выбирайте в Karing серверы на TCP. Протоколы на UDP вроде Hysteria плохо уживаются с рабочим OpenVPN по UDP: туннель поднимается, но внутренние сайты зависают на загрузке. Посмотреть протокол рабочего VPN можно в .ovpn, в строке proto.
5. Если не открываются внутренние сайты, выключите FakeIP. В Karing: «Настройки» → DNS → выключить FakeIP. При включённом FakeIP браузер получает от Karing подставной адрес вида 198.18.x.x, и запрос к внутреннему сайту уходит в Karing, а не в рабочий VPN. Проверить легко: ping -c 1 jira.ваша-компания не должен показывать 198.18.
А если рабочий VPN заворачивает в себя весь трафик?
Бывает и обратная ситуация: рабочий VPN настроен забирать весь трафик компьютера, и тогда уже Karing едет внутри него. Решение зеркальное: в .ovpn добавляют по строке на каждый сервер, к которому подключается Karing:
```
route <адрес сервера> 255.255.255.255 net_gateway
```
Адреса серверов можно уточнить в поддержке. Если .ovpn выдаёт и обновляет администратор компании, такие строки лучше согласовать с ним.
Короткий чек-лист
- Сначала Karing, потом рабочий VPN. Karing переподключился — переподключите рабочий VPN.
route -n get <сервер рабочего VPN>показываетen0, а неutun.- Рабочий VPN по UDP — в Karing серверы на TCP.
- Не открываются внутренние сайты — выключите FakeIP.
Если обрывы остались, напишите в поддержку время обрыва и вывод route -n get для сервера рабочего VPN. По этим данным причину обычно видно сразу.
Если соединение не рвётся, но медленное, пригодится наша статья о том, как проверить скорость и стабильность соединения. А с самого начала Karing настраивается по инструкции о безопасном соединении на компьютере и телефоне. Разницу между протоколами мы разбирали в статье WireGuard или OpenVPN.
Та же настройка для Windows — в статье о рабочем VPN и Karing на Windows.