Примечания к выпуску Chute iOS

Версия 1.2.2 (382)

Новые возможности:

  • Добавлены цепочки прокси: политика может указать underlying-proxy и выходить к своему серверу через этот прокси, группа политик может направить всех своих участников через один вышестоящий узел, а новая строка «Фронтальный прокси» в разделе «Дополнительно» (global-underlying-proxy) делает то же самое для всех узлов, у которых нет собственного вышестоящего узла. В цепочку можно включить любой транспорт, кроме Tailscale: потоковые протоколы идут внутри потока вышестоящего узла; Hysteria2, TUIC, MASQUE и XHTTP поверх HTTP/3 — через его UDP-ретрансляцию пакетами фиксированного размера 1280 байт; туннели WireGuard и AmneziaWG проходят через него с внутренним MTU 1280 байт; сеансы SSH и AnyTLS открываются поверх него. Цепочка, которая замыкается в цикл, вложена глубже 16 уровней или ссылается на несуществующую политику, отклоняется и никогда не отправляется напрямую
  • Добавлены группы ретрансляции (relay, как в Clash и mihomo): участники выстраиваются в цепочку в том порядке, в каком записаны, — к первому подключение идёт напрямую, к каждому следующему — через предыдущих, а последний подключается к цели. В редакторе групп появился тип Relay; редактор хранит участников в этом порядке и требует не менее двух
  • Добавлены случайные группы (random, как в Shadowrocket): для каждого соединения участник выбирается случайно, а для UDP — только среди участников, которые передают UDP. Переключать в такой группе нечего, поэтому её нет там, где выбирается политика группы, а редактор групп сохраняет её именно как случайную группу
  • На панель мониторинга и в веб-консоль добавлена цепочка прокси: в подробностях запроса и в списке UDP указан каждый переход (Airport/HK-01 → Landing), а экспорт HAR сохраняет этот путь
  • В редакторы провайдеров правил и прокси добавлена настройка «Загрузка через»: policy= загружает список через выбранную политику, а если политики с таким именем нет, загрузка завершается ошибкой, а не идёт напрямую
  • В редактор Shadowsocks добавлен UDP поверх TCP — udp-over-tcp, версия 1 или 2, — так что UDP прокси идёт внутри его TCP-соединений и работает даже в цепочке, вышестоящий узел которой не передаёт UDP
  • Добавлен UDP для VMess и VLESS: раньше отправленный в них UDP сразу отклонялся (срабатывал udp-policy-not-supported-behaviour, по умолчанию REJECT); теперь он идёт по отдельному соединению на каждый адрес назначения, как в mihomo, sing-box и Shadowrocket
  • В «Перезапись тела» добавлен jq: http-request-jq и http-response-jq выполняют полноценную программу jq над JSON-телом, а в редакторе появилось поле «ПРОГРАММА JQ»; о недопустимой программе сообщается, и её правило пропускается, а если тело не в формате JSON, программа завершается ошибкой или её вывод пуст, тело остаётся без изменений
  • Добавлены общие скрипты: у скрипта type=generic нет автоматического триггера, и он запускается только по требованию — кнопкой «Запустить» в его редакторе или через GET /api/scripts и POST /api/scripts/run. В редакторе скриптов также появилось поле «Имя события»: доставляется только network-changed, поэтому скрипт события, указавший любое другое событие, никогда не запустится
  • Добавлены отдельные пулы DNS: direct-dns-server разрешает домены, которые правило направляет в DIRECT, proxy-dns-server разрешает имена хостов самих ваших прокси-серверов, а к fallback-dns-server обращаются, когда основные серверы не дают ответа; для каждого пула резервом служат глобальные серверы, и в редакторе DNS у каждого своя строка
  • Для вышестоящих DNS-серверов, включая DoQ и DoH3, добавлены #proxy / #proxy=<policy>: QUIC-резолвер работает через UDP-ретрансляцию политики; если политика не может передавать UDP, этот сервер пропускается, а не опрашивается напрямую; обычный резолвер, направленный через политику, переходит на DNS поверх TCP; а для путей, где DNS поверх UDP отбрасывается, принимаются простые серверы tcp://
  • Добавлены encrypted-dns-follow-outbound-mode, allow-dns-svcb — пока он выключен, на запросы HTTPS и SVCB приходит пустой ответ, — и параметры отдельных серверов #h3, #skip-cert-verify, #disable-ipv4, #disable-ipv6 и #disable-qtype=
  • Расширено «Локальное сопоставление DNS»: запись [Host] сохраняет все перечисленные в ней серверы и опрашивает их параллельно, сопоставляет одному домену несколько адресов, может использовать в качестве ключа набор правил (RULE-SET:<url>), запускает для этого домена скрипт type=dns (script:<name>) и принимает ssid:<name>, чтобы сопоставление действовало в определённой сети
  • Добавлены уведомления правил: любое правило, включая FINAL, принимает notification-text= и notification-interval= и при совпадении показывает уведомление — не чаще одного раза за интервал для каждого правила; уведомления подчиняются переключателю «Разрешить уведомления» в приложении, а нажатие на уведомление открывает содержащийся в нём URL
  • Добавлено FINAL,<policy>,dns-failed: если имя не удаётся разрешить, соединение не закрывается, а открывается через политику FINAL с разрешением имени на удалённой стороне
  • Семейство REJECT стало полноценными политиками — REJECT-DROP, REJECT-NO-DROP, REJECT-TINYGIF, REJECT-IMG, REJECT-DICT, REJECT-ARRAY, REJECT-200 и REJECT-VIDEO: каждая отвечает на HTTP-запрос телом, описанным в документации, а хост, отклонённый более 50 раз за 30 секунд, переводится на REJECT-DROP; они есть в выборе политики, который теперь записывает токены DIRECT / REJECT / PROXY там, где раньше записывалась локализованная метка, и исправляет метки, оставленные более старой сборкой
  • Добавлены встроенные наборы правил: разделы [Ruleset Name] показаны в редакторе конфигурации отдельно, редактируются построчно, и на них можно ссылаться как RULE-SET,<name>, в том числе друг из друга — до восьми уровней вложенности, циклы отклоняются
  • Добавлено семейство SSID: переопределения DNS из [SSID Setting] применяются в зависимости от сети — имена, BSSID:, TYPE:WIFI / CELLULAR / WIRED, ROUTER:, имена в кавычках и с подстановочными знаками — и при смене сети очищают кэш предыдущего резолвера; группы политик ssid и subnet выбирают участников по текущей сети, правила SUBNET проверяют её, а suspend=true теперь останавливает туннель: запись с именем сети или TYPE: становится правилом отключения по требованию, запись BSSID:, ROUTER: или с подстановочными знаками приостанавливается самим расширением, и расширение предупреждает, если «Всегда включён» вернёт туннель обратно
  • Добавлены диапазоны и сравнения для DEST-PORT, SRC-PORT и IN-PORT (80-81, >=50000, списки через /), значения HOSTNAME-TYPE — IPv4, IPv6, DOMAIN и SIMPLE, — а также рабочие правила IN-TYPE, IN-USER и IN-NAME: теперь они срабатывают на реальном трафике, а не только при пробном прогоне
  • Добавлены настройки MitM: расшифровка HTTP/2 (h2), блокировка QUIC к расшифровываемым хостам, чтобы HTTP/3 не обходил расшифровку (auto-quic-block), исключение хостов из расшифровки и ключевые слова списка хостов <ipv4-address>, <ipv6-address> и <simple-hostname>
  • Добавлена маршрутизация QUIC по домену: имя берётся из QUIC Initial клиента, ClientHello, разбитый на несколько пакетов Initial, собирается заново, а поток придерживается, пока имя не станет известно, — поэтому правила DOMAIN работают и для соединений HTTP/3, открытых по адресу без доменного имени
  • Добавлен icmp-auto-reply, включённый по умолчанию: на ping внутри туннеля приходит локальный ответ — по IPv4 и IPv6 — вместо тайм-аута
  • Добавлен tun-included-routes: перечисленные CIDR добавляются к маршрутам туннеля после маршрута по умолчанию, поэтому диапазон, который иначе забрала бы собственная подсеть интерфейса Wi-Fi или другой VPN (система предпочитает более конкретный маршрут), идёт через Chute. Записи, которые отрезали бы сам туннель (loopback, собственные подсети туннеля, link-local, многоадресные, широковещательные, длина префикса 0), отклоняются с записью в журнал, частные диапазоны принимаются с предупреждением, а изменённый список применяется при перезагрузке конфигурации без перезапуска туннеля
  • Расширен импорт: правила GEOSITE и категорийные правила GEOIP из mihomo разворачиваются в работающие наборы правил, группы policy-path создают провайдера с update-interval, фильтрами и списками включения, SUB-RULE из mihomo разворачивается в правила AND, detour из sing-box и dialer-proxy из mihomo импортируются как цепочки, allowed-ips WireGuard компилируется и соблюдается, поэтому раздельный туннель больше не забирает себе все адреса назначения, а interface= / allow-other-interface= политики привязывает её соединения к одному сетевому интерфейсу
  • Расширен API скриптов: $httpAPI обращается к собственным маршрутам движка без открытия сокета, $httpClient учитывает policy, read-etc-hosts передаёт файл hosts в DNS, а $event.name сообщает, какое событие сработало на самом деле
  • Расширены настройки имитации ответов — тело может быть текстом, файлом, base64 или GIF 1×1, с кодом состояния и проверкой, — а для перезаписи URL и заголовков добавлены таблицы типов с режимом регулярного выражения для замены значения заголовка

Улучшения:

  • Теперь для работы Chute требуется iOS 15 или новее
  • Все структурированные редакторы теперь сохраняют то, чего не показывают: ключи, которые редактор не отображает, — прочие параметры правила, подправила AND / OR / NOT, остальные адреса записи [Host], прочие строки заголовка модуля — переносятся как есть, поэтому открытие и сохранение конфигурации больше её не переписывает, а запись неизвестного редактору типа редактируется как текст
  • Редакторы перезаписи тела, перезаписи заголовков, перезаписи URL, Map Local, имитации ответов и скриптов записывают то, что читает движок: скрипт сохраняется со своим type=, значение JSONPath сохраняет свой тип, а Map Local сохраняет status-code, data-type и заголовки
  • Импорт опубликованного профиля больше не теряет маршрутизацию: dns-server принимает URL шифрованного DNS, строки слушателей принимают пароль, участники группы в кавычках больше не теряются, логические правила sing-box преобразуются так, как описано в документации, участники PASS отбрасываются, а не превращаются в REJECT, а неподдерживаемый протокол или тип группы вызывает предупреждение, а не выводит из строя всю группу, — в импортированных профилях mihomo правил, которые никогда не могут сработать, раньше было большинство, а теперь почти не осталось
  • Наборам правил нужно гораздо меньше памяти: провайдеры загружаются по очереди, а не перестают загружаться совсем после 35-го, пиковое потребление памяти при преобразовании снизилось на 62–73 %, число индексных соединений ограничено, и при нехватке памяти они освобождаются, а полезная нагрузка, слишком большая для устройства, отклоняется с указанием причины в статусе набора правил
  • Ограничения ресурсов не дают слишком большой конфигурации вывести расширение туннеля за предел памяти: на iOS ограничены хранилище сертификатов MitM, очередь записи трафика, размер и число скриптов, бюджет запросов консоли, число узлов Tailscale и кэш DNS
  • Проверка задержки использует правильную цель: учитываются test-url и test-timeout группы, proxy-test-url профиля, а также собственные test-url и expected-status участника, а узел в цепочке проверяется через свою цепочку, а не напрямую
  • Веб-консоль и API управления: правило, добавленное во время работы, больше не остаётся после перезагрузки того же профиля, курсоры журнала только растут, поэтому опрос не пропускает записи, а в подробностях соединения указана цепочка прокси
  • ShadowTLS теперь проверяет сертификат сайта-прикрытия, если задан sni=, как это делает sing-box; skip-cert-verify=true отключает проверку (раньше этот параметр игнорировался, и сертификат не проверялся вовсе), а без sni= проверка пропускается с предупреждением
  • Загрузки и подписки: каждая загрузка сохраняется в отдельный файл, а формат определяется по содержимому, поэтому обновление больше не перечитывает свою первую загрузку и не применяет профиль другого адреса; профиль, преобразованный из Clash или sing-box, сохраняется как .conf и получает имя по тем же правилам, что и во всех приложениях Chute; если имя занято, к нему добавляется номер вместо перезаписи
  • Работа с конфигурациями: сохранение под другим именем сначала запрашивает подтверждение, перезагружает туннель, если перезаписывает используемый файл, и больше не удаляет файл, из которого была открыта конфигурация; «Синхронизация из iCloud» засчитывает уже установленные конфигурации в лимит лицензии; скрытые группы политик не показываются в списках «Глобальный» и select, но движок по-прежнему может к ним обращаться; «Глобальный» всегда показывает используемую группу
  • Страница загрузки по Wi-Fi сохраняет расширение полученного файла, отклоняет занятое имя с указанием причины и передаёт имена с символами вне ASCII так, как предписывает RFC 6266, поэтому 上传的配置.conf приходит именно с этим именем
  • Новые настройки, сообщения и уведомления доступны на всех восьми встроенных языках, а уведомления туннеля сообщают причину его остановки

Исправления ошибок:

  • Исправлено: Hysteria2 отбрасывал любую UDP-датаграмму, не помещавшуюся в один кадр QUIC DATAGRAM, из-за чего HTTP/3 приложения не проходил и откатывался на TCP; теперь большие датаграммы при отправке разбиваются на части, а разбитые ответы сервера собираются обратно
  • Исправлено: перезапущенный туннель повторно использовал первый локальный порт и номера последовательности TCP прошлого запуска, и пир WireGuard, ещё державший старое соединение, отвечал на них сбросом; теперь TCP-стек туннеля инициализируется из системного источника случайных чисел и выбирает начальные номера последовательности так, как описывает RFC 6528
  • Исправлено: XHTTP через туннель зависал после первой записи приложения, поэтому рукопожатие TLS не завершалось, а выгрузка отправляла только один фрагмент; теперь каждая запись завершается по порядку, а если выгрузки ждут больше 1 МБ, следующая запись ожидает, пока очередь не освободится
  • Исправлено: PROTOCOL,TCP и PROTOCOL,UDP никогда не срабатывали; теперь транспорт определяется для каждого входящего соединения, так что привычный способ блокировать QUIC правилом AND работает
  • Исправлено: RULE-SET и DOMAIN-SET внутри AND / OR / NOT всегда давали «ложь» — из-за чего NOT,((RULE-SET,…)) отклонял и местный трафик, — а SCRIPT внутри логического правила всегда давал «истину»
  • Исправлено: RULE-SET,<name>,<policy>,no-resolve терял no-resolve при записи по имени, GEOIP и IP-ASN UNKNOWN никогда не срабатывали, status-code= в Map Local игнорировался при HTTP/2, а перезапись заголовков ответа при обычном HTTP сравнивалась только с путём, поэтому шаблон, написанный для полного URL, не мог сработать никогда
  • Исправлено: block-quic принимал только одно из значений Surge, а любое другое значение означало, что QUIC вообще не блокируется
  • Исправлен API скриптов: $klne.getPolicyGroups() и selectPolicy() больше не выбрасывают исключение при первом вызове, reloadConfiguration() действительно перезагружает, getActiveConnections() сообщает настоящие хост, порт и id, closeConnection() действительно закрывает, а скрипт перед отправкой с requires-body наконец получает тело
  • Исправлено: [Replica] keyword-filter сравнивал имя хоста целиком, вместо того чтобы проверять, содержит ли оно ключевое слово, поэтому keyword-filter = google не охватывал www.google.com
  • Исправлено: правила PROCESS-NAME, PROCESS-PATH и PROCESS-NAME-REGEX срабатывали на трафик браузера на iOS, где они сравнивали не имя процесса, а название браузера как продукта; эти правила работают только на macOS и на iOS больше ни с чем не совпадают
  • Исправлено: сохранённый профиль панели мониторинга считывался как объект неверного типа, и приложение падало при каждом касании; после перетаскивания или удаления строк в списке с дубликатами таблица расходилась со своими данными; уже закрытый экран получал обратный вызов, что приводило к сбоям
  • Исправлено: автообновление подписки блокировало главный поток на 30 секунд, и если приложение уходило в фон посреди обновления, watchdog его завершал; переключатель в Пункте управления всегда срабатывал с ошибкой, потому что у виджета не было разрешения управлять VPN; «Картинка в картинке» открывалась дважды; продолжение виджета возобновлялось дважды
  • Исправлены ошибки загрузок и имён: сохранённый файл загрузки заново считывался при следующем обновлении; адрес получал профиль другого адреса, если оба предлагали одно и то же имя; импорт или копирование удаляли в iCloud файл, из которого читали; выгруженный файл терял всё после первой точки в имени; подписка, адрес которой заканчивался одним лишь расширением, сохранялась как скрытый файл; правка сохранялась поверх доступной для чтения конфигурации без запроса
  • Исправлено: ссылка chute:// — например, из автоматизации «Быстрых команд» — ничего не делала, если Chute ещё не был запущен; теперь она обрабатывается и при холодном запуске
  • Различные улучшения стабильности и производительности

Версия 1.2.0 (351)

Новые возможности:

  • В панель управления добавлен адрес веб-консоли: строка «Веб-консоль» показывает хост, а нажатие предлагает «Открыть», «Копировать адрес» и «Копировать токен доступа» — «Открыть» передаёт токен в URL, так что вход происходит без ввода
  • В конец раздела «ЛОКАЛЬНЫЙ ПРОКСИ» панели управления добавлен «Диагностический пакет среды выполнения»: работающий движок собирает очищенный архив (конфигурация, снимок состояния, события этого запуска, загруженные правила и политики, DNS, трафик и части журнала) и передаёт его в меню «Поделиться»; туннель должен быть подключён, но external-http-controller не нужен
  • В Настройки → ДИАГНОСТИКА добавлен «Офлайн-диагностический пакет», который приложение собирает без работающего туннеля: сведения об устройстве и приложении, VPN-профиль в том виде, в каком его хранит iOS, сводка выбранной конфигурации и её ошибок разбора, три страницы диагностики в виде текста, очищенное начало конфигурации, то, как завершился предыдущий запуск, хвосты журнала последнего сеанса и ожидающие отправки отчёты о сбоях
  • В экран сеанса добавлена функция «Поделиться журналом», которая предлагает все части журнала сеанса
  • В сведения о сеансе добавлена атрибуция перезаписи: раздел «ПОЛИТИКА» теперь рядом с правилом и политикой, направившими запрос, называет правило перезаписи URL, заголовков или тела либо имитации ответов, которое его изменило
  • Добавлено уведомление «Изменение сетевого адреса», заменяющее «Изменение выходного IP»: оно показывает собственные адреса IPv4 и IPv6 этого устройства на физическом канале, по строке на семейство, и помечает IPv4 за NAT; IPv6 и маршрутизируемый IPv4 читаются локально, и только IPv4 за NAT требует одного STUN-запроса
  • Добавлен французский как встроенный язык
  • Добавлена переработанная страница загрузки по Wi-Fi в стиле веб-консоли, локализованная на девять языков
  • В веб-консоль добавлены вкладки «Текущие» и «История», вид подробностей (совпавшее правило, источник правила, политика, адаптер, источник DNS, процесс, причина закрытия, тела запроса и ответа), страница «Правила», показывающая, какие правила перезаписи срабатывали, и страница «Диагностика» (объём памяти, CPU, время работы, потоки, как завершился предыдущий запуск, счётчик отказов, журнал событий, снимок Tailscale и пробы ping / DNS / выход / URL-тест); консоль теперь полностью переведена на все девять языков
  • Добавлены точки входа HTTP-API управления: /api/health, /api/events, /api/tailscale, пробы под /api/diagnostics/, /api/connections/export?format=har, /api/diagnostics/bundle, управление правилами перезаписи и хостами MitM через /api/rewrites и /api/mitm/hosts, POST /api/rules/match для пробного прогона запроса по таблице правил (сообщаются оба прохода DNS), GET|PUT /api/loglevel для смены уровня журнала и разделов подсистем без перезагрузки и POST /api/config/validate для проверки профиля без его применения

Улучшения:

  • HTTP-API управления больше не открыт без аутентификации, когда в конфигурации нет external-http-secret: движок генерирует токен, который панель управления показывает и копирует; чтобы сохранить анонимный доступ, задайте external-http-secret = none; кроме того, адрес прослушивания с подстановкой больше не считается loopback
  • Сопоставление правил на больших списках стало значительно быстрее: содержимое RULE-SET и DOMAIN-SET индексируется при загрузке или восстановлении вместо потокового просмотра на каждое соединение, а таблица правил, состоящая только из доменных правил, сопоставляется по хешированному плану — для списка в 50 тысяч строк один поиск сокращается примерно с 94 мс до менее 2 мс при около 100 КБ памяти на индекс
  • UDP-потоки сопоставляются один раз: решение по потоку запоминается на 60 секунд, так что последующие датаграммы пропускают оба прохода сопоставления и DNS-запрос между ними
  • Лучшее восстановление после смены сети: туннели, исходный адрес которых больше не существует ни на одном интерфейсе, закрываются, а не держат приложения до тайм-аута простоя; смена пути того же типа (переподключение к сотовой сети) теперь замечается, а путь, который принимает соединения, но не передаёт данные, сообщается как «чёрная дыра»
  • Журналы сеансов записываются частями по 8 МБ (до восьми на запуск, самые старые удаляются), каждая начинается с заголовка с именем запуска и временем его начала, так что длинный сеанс больше не порождает один файл, слишком большой для получения; просмотрщик журнала загружает все части по порядку и продолжает следить за той, что пишется
  • Движок держит маркер запуска во время работы и при следующем старте сообщает, завершился ли предыдущий запуск штатно или был убит — в заголовке журнала, в /api/status и в обоих диагностических пакетах
  • Экспорт HAR теперь собирается движком из записанных кадров, поэтому коды состояния, метки времени и тайминги реальны, а каждая запись несёт под _kl выбранную политику, совпавшее правило и срабатывания перезаписи; «Экспорт HAR» на панели и в подробностях соединения используют его
  • Лицензия нужна только для трёх функций, которые продаёт страница покупки, — Расширенное управление сервером, MitM и Запись трафика; Определение протокола, Optimus DNS, Внешний доступ, HTTP API, Веб-консоль и «Очистить кэш DNS» её больше не требуют
  • Панель управления следует за туннелем: сбрасывает состояние при остановке туннеля, повторно запрашивает при переподключении и предлагает адрес консоли только пока страница действительно обслуживается
  • Редактор конфигурации блокирует оба переключателя слушателей, пока включён allow-wifi-access, поскольку движок сам расширяет оба слушателя, и восстанавливает настроенные интерфейсы, когда флаг выключен
  • Если «Восстановить покупку IAP» ничего не находит, предупреждение предлагает «Открыть руководство», открывающее кроссплатформенные инструкции по лицензии на языке приложения; текст о покупке теперь говорит, что одна покупка покрывает три iPhone или iPad и три Apple TV
  • Список узлов tailnet теперь выглядит как остальные списки — вставная группировка, строка «Нет элементов» для пустого раздела — и заново запрашивает состояние узлов при каждом показе
  • При loglevel = info объёмный поток, передавший не менее 1 МиБ, при закрытии пишет одну строку о том, сколько он ждал удалённую сторону и сколько — приложение
  • Страницы диагностики предлагают «Копировать» только в строках, где есть что копировать

Исправления ошибок:

  • Исправлен MitM в режиме TUN: хост, совпавший с правилом MitM, зависал до тайм-аута, поэтому перезапись заголовков, перезапись тела, имитация ответов и расшифрованные записи для HTTPS никогда не применялись к трафику приложений (трафик через локальный HTTP/SOCKS5-прокси не затрагивался)
  • Исправлено бездействие allow-wifi-access: локальные слушатели HTTP и SOCKS5 оставались на loopback, и ничто в Wi-Fi не могло до них достучаться; теперь флаг (и allow-lan sing-box при импорте) расширяет оба слушателя, а его отключение перепривязывает их
  • Исправлена перезапись заголовка ответа через MitM HTTP/1.1, которая записывалась как применённая, тогда как клиент получал исходный заголовок, и никогда не совпадала с правилом, написанным по полному URL
  • Исправлен Mock Response, который строил ответ из заголовка запроса — строка запроса вместо строки состояния, перенесённые заголовки запроса, неверный Content-Length — и в открытом HTTP отправлял перед ним заголовок исходного сервера
  • Исправлены IP-правила с no-resolve (IP-CIDR, GEOIP, IP-ASN), пропускавшие соединение к IP-литералу, когда определение протокола подставляло для него заголовок Host или имя из обратного DNS; определённый IP-литерал больше не совпадает и с правилами DOMAIN, так что вердикт не зависит от того, включено ли определение
  • Исправлены строки RULE-SET с опциями после содержимого (GEOIP,CN,no-resolve, DOMAIN,example.com,force-remote-dns), которые отбрасывались или ни с чем не совпадали, и подправила AND/OR/NOT, терявшие no-resolve
  • Исправлено правило HOSTNAME-TYPE, которое никогда не совпадало: тип записи теперь A для соединения, установленного по IPv4, и AAAA по IPv6, и подсказка в редакторе правил об этом говорит
  • Исправлено: домен, направленный на прокси правилом AND/OR/NOT с доменным подправилом, всё равно по-настоящему разрешался DNS-сервером, из-за чего ответ DNS и решение о маршрутизации расходились
  • Исправлено чтение IPv6-литерала в квадратных скобках в определённом заголовке Host ([2001:db8::1]:8080) как имени хоста [2001
  • Исправлено: запуск туннеля с группой select, установленной не на первого участника, публиковал уведомление «группа политик переключена», а перестроения после запуска вызывали предупреждение о дребезге; группа без запомненного выбора теперь следует default= профиля, а не принудительно ставится на первого участника
  • Исправлено зависание приложения при 100 % CPU с растущей памятью при открытии панели управления после длительной работы туннеля
  • Исправлен экспорт HAR, писавший неверные коды состояния и метки времени 1970 года, и экспорт из подробностей соединения, создававший файл, который не открывал ни один просмотрщик HAR
  • Исправлено: [Replica] hide-crashlytics-request разбирался, но никогда не применялся к записям
  • Исправлено отклонение external-http-controller = *:9090 и :::9090 — обоих документированных написаний, — из-за чего контроллер молча не запускался
  • Исправлено: $klne.startURLTest() никогда не запускал тест задержки, а URL-тест несуществующей политики сообщал правдоподобную неудачу вместо ошибки
  • Исправлен редкий сбой транспорта XHTTP под нагрузкой
  • Исправлены повторно сериализованные ответы HTTP/1.1, уходившие с пустой фразой причины
  • Исправлен экран лицензии, помечавший лицензию, выданную для tvOS или Android, как «Неизвестно», а сертификат, который это приложение не может держать, — как пакет iOS & macOS & tvOS
  • Исправлена неработающая ссылка на App Store на экране «О программе»; «Оценить» теперь открывает форму отзыва
  • Различные улучшения стабильности и производительности

Версия 1.1.9 (322)

Новые возможности:

  • Добавлен транспорт XHTTP в редактор политик — переключатель, режим (auto, packet-up, stream-up, stream-one), путь и хост — для Trojan, VMess и VLESS
  • Добавлены методы шифрования Shadowsocks AEGIS-128L и AEGIS-256
  • Добавлены настройки ECH (Encrypted Client Hello) для TLS-политик — переключатель, закреплённая конфигурация ECH (ech-config) и переопределение прикрывающего имени (ech-public-name)
  • Добавлен отпечаток клиента (uTLS) для каждой политики, а также значение по умолчанию для всего профиля
  • Добавлена поддержка AmneziaWG, варианта WireGuard с обфускацией трафика, вместе с редактором его параметров
  • Добавлен импорт профилей Clash и sing-box из URL-подписок, файлов и загрузок по Wi-Fi
  • Добавлена страница отчёта об ошибках конфигурации с возможностью копирования содержимого вместо блокирующих предупреждений
  • Добавлен постквантовый гибридный обмен ключами X25519MLKEM768 для TLS 1.3

Улучшения:

  • При сохранении редактор политик теперь сохраняет существующие параметры, недоступные для редактирования в текущем интерфейсе (ECH, ALPN, закрепление сертификата, test-url, udp-relay)

Исправления ошибок:

  • Исправлен сбой туннеля из-за некорректных правил IP-CIDR
  • Исправлена настройка SSH idle-timeout, которая записывалась под неверным ключом и отбрасывалась при сохранении
  • Исправлены правила первичной настройки, размещавшие имя политики после no-resolve, что могло нарушать правила на основе IP
  • Различные улучшения стабильности и производительности

Версия 1.1.8 (300)

Новые возможности:

  • Добавлен Tailscale как встроенный тип прокси: настройте учётную запись Tailscale прямо в Chute, присоединитесь к tailnet и направьте трафик через узлы Tailscale — без отдельного клиента
  • Добавлен редактор раздела Tailscale: безопасный ввод auth key, проверка соединения, список узлов tailnet и переключение узла выхода из приложения
  • Добавлена панель управления Tailscale: отображает состояние узла в реальном времени (онлайн/офлайн, IP, последний раз замечен) и позволяет мгновенно переключать узел выхода
  • Добавлены системные уведомления для диагностики прокси, включая изменения исходящего IP и события подключения Tailscale, с переключателями по типам в настройках
  • Добавлен тип прокси MASQUE в редакторе политик

Улучшения:

  • Увеличена пропускная способность TUN на iOS
  • Улучшены стабильность соединения и пропускная способность Tailscale и WireGuard
  • Улучшена стабильность UDP-туннеля и точность статистики трафика
  • Улучшена стабильность при остановке VPN — снижено число случаев аварийного завершения соединения системой
  • Повышена надёжность переключения языка
  • Имена файлов конфигурации очищаются, чтобы избежать ошибок загрузки из-за недопустимых символов пути

Исправления ошибок:

  • Исправлена несогласованность правил on-demand между запуском и остановкой VPN
  • Исправлен редкий сбой при одновременном переключении языка
  • Исправлена обработка смены сети, чтобы избежать лишних переподключений VPN
  • Различные улучшения стабильности и производительности

Версия 1.1.7 (290)

Новые возможности:

  • Добавлена система JavaScript-скриптинга: запуск пользовательских скриптов для модификации запросов/ответов, разрешения DNS, пользовательского сопоставления правил и запланированных задач
  • Добавлена перезапись тела: поиск и замена содержимого тела HTTP-запросов/ответов с использованием regex (с поддержкой групп захвата) или выражений JSONPath
  • Добавлена поддержка протокола ShadowTLS
  • Добавлен транспорт gRPC для протоколов VMess и VLESS
  • Добавлена поддержка DNS-over-QUIC (DoQ) и DNS-over-HTTP/3 (DoH3)
  • Добавлена поддержка DNS-over-TLS (DoT)
  • Добавлены HTTP Control API и веб-интерфейс для мониторинга и управления прокси во время выполнения
  • Добавлена система модулей (.sgmodule) для модульного управления конфигурацией
  • Добавлен провайдер прокси для динамического обновления списков прокси
  • Добавлены отчеты об уведомлениях: обнаружение сбоев соединений, недоступности прокси, всплесков трафика, сбоев обновления конфигурации и переключений групп политик; отправка событий для системных уведомлений
  • Добавлена имитация ответов: возврат имитированных данных на совпадающие запросы без обращения к реальному серверу
  • Добавлена группа политик LoadBalance со стратегиями round-robin, consistent-hashing и sticky-sessions
  • Добавлены новые режимы перезаписи URL: reject-200, reject-img, reject-dict
  • Добавлена поддержка направления ответа в перезаписи заголовков
  • Добавлен тип правила PROTOCOL с 10 значениями типов протоколов
  • Добавлен тип правила SCRIPT для пользовательского сопоставления на основе JavaScript
  • Добавлены опции extended-matching и requires-resolve для правил
  • Добавлена многослойная схема заполнения AnyTLS
  • Добавлены методы шифрования SS2022 (2022-blake3-aes-128/256-gcm, chacha20-poly1305)
  • Добавлена поддержка управляемой конфигурации
  • Добавлена поддержка реплики для репликации конфигурации
  • Добавлен интерфейс конфигурации WireGuard
  • Добавлена глобальная опция interrupt-exist-connections

Улучшения:

  • Группы политик теперь поддерживают опции expected-status, hidden, idle-timeout и lazy
  • Улучшена перезапись URL с поддержкой переменных шаблона в формате Map Local
  • Улучшен DNS-сервер с поддержкой протоколов DoQ, DoH3 и DoT
  • Расширена система правил с 6 до более чем 30 типов правил с полным покрытием

Исправления ошибок:

  • Исправлено значение по умолчанию IPv6 (false -> true)
  • Исправлено значение по умолчанию уровня логирования (notify -> warning), добавлены уровни none и fatal
  • Исправлена согласованность именования Shadowsocks/ShadowsocksR во всей документации
  • Различные улучшения стабильности и производительности

Версия 1.1.6 (256)

Новые возможности:

  • Добавлена поддержка протокола Hysteria2
  • Добавлена поддержка протокола WireGuard
  • Добавлена поддержка протокола VLESS REALITY
  • Добавлен анализатор протоколов для трафика TUN
  • Добавлена поддержка правила IP-ASN
  • Добавлена поддержка логических правил AND/OR/NOT

Исправления ошибок:

  • Исправлены проблемы с памятью UDP-адаптера
  • Оптимизирована производительность сопоставления Rule-Set и Domain-Set
  • Устранены другие мелкие ошибки и проблемы стабильности
  • Исправлен сбой просмотра лицензии

Версия 1.1.5 (245)

Новые возможности:

  • Добавлена поддержка протокола TUIC
  • Добавлена поддержка Shadowsocks 2022 (SS2022)
  • Введена конфигурация туннеля
  • Улучшено отображение журнала в сессии

Исправления ошибок:

  • Исправлена проблема UDP-адаптера
  • Оптимизирована производительность сопоставления Rule-Set и Domain-Set
  • Устранены другие мелкие ошибки и проблемы стабильности

Версия 1.1.2 (231)

Новые возможности:

  • Интерфейс iOS 26

Исправления ошибок:

  • Исправлен ответ DNS IPv6 для приложения Gemini
  • Поддержка содержимого комментариев в RULE-SET
  • Исправлен статус кнопки переключения Widget Center

Версия 1.1.1 (218)

Новые возможности:

  • Поддержка политики AnyTLS
  • Поддержка Domain-Set
  • Поддержка удаленных Rule-Set

Улучшения:

  • Перестроен туннель для лучшей производительности
  • Полностью протестирован UDP-туннель

Исправления ошибок:

  • Исправлены утечки памяти

Версия 1.1.0 (210)

Исправления ошибок:

  • Исправлены некоторые ошибки

Версия 1.0.9 (199)

Новые возможности:

  • Кнопка переключения в центре управления iOS 18

Исправления ошибок:

  • TUN с IPv6 теперь перенаправляет в туннель IPv6, чтобы исправить проблемы с некоторыми сервисами

Версия 1.0.8 (188)

Новые возможности:

  • Поддержка политики SSH
  • Добавлено подключение удаленной панели

Улучшения:

  • Изменена сеть TUN на 198.18.0.0/15 для избежания проблем с внутренними адресами IPv4
  • Обновлены некоторые тексты

Исправления ошибок:

  • Исправлены проблемы DNS

Версия 1.0.7 (167)

Новые возможности:

  • Режим PIP
  • Синхронизация iCloud для файлов конфигурации
  • Добавлен удаленный менеджер конфигурации tvOS

Исправления ошибок:

  • Исправлен Vmess с Websocket

Версия 1.0.6 (160)

Новые возможности:

  • Новый интерфейс
  • Добавлена загрузка конфигурации через Wi-Fi
  • Добавлены диагностика сети и диагностика прокси
  • Добавлена функция сброса конфигурации VPN
  • Добавлена поддержка пакетов ICMP (Ping)
  • Добавлена проверка статуса VPN

Улучшения:

  • Улучшен UI/UX редактирования конфигурации
  • Обновлен MTU до 4000

Исправления ошибок:

  • Исправления ошибок
  • Исправлена настройка IPv6 TUN

Версия 1.0.5 (147)

Новые возможности:

  • Добавлена поддержка протокола VLESS
  • Добавлена поддержка XTLS с VLESS
  • Добавлен просмотрщик сессий для просмотра прокси-сессий и журналов
  • Вы можете просматривать UDP-соединения с помощью приложения Chute Dashboard для macOS

Улучшения:

  • Улучшено редактирование конфигурации
  • Улучшен локальный DNS-сервер для избежания загрязнения DNS
  • Улучшена ретрансляция UDP

Исправления ошибок:

  • Исправлено отображение IPv6
  • Исправлен DNS-сервер

Версия 1.0.4 (143)

Новые возможности:

  • Поддержка локального HTTP/Socks5 прокси-сервера
  • Полная поддержка IPv6
  • Добавлена поддержка syslib для DNS-сервера

Улучшения:

  • Улучшено редактирование конфигурации
  • Добавлен переключатель Optimistic DNS
  • Улучшен локальный DNS-сервер

Исправления ошибок:

  • Исправлено: адрес локального прокси-сервера iOS мог препятствовать доступу приложения к сети
  • Исправлен DNS-сервер

Версия 1.0.3 (138)

Новые возможности:

  • Поддельный IP для избежания отравления кэша DNS
  • Загрузка файла конфигурации из интернета или QR-кода

Исправления ошибок:

  • Исправлена проблема редактирования правила FINAL

Версия 1.0.2 (130)

Новые возможности:

  • Поддержка iPad
  • Поддержка схемы chute:// и x-callback-url
  • Действие Dashboard
  • Поддержка iPhone 12
  • Перестроен DNS-сервер для лучшей производительности и стабильности

Исправления ошибок:

  • Улучшена стабильность TCP
  • Перестроена блокировка TCP для улучшения производительности
  • Улучшена стабильность UDP
  • Исправлен сбой конфигурации

Версия 1.0.1 (111)

  • Исправлен сбой расширения обмена WeChat
  • Исправлена поддержка IPv6
  • Обновлена проверка завершения HTTP

Версия 1.0.0 (101)

  • Первый выпуск
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-10-01 17:54:51

Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.

results matching ""

    No results matching ""