YPN Release Channel
30 subscribers
1 photo
11 files
23 links
Канал для релизов YPN
Download Telegram
Обновление 1.3.2 — стабильность под нагрузкой и в сложных сетях (изменения 1.3.0 → 1.3.2).

🎮 Игры и всплески соединений больше не обрывают интернет
Резкий шквал новых соединений (например, запуск тяжёлой игры) раньше мог «заморозить» весь трафик до ручного переподключения. Теперь сетевой стек переживает такой всплеск и сам восстанавливается.

🔒 Устранена утечка реального IP при двойном подключении
Два почти одновременных нажатия «Подключить» могли на миг оставить маршруты несогласованными, и часть трафика уходила мимо туннеля. Подключение сделано строго последовательным — такого больше не происходит.

🌐 Имена сайтов продолжают разрешаться, даже если сервер «моргнул»
DNS больше не зависит целиком от одного канала: при просадке сервера разрешение имён мягко переходит на запасной путь, и соединение не падает в ноль.

🟢 «IP недоступен» больше не мигает сразу после подключения
Проверка внешнего IP теперь дожидается, пока туннель реально заработает, и показывает «Проверка…», а не ложное «недоступен».

⚙️ Авто-переключение серверов снова по умолчанию выключено
Вернули проверенное поведение версии 1.2.x — меньше лишних переключений и связанных с ними сбоев.

Из 1.3.1: при недоступном сервере клиент быстрее уходит на рабочий (другой транспорт), а не перебирает минуту.
🧱 Из 1.3.0: честный статус «подключено, но нет трафика», набор исправлений для Linux-десктопа, рекомендованные настройки в один клик.

Все платформы, прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/
CHANGELOG_1.3.2.pdf
647 KB
📄 Список изменений · YPN Client 1.3.2 (PDF)
Обновление 1.3.3 — умный выбор пути, мгновенная смена сервера и гибкая маршрутизация.

🚀 Бесшовный авто-выбор транспорта
При подключении клиент сам подбирает рабочий и самый быстрый транспорт сервера вместо жёстко заданного — меньше ручной настройки и выше шанс с первого раза выйти на стабильное соединение.

📱 Мгновенная смена сервера на Android — без переподключения
Если активный сервер во время сессии перестаёт отвечать, клиент переключается на следующий рабочий прямо в движке, не перезапуская VPN-сервис и туннель: соединение не рвётся, активные сессии переезжают на живой сервер. Включается опционально.

🧭 Гибкая маршрутизация: 4 режима + «только через туннель»
Режимы на любой сценарий — от «всё через туннель» до «по умолчанию напрямую, в туннель только выбранное». Можно задать списки доменов и адресов, которые всегда идут через туннель. На Android отдельные приложения можно закрепить за туннелем.

🔄 Единый авто-reconnect на десктопе и Android
Один тумблер теперь работает на обеих платформах. Восстановление при смене сети (Wi-Fi мобильная) происходит всегда — туннель не «зависает» при переходе; а тумблер управляет переподнятием соединения после неожиданной остановки.

⚠️ В выходные — плановый рестарт подписок @ypncore. Если после этого возникнут проблемы с подключением, переимпортируйте подписку: удалите старую и добавьте заново — из бота @YPNcoreBOT или из личного кабинета my.ypncore.ru.

Все платформы, прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/
🔥1
CHANGELOG_1.3.3.pdf
340.6 KB
📄 Список изменений · YPN Client 1.3.3 (PDF)
CHANGELOG_1.3.4.pdf
804.8 KB
📄 Список изменений · YPN Client v1.3.4 (PDF)
Обновление 1.3.4 — диагностика и доверие: лог одной кнопкой, приватная телеметрия, защита от белого экрана.

🩺 Диагностика в один клик
Кнопка «Отправить лог» теперь на странице «Логи» — заметная, на телефоне и на ТВ. Лог собирается полностью на всех устройствах (включая ТВ и Android), а статус отправки — на языке приложения.

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

📄 Приватность и прозрачность
Новый раздел в «Помощи» и на сайте: что мы видим (ничего лишнего) и чего не видим. Перед отправкой диагностики — предпросмотр того, что именно загружается.

🎨 Аккуратные диалоги, единые уведомления и доступность
Все подтверждения — в одном оформленном окне вместо системных; уведомления собраны в один стек с ручным закрытием. Подсказки не только цветом (иконка + подпись) и корректные метки — удобнее для дальтоников и скринридеров.

🚦 Стабильность соединения
Трафик больше не «замирает» под нагрузкой: при перегрузке исходящего канала раньше могли застыть все UDP-потоки (включая DNS на Android) — приложение работает, а данные не идут. Теперь лишние пакеты аккуратно сбрасываются вместо подвисания канала, плюс защитный таймаут. Устранена и утечка фоновых задач/дескрипторов в одном из транспортов, копившаяся при частых переподключениях.

🧠 Меньше памяти
Глобальный аллокатор теперь сразу возвращает освобождённую память системе. При частых переподключениях и рукопожатиях потребление больше не разрастается — приложение остаётся лёгким в долгих сессиях.

Больше никакого «белого экрана»
Сбой в интерфейсе больше не гасит весь экран при включённом туннеле — приложение остаётся управляемым. Плюс надёжность фонового сервиса на Android и видимость ошибок (профили больше не молчат при сбое).

🪟 Аппаратная «Назад» на телефоне
Системная «Назад» на Android-телефоне больше не выкидывает из приложения с одного нажатия: сначала закрывает диалог, затем уводит на главную, и только на главной спрашивает подтверждение выхода.

Все платформы (Windows · Linux · macOS · Android для телефона и ТВ), прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/
Обновление 1.3.5 — аккуратная верстка на любом экране и экспериментальный транспорт.

🎨 Адаптивная верстка на узких экранах
Исправлено отображение на телефонах с узким экраном: карточки подписки, имена серверов и длинные подписи больше не обрезаются и не выходят за край, а вертикальный скролл работает корректно. Прошлись по всем экранам приложения — главная, профили, настройки, помощь, уведомления и диалоги — чтобы текст и элементы аккуратно вписывались в окно на любом размере.

🧪 Экспериментальный транспорт XHTTP
Добавлена экспериментальная поддержка транспорта XHTTP (мультиплексирование поверх HTTP/2). Пока в режиме наблюдения — смотрим, как он ведёт себя в реальных условиях; основные подключения работают как прежде.

🔗 Стабильнее при смене сети
Соединение лучше переживает переключение между Wi-Fi и мобильной сетью: внутренняя таблица сопоставлений адресов теперь сохраняется между переподключениями, поэтому приложения не «отваливаются» после каждого скачка сети.

Все платформы (Windows · Linux · macOS · Android для телефона и ТВ), прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/
🤝1
CHANGELOG_1.3.5.pdf
273.2 KB
📄 Список изменений · YPN Client 1.3.5 (PDF)
Обновление 1.3.6 — надёжность соединения: чиним «наглухо», разрывы и утечки памяти.

🛡️ Соединение стало заметно стабильнее
Устранили несколько причин, из-за которых канал мог внезапно «замолчать» и не восстановиться сам. Теперь приложение замечает, когда трафик перестаёт идти, и честно показывает статус, а не висит молча «подключено». Отдельно исправлено редкое зависание при отключении из системного трея, которое могло оставить компьютер без интернета до перезапуска.

🔄 Плавные переключения серверов и сети
После смены сервера или перехода между Wi-Fi и мобильной сетью соединение восстанавливается сразу, без периода, когда «всё висит». А долгие соединения — мессенджеры, стримы, звонки — больше не обрываются сами по себе спустя несколько часов работы.

Ровнее под нагрузкой
При большом числе одновременных соединений (игры, звонки, p2p) трафик больше не «замирает» из-за одного медленного подключения — каждое соединение поднимается независимо.

🧹 Меньше памяти при долгой работе
Исправлено накопление «мёртвых» сессий: при многочасовой работе приложение больше не раздувает расход памяти.

📺 Android ТВ: подписка снова обновляется
На ТВ-приставках подписка обновляется автоматически даже при включённом VPN — раньше в этом случае обновление могло отклоняться.

Все платформы (Windows · Linux · macOS · Android для телефона и ТВ), прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/
Обновление 1.3.7 — исключения из туннеля наконец работают как надо: игры и приложения «мимо VPN» больше не «немеют».

🎮 Игры и приложения вне туннеля — теперь двусторонние
Если вы добавляли игру или приложение в исключения, чтобы её трафик шёл напрямую, минуя VPN, на Windows это могло работать лишь «в одну сторону»: данные уходили, а ответы не возвращались — игра не заходила в матч, голосовая связь молчала. Причину нашли и устранили: прямой трафик теперь корректно выходит через ваш физический сетевой адаптер и получает ответы. Особенно заметно в сетевых играх.

🌐 Исключения по домену с маской снова срабатывают
Запись вида *.example.com в списке исключённых доменов раньше могла молча не сработать. Теперь такие записи автоматически приводятся к единому виду — *.example.com, .example.com и example.com дают одинаковый результат и покрывают сам домен вместе со всеми поддоменами.

Все платформы (Windows · Linux · macOS · Android для телефона и ТВ), прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/
🔥1👏1💘1
CHANGELOG_1.3.7.pdf
143.5 KB
📄 Список изменений · YPN Client 1.3.7 (PDF)
🚀 YPN Client v1.3.8

Обновление 1.3.8 — Roblox и медиа в ленте больше не виснут, российские сайты открываются с первого раза, диагностика снова пишется.

🎮 Roblox и картинки/видео в ленте больше не «зависают на загрузке»
При открытии Roblox или пролистывании ленты приложение открывает сразу пачку соединений — и часть из них могла срываться, из-за чего страница не догружалась и подвисала в бесконечной загрузке. Теперь пачка новых соединений распределяется во времени, а сорвавшееся соединение получает повторную попытку — загрузка доходит до конца.

🇷🇺 Российские сайты вне списков открываются с первого раза
Раньше самое первое подключение к российскому сайту, которого нет ни в одном списке, могло по инерции уйти через зарубежный выход и потому тормозить или не открываться. Теперь маршрут для таких сайтов определяется сразу, на первом же обращении — и для обычных соединений, и для видеозвонков/игр (QUIC).

📄 Диагностика снова пишется после ротации логов
У части пользователей после смены суток лог обнулялся, и «Отправить лог» приходил пустым. Причину устранили — лог теперь пишется непрерывно, и при любой ошибке записи файл автоматически переоткрывается.

🗺️ Гео-базы обновляются сами
Базы определения стран/сайтов теперь автоматически обновляются в фоне, если устарели, — чтобы маршрутизация оставалась точной.

Все платформы (Windows · Linux · macOS · Android для телефона и ТВ), прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/

⬇️ Скачать (все платформы): ypncore.ru/downloads
❤‍🔥1🔥1
🚀 YPN Client v1.3.9

Обновление 1.3.9 — длинные ответы не обрываются, ноутбук после сна не висит с «подключено», защитное правило больше не рубит сам туннель.

🛡️ Защитное правило больше не отключало интернет вместо того, чтобы защищать
С включённым режимом «не выпускать трафик мимо туннеля» связь пропадала через несколько секунд после подключения, а после сна ноутбука туннель не восстанавливался вообще: правило ставилось без исключений — ни для трафика через сам туннель, ни для соединений приложения с сервером. Теперь исключения на месте. Защита DNS при этом не ослаблена, а если правило не удалось применить — приложение об этом скажет, раньше это было видно только в логе.

💤 Ноутбук после сна больше не висит с «подключено» и нулевым трафиком
После пробуждения все соединения с сервером уже мертвы, но локальные выглядят живыми — и приложение ждало данные до таймаута простоя. Теперь сон, пробуждение и смена сети отслеживаются на всех настольных системах: мёртвые соединения переустанавливаются сразу, туннель при этом не опускается. Делать ничего не нужно.

Длинные ответы (SSE, streaming API, Claude Code) больше не рвутся на пятой минуте
Таймаут простоя считался отдельно для каждого направления, хотя должен срабатывать, только когда молчат оба: на длинном ответе отваливалась отправляющая половина, соединение оставалось полуживым, и следующий запрос уходил в никуда. Теперь бюджет общий, а сам таймаут поднят с 5 до 30 минут.

📄 Обрыв по простою больше не теряется в логе
Раньше такие закрытия писались уровнем, который при обычных настройках не сохраняется, и присланный лог не объяснял ничего. Теперь причина видна, а в диагностику добавлены счётчики.

📌 Закреплённый вручную сервер больше не молчит о том, что он мёртв
При ручном закреплении автопереключение выключено по построению, и неудачные проверки уходили только в лог. Теперь причина показывается на экране, с кнопками «Переключить сейчас» и «Переподключиться».

🔍 Клиент сам подбирает рабочий адрес подключения
Рабочее имя, под которым приложение представляется серверу, зависит от оператора: в замерах одно и то же имя давало у одного оператора 5 успехов из 5, у другого — 0 из 5 в тот же час. Раньше при неудаче сервер просто считался нерабочим. Теперь приложение пробует запасные варианты, если их указал владелец подписки, и запоминает сработавший для этой сети. Своего списка адресов в приложении нет — только то, что пришло от вашего провайдера. Подбор работает не на всех типах серверов: часть настроек ведёт подключение по отдельному пути, где перебор невозможен, — это зависит от того, как сервер настроен у вашего провайдера.

🕵️ Диагностика, которую не страшно переслать
Новый режим записи (YPN_TRACE) сохраняет только «форму» трафика: время, направление и размер порции. Ни адресов, ни доменов, ни имён серверов, ни паролей, ни байта содержимого — время отсчитывается от начала записи, а метки времени самого файла обнуляются, так что по нему не видно, в какие часы вы были в сети. При этом видно, оборвался ли длинный ответ и на каком именно выходе проблема. Файл рассчитан на пересылку в поддержку: сама последовательность размеров и пауз — это тоже данные, поэтому выкладывать его публично не стоит. Подробности — в описании режима на сайте.

Все платформы (Windows · Linux · macOS · Android для телефона и ТВ), прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/

⬇️ Скачать (все платформы): ypncore.ru/downloads
1❤‍🔥1🔥1🎉1
CHANGELOG_1.3.9.pdf
557.3 KB
📄 Список изменений · YPN Client 1.3.9 (PDF)
Обновление 1.3.10 — на Windows туннель больше не включается «наполовину» и не уносит с собой всю сеть.

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

🚦 Туннель поднимался без маршрутов и забирал с собой всю сеть
Порядок действий был опасным: сначала приложение переводило на себя обработку имён и делало свой адаптер главным, и только потом прокладывало маршруты. Если маршруты проложить не удавалось, подключение всё равно продолжалось — и система оставалась с обработчиком имён, который отвечает служебными адресами, и без единого пути до них. Падало всё, включая то, что в туннель и не собиралось. Само по себе это не проходило: обработчик отвечает всегда, поэтому состояние переживало и возвращение сети, и переподключение. Теперь маршруты прокладываются первыми, а их неудача — это честная ошибка подключения с возвратом системы в исходное состояние. Если сеть ещё не поднялась (первые секунды после включения компьютера или после сна), приложение подождёт её до десяти секунд и только потом сообщит об ошибке.

📡 Подключение без шлюза убивало связь наглухо
У части подключений — телефонные линии, USB-модемы, часть корпоративных адаптеров — путь в интернет описан без промежуточного адреса. Приложение принимало служебное слово из системной таблицы за адрес и подставляло его в команды. В результате исключения не создавались вовсе, включая исключение для самого сервера, — и трафик туннеля заворачивался в туннель. Замкнутый круг, каждый раз, на любой настройке. Теперь отсутствие промежуточного адреса — это отдельное состояние, а не строка, и такие исключения привязываются к сетевому адаптеру напрямую.

«Подключено» теперь означает проверенный путь
После прокладки маршрутов приложение отдельно перечитывает системную таблицу и убеждается, что они действительно там. Успешный ответ команды — более слабое утверждение, чем наличие маршрута.

💤 После сна маршруты проверяются заново
Засыпание гасит сетевой адаптер, и система выбрасывает связанные с ним маршруты. Раньше приложение просто переустанавливало соединения поверх — в состоянии, когда трафик в туннель уже не заходит. Теперь если маршрутов нет, туннель честно опускается и поднимается заново.

🧹 Мелочи того же корня
Приложение больше не добавляет системе лишний путь по умолчанию при каждом отключении — оно считало, что перед этим сам его убрало, хотя не убирало. Адаптер без адреса больше не считается рабочим. А проверка «маршрут уже есть» перестала зависеть от языка системы: раньше она сравнивала английскую строку и на русской Windows не сработала бы никогда.

Изменения касаются только Windows. На Linux, macOS и Android поведение прежнее — версия поднята для единообразия.

Все платформы (Windows · Linux · macOS · Android для телефона и ТВ), прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/
CHANGELOG_1.3.10.pdf
271.9 KB
📄 Список изменений · YPN Client 1.3.10 (PDF)
YPN 1.3.11

Релиз по двум жалобам: «на VPN иногда рвётся соединение» и «на телевизоре зависла полоска загрузки». Разбирая их, нашли ещё несколько мест, где клиент вёл себя нечестно — показывал, что всё в порядке, когда это было не так.

Связь восстанавливается сама

Бывало, что значок горит «подключено», а интернета нет, и помогало только переподключение вручную. Особенно если в профиле один сервер или вы выбрали сервер сами — в этих случаях приложению было нечем себя починить.

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

Windows: смена сети больше не обрывает работу

Переключились с Wi-Fi на кабель, выдернули провод, сменили оператора на модеме — VPN оставался «подключённым», но не пропускал ничего. Это происходило всегда, а не изредка: из-за ошибки в коде обработчик смены сети не срабатывал вообще.

Kill switch больше не вводит в заблуждение

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

Телевизор: полоска загрузки больше не висит

«Загрузка данных маршрутизации» могла остаться на экране навсегда, хотя ничего не скачивалось. Теперь она исчезает в любом случае, а при неудаче честно об этом пишет.

Телефон: заработали Hysteria2 и TUIC

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

Ещё

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

Скачать

Windows, macOS, Linux (deb / rpm / AppImage / Arch), Android — включая Android TV.

ypncore.ru/downloads

Приложение не подписано цифровой подписью: Windows и macOS предупредят при первом запуске, это ожидаемо.

Отдельно скажем честно: переподключение по смене сети на Windows проверено автотестами, но не на живой машине — её у нас сейчас нет. Если поймаете странное поведение при смене сети, напишите — разберём в первую очередь.
🔥2💘1
Обновление 1.3.12 — на Windows туннель больше не рвётся по кругу. И извинения за 1.3.11.

Начнём с неприятного: 1.3.11 мы выпустили сломанной. На Windows туннель обрывался через пару секунд после подключения, снова подключался, снова обрывался — и так без конца. Пользоваться VPN было нельзя, помогал только откат на 1.3.10. Если вы потратили вечер, пытаясь понять, что не так с вашей сетью, — с сетью всё было в порядке. Извините.

🔁 Почему так вышло
В 1.3.11 мы починили обработчик смены сети: до этого он на Windows состоял из недостижимого кода и не срабатывал никогда. Починили — и он начал отрабатывать каждое системное уведомление об изменении сетевых адресов. В том числе те, которые приложение создаёт само: поднимая туннель, оно выставляет своему адаптеру адрес, потом DNS, потом приоритет. Клиент видел «сеть изменилась», рвал соединение, переподключался — и снова видел «сеть изменилась». Защита от частых событий не спасала: она рассчитана на всплеск, а цикл подъёма занимает около восьми секунд и укладывается в неё каждый раз заново.

Теперь клиент реагирует не на факт уведомления, а на реальную разницу: изменился ли физический путь в интернет — адаптер, шлюз, адрес. Собственный туннель, чужой VPN-адаптер, docker-мост такой разницы не создают, и туннель их больше не замечает. Реальное переключение Wi-Fi кабель модем, смена шлюза и переезд по DHCP по-прежнему переподключают — ровно один раз. Если путь пропал вовсе, туннель оставляют в покое: переподключаться не через что. Сверху предохранитель — не больше трёх переподключений в минуту.

Остальное — про российский сегмент, и тема одна: клиент знал правду, но не доносил её до вас.

⚙️ Рекомендованный профиль дотянут до реальности
При первой установке применяется набор рекомендованных настроек. В нём не хватало двух вещей: автопереподключения и автоопределения российских приложений. В сети, где обрыв — будни, туннель без автопереподключения просто умирает и лежит, пока вы не заметите. А банковские, государственные и маркетплейс-сервисы проверяют IP выхода и закрепляют сертификаты, поэтому через иностранный выход они либо не открываются, либо требуют капчу. Теперь обе настройки в профиле. Это касается только новых установок и кнопки «Применить рекомендованные» — при обновлении ваши настройки никто не трогает.

🇷🇺 Выключенный защитный пин теперь видно
Пин уводит российские сайты напрямую, мимо туннеля. Если его выключить, российский трафик идёт через иностранный выход, и банки, Госуслуги и маркетплейсы начинают отваливаться. Раньше об этом сообщала одна строка в журнале — то есть практически никто. Теперь, пока пин выключен, на главном экране висит предупреждение с указанием, где его вернуть. Оно не всплывающее и не закрывается: исчезает ровно тогда, когда исчезает причина.

🐢 Когда «VPN тормозит» — теперь понятно, почему
Часть серверов не умеет вести много соединений через одно рукопожатие. На занятом компьютере таких рукопожатий набирается больше, чем сервер готов принять, и новые соединения встают в очередь до полуминуты. Снаружи это выглядит как необъяснимые тормоза. Подсказка теперь называет причину и предлагает сервер с gRPC или HTTP/2 — раньше она советовала XHTTP, который на наших серверах не работает. При автовыборе транспорта мультиплексирующий сервер предпочитается, но только при равной скорости и только после нескольких подтверждений подряд, чтобы выбор не скакал.

📋 О неполной подписке узнаёт её владелец
Если панель отдаёт по одному формату меньше серверов, чем по другому, клиент молча берёт полный список. Для вас ничего не ломается, но владелец подписки о дефекте своей панели не узнавал никогда. Теперь при импорте и ручном обновлении об этом сообщают в интерфейсе. Фоновое автообновление молчит: напоминание о чужом дефекте, которого никто не просил, — это назойливость, а не забота.

Все платформы (Windows · Linux · macOS · Android для телефона и ТВ), прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/
🔥21
Обновление 1.3.13 — клиент перестаёт душить сам себя.

Выпуск вырос из одной жалобы: «низкая скорость и нестабильность» на macOS. Сервер у пользователя действительно отвечал плохо — с паузами до трёх минут. Но дальше клиент превращал плохую связь в неработающую: четыре механизма умножали первичный отказ сети, и ни один из них не был в нём виноват.

🔒 Клиент начинал отбрасывать ваши же соединения

У движка есть потолок одновременных исходящих соединений — защита от исчерпания системных ресурсов. Остановка движка снимала только приёмные петли, а уже запущенные задачи продолжали жить и занимать места, до получаса каждая. Счётчик общий на всё приложение, а за полтора часа движок перезапускался двадцать раз. Занятое складывалось — и клиент начинал отбрасывать собственные соединения пользователя: за 76 минут около 1659 штук. Снаружи это выглядело так: чем дольше работает приложение, тем хуже открываются сайты, помогает только перезапуск. Теперь остановка движка завершает все задачи, и места возвращаются.

Мёртвое соединение держало место полчаса

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

📡 Ограничитель новых UDP-сессий не мог сработать по построению

Он стоял в правильном месте и работал как написан, но ёмкость его «ведра» равнялась всей таблице сессий. Такое ведро по определению позволяет одному всплеску занять таблицу целиком, а паузы между всплесками успевали его долить. В журнале: 4400 созданных сессий за окно и три отсеянных, около 800 вытеснений в секунду — живые видеозвонки и загрузки постоянно выбивались ради новых. Ведро уменьшено до восьмой части таблицы.

🐌 Один тумблер сажал скорость в разы, и об этом нигде не было сказано

«Защита от ML-анализа» включает джиттер тайминга. Окно джиттера по умолчанию стояло в значении «применять к каждой отправке всю жизнь соединения» — при диапазоне 5–50 мс это около 27 мс сна перед каждой записью в сеть. На стенде: 20 отправок за 946 мс вместо 60. Отметим прямо: это был наш умолчательный параметр, а не ошибка пользователя.

Теперь джиттер применяется к первым отправкам и на этом прекращается — защита работает против сопоставления задержек на установлении соединения, а это как раз они. Замер на живом туннеле после правки: 10.36 МБ/с без режима против 7.87 МБ/с с ним. Цена стала соразмерной, и при включении режима теперь показывается предупреждение о ней. Сохранённые профили чинятся сами.

🍏 На macOS не работало восстановление после аварийного завершения

Сторожевой процесс, который откатывает маршруты и DNS после жёсткого падения приложения, не клался в macOS-сборку — он был объявлен только для Windows. После аварии мак мог остаться без интернета до следующего запуска. Теперь он входит в сборки macOS и Linux. Портативная сборка для Windows тоже шла без него — исправлено.

🔇 Отказ в подключении не попадал в журнал

Причины отказа показывались в окне и никуда не записывались: в диагностике на их месте была пустота, неотличимая от зависания. Мы сами на этом споткнулись при разборе. Теперь любое неуспешное подключение оставляет строку с причиной.

Чего в этом выпуске нет

Живая приёмка была на macOS. Windows и Linux собраны и проверены тестами, но полевого прогона правок на них не было. Нагрузку на UDP живьём воспроизвести не удалось — эта правка держится на тестах.

И главное: автопереключение на живой сервер по-прежнему выключено по умолчанию. У человека из жалобы было четыре сервера, а клиент полтора часа стучался в один мёртвый. Вернуть пока не готовы: в 1.3.0 такая проверка ложно срабатывала на медленных серверах и по цепочке роняла оценку соседних. Сначала укрепим проверку.

Все платформы (Windows · Linux · macOS · Android для телефона и ТВ), прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/
🔥2💘1
Обновление 1.3.14 — запрос доходит до сервера целиком.

Выпуск вырос из одной жалобы: длинные запросы обрываются на ровном месте. За день журнал с одной машины дал 1003 обрыва, из них 663 — когда сервер не прислал в ответ ни байта. С резкой закономерностью: короткие запросы проходят почти всегда, крупные почти никогда. Причина оказалась у нас.

📤 Клиент считал запрос отправленным, пока байты лежали в его же буфере

Хвост последней отправки так и не уходил на провод. Приложение видело «отправлено 1.8 МБ», сервер получал недописанный запрос и молчал — а через несколько десятков секунд приложение сдавалось по своему таймауту и показывало обрыв. На стенде это выглядит так: из 40 КБ до сервера доходит ноль. Короткие запросы выживали случайно: их дописывал служебный сброс при закрытии соединения, а у запроса, который ждёт ответа, закрытия не наступает. Теперь клиент дописывает буфер, как только поток данных встаёт.

🛡 Защита от ML-анализа на самом ходовом профиле не работала вообще

Ни маскировка размеров пакетов, ни джиттер тайминга, ни ограничитель рукопожатий — ничего. Тумблер горел, эффекта не было. Причина не в одной забытой строке: за то, что считать «включённой защитой», отвечали два разных места, и поддерживалось только одно. Теперь источник один, а пропуск настройки стал ошибкой сборки, а не тихой потерей поведения.

📦 Крупные загрузки теряли данные

Режим непрерывной маскировки отдавал наружу по одному блоку за раз, принимая при этом всё, что дали, и рапортуя это записанным. Из 1.8 МБ до сервера доходило 39 КБ, остальное оседало в памяти. Теперь уходят все готовые блоки — по одной записи на блок, чтобы равномерность размеров, ради которой режим и существует, сохранилась.

Ограничитель соединений вредил вместо защиты

Он придерживал соединение уже после дозвона: открытый сокет висел молча всю очередь — в поле до 26 секунд. Сервер закрывал его по своему таймауту, и рукопожатие уходило в мёртвый сокет. Отсюда залпы обрывов по десятку штук в одну миллисекунду, которые мы принимали за поведение сети. Теперь очередь проходится до дозвона, а у ожидания появился предел: вместо тихого зависания — быстрый понятный отказ. Отдельно: для серверов, записанных доменом, а не адресом, ограничитель не работал вовсе.

⚙️ Настройки перестали расходиться с делом

Уход с пресета «Защита от ML-анализа» не снимал то, что пресет включил, — маскировка оставалась работать молча. Обещанная в прошлом выпуске самопочинка окна джиттера не срабатывала для уже сохранённых профилей. Уровень журнала в настройках вообще ни на что не влиял: выставленный «debug» не давал ни одной подробной строки.

🔍 Диагностика стала пригодной для разбора

В отчёте об обрыве теперь есть адрес и настоящая длительность тишины. Раньше там был безымянный номер соединения и цифра, которая на деле показывала период опроса приложения, а не паузу сервера, — 90 отчётов из 179 несли одинаковое значение. Плановое переподключение больше не выглядит как падение движка: в одном разобранном случае таких ложных «падений» было 25, и ни одно не было аварией. Диагностический отчёт освобождён от служебного шума, который занимал три четверти объёма и оставлял от истории минуты вместо часов.

Все платформы (Windows · Linux · macOS · Android для телефона и ТВ), прямые загрузки и контрольные суммы — на сайте: ypncore.ru/downloads/