VPN и прокси

Ваш публичный IP и маршрут VPN, прокси-приложения, Kill Switch VPN и проверка на утечки.

VPN и публичный IP

«Состояние › Куда уходит трафик», меню Wi-Fi и kilobat ip показывают интерфейс маршрута по умолчанию и то, VPN ли это, — по маршрутам этого Mac и VPN, которые macOS считает подключёнными. VPN, который подключён, а маршрут по умолчанию остаётся на Wi-Fi, — например Tailscale без exit node, — отображается как «Частично»: через него идут лишь некоторые адреса. Включите «Настройки › Сеть › Определять публичный IP», чтобы видеть и адрес, который видят сайты: он запрашивается у Cloudflare при смене сети и каждые 30 минут, а страна регистрации берётся из встроенных в Kilobat данных DB-IP. По умолчанию это выключено, потому что Cloudflare видит такой запрос; kilobat ip --public спрашивает один раз. Страна регистрации — это не место, где находитесь вы или сервер, и ни она, ни VPN не доказывают, что подключение приватное или анонимное. «Настройки › Строка меню › VPN» добавляет рядом с летучей мышью «Вкл.», «Частично» или «Выкл.» (с кодом страны, если определение включено), а «История» показывает, когда VPN включался и выключался и когда менялся публичный IP.

Прокси и VPN

Kilobat работает вместе с прокси-приложениями (Clash Verge, ClashX, mihomo, Mihomo Party, FlClash, Surge, sing-box, Stash, V2Ray, Xray, Shadowsocks) и VPN. Он только читает их данные: никогда не маршрутизирует трафик и не меняет их настройки.

  • Трафик засчитывается нужному приложению. Приложению, которое отправляет данные через локальный прокси, засчитывается его собственный трафик, а ядро прокси или VPN-туннель, который его пересылает, помечается как «Передаёт трафик других приложений» и не учитывается дважды.
  • Каким маршрутом шло каждое приложение. С Clash-совместимым API (Clash Verge, ClashX, mihomo, Mihomo Party, FlClash, clash_api в sing-box) в строке приложения виден узел, через который шёл трафик, например «через HK-01 · 2 напрямую», а в подсказке перечислены все хосты, узлы и правила. Kilobat берёт адрес API и секрет из собственной конфигурации приложения и никогда не показывает секрет.
  • Проблемы — в разделе «Куда уходит трафик» на вкладке «Состояние»:
    • системный прокси, указывающий на незапущенное приложение, из-за чего не работает ни один браузер;
    • DNS или IPv6 в обход VPN;
    • прокси и VPN, которые оба забирают трафик;
    • глобальный режим;
    • блокировка, которая не видит приложения за системным прокси. Фильтры macOS не видят подключений к 127.0.0.1, поэтому включите режим TUN в прокси или заблокируйте приложение в правилах прокси.
  • Почему нет подключения? добавляет слой «Прокси-приложение» с режимом прокси и скоростью ответа его текущих узлов и сообщает, если проблема в неработающем узле.

В терминале: kilobat proxy, kilobat proxy routes --app Telegram, kilobat proxy test и kilobat vpn. Если Kilobat не находит ядро сам, передайте --controller 127.0.0.1:9090 --secret …. Агенты получают то же через get_proxy_status, test_proxy_nodes и check_vpn.

Kill Switch VPN

С Pro и включённым сетевым фильтром включите Kill Switch VPN в «Настройки › Сеть». Если VPN отключится, Kilobat заблокирует новые подключения, пока он не вернётся, чтобы за это время ничего не ушло через Wi-Fi в кафе или отеле. Всплывающее окно и дашборд покажут Заблокировано: VPN отключён, на летучей мыши в строке меню появится замок, а уведомление предложит Разрешить на 5 минут.

  • Он срабатывает, как только VPN подключится. Kill Switch ждёт, пока VPN хотя бы раз пропустит весь трафик с момента запуска Mac, поэтому, включив его без VPN, вы никогда не останетесь без сети. С этого момента и до перезагрузки он блокирует трафик всякий раз, когда VPN отключён, в любой сети, ведь именно при подключении к новой сети приложения и допускают утечки. Частичный VPN, который пропускает только некоторые адреса, считается отключённым.
  • Что всё равно подключается: приложение VPN, его вспомогательные процессы и сетевое расширение (WireGuard, Tailscale, Mullvad, NordVPN, Proton VPN, ExpressVPN, Surfshark, Cisco Secure Client, GlobalProtect, OpenVPN Connect, Tunnelblick и другие, а также любое приложение VPN, для которого в macOS есть конфигурация), сетевые службы Apple (DNS, DHCP, проверка сертификатов, окно входа в сеть, встроенные VPN), Kilobat и локальная сеть, если вы её не отключите. Всё остальное ждёт, какими бы ни были его правила или профиль, включая «Без ограничений».
  • Как выйти. Разрешить на 5 минут в баннере, уведомлении или контекстном меню строки меню пропускает всё — для страницы входа в сеть или быстрой проверки — и снова блокирует, если VPN всё ещё отключён. Выключить находится рядом, а также в настройках.

Чего он не умеет: фильтр видит только новые подключения, поэтому уже открытые на момент отключения VPN продолжают работать, хотя большинство обрывается вместе со своим туннелем. DNS-запросы по-прежнему уходят, чтобы VPN мог найти свой сервер. Если Kilobat завершит работу, фильтр сохранит последнее полученное состояние и всё равно будет блокировать, когда интерфейс туннеля VPN исчезнет; откройте Kilobat, чтобы разрешить трафик или выключить Kill Switch. В терминале: kilobat settings kill-switch on, а kilobat vpn или kilobat conditions показывают его состояние; агенты читают его в check_vpn и get_conditions, а set_kill_switch сначала спрашивает вас.

Проверка VPN на утечки

Включив VPN, нажмите Проверить на утечки в «Состояние › Куда уходит трафик» или в «Настройки › Сеть». Примерно за десять секунд Kilobat проверит три пути, которыми трафик может обойти VPN, и для каждого скажет, пройдена ли проверка, с настройкой, которая это исправит, — названной так, как её называет ваше приложение VPN, если Kilobat это знает (Mullvad, NordVPN, Proton VPN, ExpressVPN, Tailscale, WireGuard; для Cisco, GlobalProtect и других рабочих VPN — о чём попросить ИТ-отдел).

  • DNS. Резолверы, которые macOS использует для обычных запросов, и маршрут к каждому: резолвер, доступный через Wi-Fi или Ethernet, а не через туннель, раскрывает каждое имя, которое вы запрашиваете. Kilobat также запрашивает несколько выдуманных имён через bash.ws, который сообщает, какие резолверы спрашивали; резолвер, который не принадлежит ни вашему VPN, ни публичному DNS-сервису вроде Cloudflare или Google, скорее всего, принадлежит вашему интернет-провайдеру.
  • IPv6. VPN, который пропускает только IPv4, когда у Mac есть маршрут IPv6 через Wi-Fi, отдаёт IPv6-сайтам ваш настоящий адрес. Kilobat запрашивает ваш IPv6-адрес у api6.ipify.org, чтобы показать, что видят сайты, и называет настройку VPN или способ выключить IPv6 для этой сети («Системные настройки» › «Сеть» › Wi-Fi › «Подробнее» › TCP/IP › «Конфигурация IPv6» › «Только локально для канала»).
  • UDP и WebRTC. WebRTC в браузере отправляет UDP через все сетевые интерфейсы. Kilobat отправляет STUN-запрос (на сервер Google или Cloudflare) через VPN и ещё один — напрямую через Wi-Fi или Ethernet: если на второй приходит ответ или первый возвращается с адреса, отличного от выходного адреса VPN, страница может узнать ваш настоящий адрес. Исправляется это с помощью Kill Switch или режима блокировки в VPN. Kilobat не может запустить WebRTC браузера, поэтому также подсказывает, как запретить браузерам раскрывать локальные адреса: Safari их скрывает; в Firefox — выключить media.peerconnection.enabled; в Brave — правила обработки IP-адресов в WebRTC; в Chrome — расширение WebRTC Network Limiter от Google.

Проверка на утечки бесплатна. Она ничего не меняет, а сервисы, к которым она обращается, видят ваш адрес, как любой сайт. Успешная проверка относится к этому Mac в данный момент, а не к каждому приложению. В терминале: kilobat vpn leaks (завершается с кодом 1, если есть утечка, --json для скриптов); агенты используют check_vpn_leaks.