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

Версия 1.1.5 (233)

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

  • Добавлены цепочки прокси: политика может указать «Вышестоящий прокси» (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. Переключать в такой группе нечего, поэтому её нет ни в строке меню, ни на вкладке «Прокси», а редактор групп сохраняет её именно как случайную группу
  • В окно сведений о соединении и в веб-консоль добавлена цепочка прокси: указан каждый переход (Airport/HK-01 → Landing), «Копировать подробности» включает её, поиск по соединениям находит по ней, а экспорт HAR сохраняет этот путь
  • Для провайдеров правил и прокси добавлен policy=: список загружается через эту политику, а если политики с таким именем нет, загрузка завершается ошибкой, а не идёт напрямую. В редакторах на Mac поля для него пока нет, но при сохранении он не теряется
  • В редактор 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» и «Ответ jq» с полем «ПРОГРАММА JQ»; о недопустимой программе сообщается, и её правило пропускается, а если тело не в формате JSON, программа завершается ошибкой или её вывод пуст, тело остаётся без изменений
  • Добавлены общие скрипты: у скрипта type=generic нет автоматического триггера, и он запускается только по требованию — кнопкой «Запустить» в редакторе скриптов или через GET /api/scripts и POST /api/scripts/run. В редакторе скриптов также появилось поле «Имя события»: скрипты событий получают network-changed, engine-started и profile-reloaded, а скрипт, указавший любое другое событие, отмечается в журнале и никогда не запускается
  • Добавлены отдельные пулы 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>, чтобы сопоставление действовало в определённой сети; редактор позволяет привязать скрипт и сохраняет все адреса и серверы записи
  • В раздел «Общие» добавлен параметр «Читать системный файл hosts» (read-etc-hosts, импортируется из use-system-hosts mihomo): на имена из /etc/hosts отвечает DNS Chute
  • Добавлены уведомления правил: любое правило, включая FINAL, принимает notification-text= и notification-interval= и при совпадении показывает уведомление — не чаще одного раза за интервал для каждого правила; оба параметра задаются в редакторе правил, а уведомления подчиняются переключателю уведомлений Chute
  • Добавлено 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; они перечислены в меню политик редактора правил вместе с PROXY
  • Добавлены встроенные наборы правил: на разделы [Ruleset Name] можно ссылаться как RULE-SET,<name>, в том числе друг из друга — до восьми уровней вложенности, циклы отклоняются
  • Добавлено семейство SSID: переопределения DNS из [SSID Setting] применяются в зависимости от сети — имена, BSSID:, TYPE:WIFI / CELLULAR / WIRED (на Mac — Ethernet), ROUTER:, имена в кавычках и с подстановочными знаками — и при смене сети очищают кэш предыдущего резолвера; группы политик ssid и subnet выбирают участников по текущей сети, а правила SUBNET проверяют её. suspend=true теперь действует на Mac: в такой сети Chute снимает системный прокси и отключает расширенный режим, строка меню сообщает об этом, оба перехода отмечаются уведомлением, а ручное переключение прокси прекращает приостановку. В редакторах групп и [SSID Setting] появилось меню «Сопоставлять по» (SSID, BSSID, TYPE, ROUTER); они сохраняют записи в том порядке, в каком они записаны, и показывают переопределение DNS каждой записи. Смена сети теперь доходит до движка сразу, а не раз в 60 секунд, и Chute один раз запрашивает разрешение на геолокацию, когда конфигурация называет сеть Wi-Fi, — без него macOS 14 и новее не раскрывают имя сети
  • Добавлены диапазоны и сравнения для DEST-PORT, SRC-PORT и IN-PORT (80-81, >=50000, списки через /), значения HOSTNAME-TYPE — IPv4, IPv6, DOMAIN и SIMPLE, — а также рабочие правила IN-TYPE и IN-USER: теперь они срабатывают на реальном трафике, а не только при пробном прогоне
  • Добавлены средства управления MitM: расшифровка HTTP/2 (h2), блокировка QUIC к расшифровываемым хостам, чтобы HTTP/3 не обходил расшифровку (auto-quic-block), исключение хостов из расшифровки и ключевые слова списка хостов <ipv4-address>, <ipv6-address> и <simple-hostname>; первые три доступны в настройках MitM
  • Добавлена маршрутизация QUIC по домену в расширенном режиме: при включённом определении протокола имя берётся из QUIC Initial клиента, ClientHello, разбитый на несколько пакетов Initial, собирается заново, а поток придерживается, пока имя не станет известно, — поэтому правила DOMAIN работают и для соединений HTTP/3, открытых по адресу без доменного имени
  • Добавлен icmp-auto-reply, включённый по умолчанию: в расширенном режиме на ping приходит локальный ответ — по IPv4 и IPv6 — вместо тайм-аута
  • Расширен импорт: правила GEOSITE и категорийные правила GEOIP из mihomo разворачиваются в работающие наборы правил, провайдеры .mrs и .srs перенаправляются на опубликованные исходные списки, группы policy-path создают провайдера с update-interval, фильтрами и списками включения, SUB-RULE из mihomo разворачивается в правила AND, detour из sing-box и dialer-proxy из mihomo импортируются как цепочки, а allowed-ips WireGuard компилируется и соблюдается — в редакторе WireGuard появилось поле «Разрешённые IP», — поэтому раздельный туннель больше не забирает себе все адреса назначения
  • Добавлены директивы конфигурации и транспорты: #!include и include = подключают другие файлы, #!MACOS-ONLY, #!IOS-ONLY и #!TVOS-ONLY ограничивают строки одной платформой, и те и другие не теряются при сохранении; у Shadowsocks появился транспорт WebSocket из v2ray-plugin; а id VLESS или VMess, не являющийся UUID, преобразуется в UUID через UUIDv5, как это делают Xray и mihomo, вместо того чтобы обрушить движок
  • В редактор политик добавлены «Исходный интерфейс» и «Разрешить другой интерфейс» (interface=, allow-other-interface=), которые привязывают TCP-соединения политики к одному сетевому интерфейсу. Они действуют при network-framework = false; при Network.framework, который в macOS используется по умолчанию, они пока не применяются
  • Расширен API скриптов: $httpAPI обращается к собственным маршрутам движка без открытия сокета, $httpClient учитывает policy, а $event.name сообщает, какое событие сработало на самом деле
  • Расширены параметры перезаписи: Map Local принимает data-type, status-code и заголовки, перезапись заголовков получила header-replace-regex, перезапись URL — reject-array и reject-tinygif, а одна строка перезаписи тела может содержать несколько пар regex/замена; редакторы предлагают новые типы и поля
  • В строку меню добавлены «Открыть веб-консоль» и «Копировать токен веб-консоли» — они показываются, когда конфигурация обслуживает консоль: «Открыть» выполняет вход с токеном, «Копировать» нужен для браузера на другом компьютере, а неактивный пункт объясняет причину, если слушатель не запущен или external-http-ui выключен. В консоли появились вкладки «Текущие» и «История», вид подробностей (совпавшее правило, источник правила, политика, адаптер, источник DNS, процесс, причина закрытия, тела запроса и ответа), страница «Правила», показывающая, какие правила перезаписи срабатывали, страница «Диагностика» и список наборов правил, которые не удалось загрузить; консоль теперь полностью переведена на все девять языков
  • Добавлены точки входа HTTP-API управления: /api/health, /api/events, /api/tailscale, пробы под /api/diagnostics/, /api/connections/export?format=har, /api/diagnostics/bundle, /api/scripts, управление правилами перезаписи и хостами MitM через /api/rewrites и /api/mitm/hosts, POST /api/rules/match для пробного прогона запроса по таблице правил, GET|PUT /api/loglevel для смены уровня журнала без перезагрузки и POST /api/config/validate для проверки профиля без его применения
  • В строку меню добавлен пункт «Сохранить диагностический пакет…»: очищенный архив с конфигурацией, состоянием, событиями этого запуска, загруженными правилами и политиками, DNS, трафиком и частями журнала, который собирается внутри Chute без API управления, — и предлагается даже после остановки Chute, когда нужны журналы последнего запуска
  • Добавлен экспорт HAR, который движок собирает из записанных кадров: коды состояния, метки времени и тайминги реальны, а каждая запись несёт под _kl выбранную политику, совпавшее правило и срабатывания перезаписи; он доступен в веб-консоли и по адресу /api/connections/export?format=har
  • В окно сведений о соединении добавлена атрибуция перезаписи: оно называет первое правило перезаписи URL, заголовков или тела либо имитации ответов, изменившее запрос, и сколько правил сработало, «Копировать подробности» включает их все, а «Запросы и история» открывает веб-консоль с телами и закрытыми соединениями
  • Добавлено уведомление «Изменение сетевого адреса», заменяющее «Изменение выходного IP»: оно показывает собственные адреса IPv4 и IPv6 этого Mac, по строке на семейство, и помечает IPv4 за NAT; только IPv4 за NAT требует одного STUN-запроса
  • Добавлено уведомление «Сеть не передаёт трафик» с собственным переключателем, включённым по умолчанию: оно сообщает о канале, который принимает соединения, но не передаёт данные, и молчит, пока сама macOS сообщает, что сеть недоступна
  • Добавлен французский как встроенный язык, а в меню языков рядом с каждым языком появился флаг

Улучшения:

  • HTTP-API управления больше не открыт без аутентификации, когда в конфигурации нет external-http-secret: движок генерирует токен, который копируется из строки меню; external-http-secret = none сохраняет анонимный доступ только на loopback-адресе, а адрес прослушивания с подстановкой больше не считается loopback
  • Сопоставление правил на больших списках стало значительно быстрее: таблица правил, состоящая только из доменных правил, сопоставляется по хешированному плану, а содержимое RULE-SET и DOMAIN-SET, не загруженное заранее, индексируется при загрузке, а не читается заново на каждое соединение
  • UDP-потоки сопоставляются один раз: решение по потоку запоминается на 60 секунд, так что последующие датаграммы пропускают оба прохода сопоставления и DNS-запрос между ними
  • Лучшее восстановление после смены сети: туннели, исходный адрес которых больше не существует ни на одном интерфейсе, закрываются, а не держат приложения до тайм-аута простоя
  • Провайдеры правил загружаются по очереди, а не отклоняются, когда очередь загрузки заполнена, а их преобразование требует гораздо меньше памяти
  • Журналы записываются частями по 8 МБ (до восьми на запуск, самые старые удаляются), каждая начинается с заголовка с именем запуска, а вкладка «Лог» следит за всеми частями по порядку; движок также отмечает, завершился ли предыдущий запуск штатно или был убит, — в заголовке журнала, в /api/status и в диагностическом пакете, — а при loglevel = info объёмный поток, передавший не менее 1 МиБ, при закрытии пишет одну строку о том, где он ждал
  • Все структурированные редакторы теперь сохраняют то, чего не показывают: группы политик сохраняют свои провайдеры, policy-path, include-*, фильтры и неизвестные параметры и оставляют пустыми url= / timeout= со значением по умолчанию, чтобы группа следовала proxy-test-url / test-timeout; правила сохраняют прочие параметры; запись [Host] сохраняет все адреса; строка перезаписи тела сохраняет последующие пары; скрипты сохраняют ключи, которых нет в форме; разделы WireGuard и AmneziaWG сохраняют свои, включая параметры обфускации AmneziaWG, — поэтому открытие и сохранение больше не переписывают конфигурацию
  • «Действующие правила» показывают таблицу, которую на самом деле обходит сопоставление, — правила области «Перед», модули, профиль и FINAL, — а «Проверка правила» запускает пробный прогон движка вместо чтения кэша
  • Импорт опубликованного профиля больше не теряет маршрутизацию: формат определяется по тому, что на самом деле отдаёт адрес, поэтому подписка .conf, отдающая профиль Clash, преобразуется; dns-server принимает URL шифрованного DNS, строки слушателей принимают пароль, участники группы в кавычках больше не теряются, участники PASS отбрасываются, а не превращаются в REJECT, а неподдерживаемый протокол или тип группы вызывает предупреждение, а не выводит из строя всю группу; преобразованный профиль сохраняется как .conf, а если имя занято, к нему добавляется номер
  • Проверка задержки использует правильную цель: учитываются test-url и test-timeout группы, proxy-test-url профиля, а также собственные test-url и expected-status участника, а узел в цепочке проверяется через свою цепочку, а не напрямую
  • Скрытые группы политик не показываются в строке меню и на вкладке «Прокси», если не используются; когда API управления направляет «Глобальный» на группу select, строка меню показывает её и отмечает галочкой; а перезагрузка профиля удаляет правила, добавленные во время работы из веб-консоли
  • ShadowTLS теперь проверяет сертификат сайта-прикрытия, если задан sni=, как это делает sing-box; skip-cert-verify=true отключает проверку, а без sni= проверка пропускается с предупреждением
  • PROCESS-NAME, записанный как путь, совпадает с этим путём или префиксом бандла, как допускает руководство Surge, а правила PROCESS-NAME-WILDCARD и PROCESS-PATH-WILDCARD из mihomo импортируются, а не отбрасываются
  • Крупные выгрузки через соединения Network.framework больше не держат данные в памяти, пока до их освобождения не дойдёт главный поток
  • Флажок «Разрешить доступ по Wi-Fi» теперь объясняет, что он делает, — пока он включён, оба локальных прокси-слушателя принимают соединения на всех интерфейсах, — а поля интерфейсов на это время показывают 0.0.0.0, сохраняя ваши адреса до его выключения
  • Пояснения расширенного режима теперь описывают то, что делает движок: Chute сам задаёт переопределение DNS и восстанавливает его при остановке, UDP ретранслируется через сработавшую политику, а на ping приходит локальный ответ
  • Встроенный механизм обновления переведён на Sparkle 2.9.6 с исправлениями безопасности ветки 2.x; проверка при запуске теперь выполняется, только если включена автоматическая проверка обновлений
  • Японский, корейский, немецкий, тайский и русский больше не показывают английский текст примерно в 850 строках, запрос на одобрение сетевого расширения переведён, а не показывает заполнитель, и все языки используют термины приложения для iOS и этого руководства

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

  • Исправлено: «Включённые маршруты VIF» (tun-included-routes) ни на что не влияли; теперь при любом типе расширенного режима — Helper utun или PacketTunnel — перечисленные CIDR добавляются к маршрутам туннеля, поэтому диапазон, который иначе забрала бы собственная подсеть физического интерфейса или другой VPN, идёт через Chute. Записи, которые отрезали бы сам туннель, — loopback, собственные подсети туннеля, link-local, многоадресные, широковещательные, текущий шлюз по умолчанию, длина префикса 0 — отклоняются с записью в журнал, а частные диапазоны принимаются с предупреждением. Для этого обновлён привилегированный помощник, поэтому macOS один раз попросит его одобрить
  • Исправлен MitM в расширенном режиме: хост, совпавший с правилом MitM, зависал до тайм-аута, поэтому перезапись для HTTPS, имитация ответов и расшифрованные записи никогда не применялись к трафику приложений; а расшифрованный запрос или ответ больше 64 КБ зависал — в том числе через системный прокси
  • Исправлено бездействие allow-wifi-access: локальные слушатели HTTP и SOCKS5 оставались на loopback, и ничто в сети не могло до них достучаться; теперь флаг (и allow-lan sing-box при импорте) расширяет оба слушателя, а его отключение перепривязывает их
  • Исправлены ошибки перезаписи: перезапись заголовков ответа через MitM HTTP/1.1 записывалась как применённая, тогда как клиент получал исходный заголовок, а при обычном HTTP сравнивалась только с путём, поэтому шаблон, написанный для полного URL, никогда не срабатывал; имитация ответов строила ответ из заголовка запроса; status-code= в Map Local игнорировался при HTTP/2; а повторно сериализованные ответы HTTP/1.1 уходили с пустой фразой причины
  • Исправлены ошибки сопоставления правил: IP-правила с no-resolve пропускали соединение к IP-литералу, если определение протокола уже подставило для него имя; строки содержимого RULE-SET с опциями после содержимого отбрасывались; RULE-SET,<name>,<policy>,no-resolve терял no-resolve; HOSTNAME-TYPE никогда не срабатывал; RULE-SET и DOMAIN-SET внутри AND / OR / NOT всегда давали «ложь», а SCRIPT — всегда «истину»; GEOIP и IP-ASN UNKNOWN никогда не срабатывали; домен, направленный на прокси логическим правилом, всё равно по-настоящему разрешался; а IPv6-литерал в квадратных скобках в заголовке Host читался как имя хоста
  • Исправлено: PROTOCOL,TCP и PROTOCOL,UDP никогда не срабатывали, так что привычный способ блокировать QUIC правилом AND теперь работает; PROTOCOL,HTTP теперь срабатывает и на обычные запросы через локальный HTTP-прокси — именно так приходит трафик системного прокси
  • Исправлено: block-quic принимал только одно из значений Surge, а любое другое значение означало, что QUIC вообще не блокируется
  • Исправлено: правила IP-ASN никогда не работали — базы GeoLite2 в ~/Chute/Content игнорировались, а собственной базы ASN в Chute не было; теперь она поставляется вместе с приложением
  • Исправлено: строки PROCESS-NAME и PROCESS-PATH внутри набора правил приводились к нижнему регистру, поэтому правило с Chrome никогда не срабатывало
  • Исправлено: запуск Chute с группой select, установленной не на первого участника, публиковал уведомление «группа политик переключена», а последующие перестроения вызывали предупреждение о дребезге; группа без запомненного выбора теперь следует default= профиля
  • Исправлен API скриптов: $klne.getPolicyGroups() и selectPolicy() больше не выбрасывают исключение при первом вызове, reloadConfiguration() действительно перезагружает, getActiveConnections() сообщает настоящие хост, порт и id, closeConnection() действительно закрывает, startURLTest() запускает тест, а скрипт перед отправкой с requires-body получает тело
  • Исправлено: [Replica] hide-crashlytics-request разбирался, но никогда не применялся, keyword-filter сравнивал имя хоста целиком, вместо того чтобы проверять, содержит ли оно ключевое слово, external-http-controller = *:9090 и :::9090 отклонялись, а optimistic-dns = false всё равно отдавал просроченные записи
  • Исправлено: XHTTP падал под нагрузкой и зависал после первой записи, поэтому рукопожатие TLS через него не завершалось; также исправлен его padding stream-up поверх HTTP/1.1
  • Исправлено: Hysteria2 отбрасывал любую UDP-датаграмму, не помещавшуюся в один кадр QUIC DATAGRAM, из-за чего HTTP/3 приложения откатывался на TCP, а группа url-test с участником Hysteria2 падала
  • Исправлено: перезапущенный расширенный режим повторно использовал первый локальный порт и номера последовательности TCP прошлого запуска, и пир WireGuard, ещё державший старое соединение, отвечал на них сбросом
  • Исправлено: WireGuard падал при одновременном запуске из двух мест, Shadowsocks 2022 терял конец ответа, SSH зависал на 30 секунд и в простое загружал одно ядро процессора, а соединения REALITY / uTLS после повреждённой записи передавали испорченную загрузку вместо того, чтобы закрыться
  • Исправлен Tailscale: на Mac с двумя интерфейсами в одной сети рукопожатие, на которое ответили с другого адреса, не завершалось, а соединения зависали после остановки Tailscale
  • Исправлено: оба локальных слушателя не поднимались после перезагрузки конфигурации — теперь неожиданно остановившийся слушатель перезапускается, — HTTP-прокси не отвечал на запрос без аутентификации кодом 407 с Proxy-Authenticate, в устаревшем XTLS возникала взаимоблокировка, а транспорты WebSocket игнорировали Ping и Close
  • Исправлен сбой при запуске движка в macOS 10.15
  • Исправлено: значения скриптов с запятыми — например, cron 0 8,20 * * * или аргумент JSON — обрезались на первой запятой при сохранении из редактора скриптов, а участники групп политик, в именах которых есть пробел или запятая, сохранялись без кавычек
  • Различные улучшения стабильности и производительности

Версия 1.1.3 (230)

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

  • Добавлен помощник настройки: при первом запуске он проводит от пустого состояния до рабочей конфигурации — импорт подписки или ссылки-share, ручной ввод сервера либо указание уже имеющегося файла конфигурации, — затем устанавливает привилегированный helper, применяет выбранный способ перехвата трафика и проверяет соединение перед завершением. Его можно в любой момент открыть снова из меню
  • Добавлен импорт ссылок-share (vmess://, ss://, ssr://, trojan://, vless://, hysteria2://, shadowtls://): ссылки преобразуются локально, а подписка, возвращающая список ссылок-share (в том числе упакованный в base64), также принимается
  • Добавлено определение буфера обмена в окне импорта: найденная там ссылка предлагается кнопкой «Использовать», а не подставляется молча
  • Добавлена URL-схема chute://, чтобы ссылка импорта на веб-странице открывалась в Chute; адрес проверяется по форме и подтверждается пользователем до любой загрузки
  • Добавлена поддержка протокола AmneziaWG, включая редактор его параметров обфускации (Jc/Jmin/Jmax, S1–S4, H1–H4, I1–I5)
  • В редактор политик добавлен транспорт XHTTP для Trojan, VMess и VLESS — режим, путь, хост, заголовки запроса и padding, ограничения размера post и интервала, четыре границы XMUX, а также отдельная точка загрузки
  • В редактор политик добавлен транспорт gRPC с именем сервиса и multi-mode
  • Добавлены настройки ECH (Encrypted Client Hello) для политик TLS: переключатель, закреплённый ech-config и подмена прикрывающего имени ech-public-name
  • Добавлен отпечаток клиента (uTLS) для отдельной политики и значение по умолчанию для всего профиля в общих настройках
  • Добавлены методы шифрования Shadowsocks AEGIS-128L и AEGIS-256
  • Добавлен постквантовый гибридный обмен ключами X25519MLKEM768 для TLS 1.3
  • Добавлены выбор шифра VMess, закрепление отпечатка сертификата MASQUE, отключение UDP для каждой политики и переключатели мультиплексирования для семейства HTTP, Shadowsocks, ShadowsocksR, Trojan, ShadowTLS и Hysteria2
  • Добавлена работа в роли узла выхода и маршрутизатора подсети Tailscale: анонсируйте этот Mac и сети за ним, включайте режим из строки меню, получайте уведомление, когда администратор его одобрит, и при желании не давайте Mac засыпать, пока он несёт трафик
  • В список профилей добавлено удаление: профили, которыми управляет Chute, отправляются в корзину, а файлы, импортированные на месте, лишь снимаются с регистрации и остаются там же
  • Добавлено окно отчёта об ошибках конфигурации — изменяемый по размеру список с номером строки, серьёзностью, сообщением и исходной строкой, с ⌘C по строкам и кнопкой «Скопировать всё» — вместо оповещения, которое могло оказаться выше экрана
  • В [URL Rewrite] добавлен Map Remote: правило типа header теперь переписывает строку запроса и вышестоящий хост с подстановкой групп захвата
  • Добавлены аргументы модулей (#!arguments), позволяющие переиспользовать один модуль с разными значениями

Улучшения:

  • Редактор политик перестроен на формы по протоколам: у каждого протокола теперь свои поля вместо общих текстовых полей с посторонними протоколами, а список типов можно дополнять, не перенумеровывая идущие ниже
  • При сохранении редактор политик сохраняет параметры, для которых у него нет поля (ECH, ALPN, закрепление сертификата, test-url, udp-relay, tfo)
  • Убран переключатель TCP Fast Open у TUIC, Hysteria2, MASQUE, AnyTLS и SSH — их адаптеры никогда не читают этот параметр; политика, где tfo уже указан, сохраняет его
  • Улучшен импорт опубликованных профилей Clash, sing-box и Surge, включая секции MitM/Panel/Ponte у Surge, варианты REJECT, строки модулей и селектор [SSID Setting]
  • Chute теперь объясняет назначение привилегированного helper до того, как macOS запросит разрешение, вместо системного диалога без всякого контекста
  • Упорядочена последовательность экранов первого запуска: лицензия считывается до показа любого окна, а запрос разрешения на уведомления ждёт закрытия помощника настройки
  • Когда ничего не настроено, строка меню предлагает настройки, главное окно и точки входа импорта вместо одного лишь выбора файла; переключатели панели сообщают, чего не хватает, а не сообщают об ошибке минуту спустя; такая установка запускается в новом главном окне
  • Пустое состояние списка профилей и пункт импорта по URL теперь упоминают ссылки-share, а окно справки объясняет, что на деле требуется, прежде чем хоть что-то пойдёт через прокси
  • Улучшены пропускная способность и расход процессора в тракте данных, при сопоставлении правил и обработке UDP
  • Соединения больше не переиспользуются на устаревшем сетевом пути после смены сети на Mac

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

  • Исправлено признание действительной лицензии недействительной после перезагрузки, когда единственный кратковременный сбой проверки останавливал прокси и открывал окно лицензии
  • Исправлено бездействие подтверждения «Отозвать лицензию»
  • Исправлено, что «Отмена» в запросе об ошибке конфигурации всё равно загружала и запускала сломанную конфигурацию, а действие отбрасывания стояло на кнопке по умолчанию
  • Исправлена потеря flow у VLESS при включённом REALITY; клиент теперь действительно использует кадрирование XTLS Vision, а не только объявляет его
  • Исправлена перезапись политики в HTTP при сохранении, если её тип редактор отобразить не может
  • Исправлено появление буквального порта 0 у политик WireGuard и AmneziaWG, ссылающихся на секцию конфигурации
  • Исправлена запись ws-path и ws-headers при выключенном переключателе WebSocket
  • Исправлено отсутствие прокрутки на странице настроек интерфейса
  • Исправлена некорректная строка запроса Shadowsocks при obfs=http, из-за которой туннель был подключён, но ничего не передавал
  • Исправлена потеря синхронизации Shadowsocks 2022, когда полезная нагрузка разбивалась между чтениями, и исправлен формат UDP для chacha20-poly1305
  • Исправлено, что псевдоним [Host] никогда не срабатывал: запрос A по имени-псевдониму уходил вышестоящему серверу и возвращал NXDOMAIN
  • Исправлено, что миграция QUIC-соединения обходила правила PROTOCOL,QUIC и параметр block-quic
  • Исправлена потеря пакетов WireGuard, поставленных в очередь во время переустановления сессии
  • Исправлено, что строка описания #!arguments в модуле перезаписывала значения аргументов по умолчанию рядом с ней
  • Различные улучшения стабильности и производительности

Версия 1.1.2 (210)

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

  • Добавлен Tailscale как встроенный тип прокси: настройте учётную запись Tailscale прямо в Chute, присоединитесь к tailnet и направьте трафик через узлы Tailscale — без отдельного клиента
  • Добавлена панель конфигурации Tailscale: безопасный ввод auth key, проверка соединения, список узлов tailnet и переключение узла выхода
  • Добавлен виджет статуса Tailscale на панели и ярлык в строке меню для переключения узла выхода
  • Добавлены системные уведомления для диагностики прокси, включая висящие ссылки политик, изменения исходящего IP и события Tailscale, с переключателями по типам в настройках
  • Добавлен тип прокси MASQUE в редакторе политик
  • Добавлен табличный редактор bypass-list со значением simple-hostnames по умолчанию и автоматическим экспортом no_proxy
  • Добавлена группировка соединений по приложениям на панели трафика
  • Минимальная поддерживаемая версия macOS повышена до 10.14 (Mojave)

Улучшения:

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

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

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

Версия 1.1.1 (202)

  • Новый основной интерфейс с панелью: переработанное окно с 4 вкладками (Dashboard, Traffic, Config, Log) с дизайном glass-morphism, графиками скорости в реальном времени, настраиваемыми карточками виджетов и анимациями микровзаимодействий
  • Новые виджеты панели: статус прокси, режим TUN, время работы, активные соединения, пропускная способность загрузки/отдачи и текущий профиль конфигурации
  • Новая вкладка управления профилями для переключения и организации профилей конфигурации
  • Обновленный инспектор трафика с улучшенной фильтрацией сессий и просмотром журналов
  • Новый расширенный режим VPN: опция системного расширения PacketTunnel наряду с устаревшим helper utun, выбираемая в Настройках
  • Миграция демона привилегированного помощника с SMJobless на SMAppService (macOS 13+)
  • Миграция сетевого расширения на System Extension с потоком активации OSSystemExtensionRequest
  • Добавлены редакторы конфигурации для разделов Body Rewrite, Script, Module и WireGuard
  • Добавлен инструмент диагностики DNS правил
  • Обновлено ядро KLNEKit с крупным расширением функций
  • Добавлена поддержка протокола AnyTLS с многослойной обфускацией заполнением
  • Добавлена поддержка протокола TUIC (мультиплексированная ретрансляция TCP/UDP на основе QUIC)
  • Добавлена поддержка протокола Hysteria2 с контролем перегрузки Brutal
  • Добавлена поддержка протокола WireGuard (встроенная и на основе разделов конфигурация)
  • Добавлена поддержка протокола ShadowTLS с камуфляжем отпечатка TLS
  • Добавлена поддержка антицензуры VLESS REALITY
  • Добавлены методы шифрования Shadowsocks 2022 (2022-blake3-aes-128/256-gcm, chacha20-poly1305)
  • Добавлен транспорт gRPC для протоколов VMess и VLESS
  • Добавлена поддержка DNS-over-TLS (DoT), DNS-over-QUIC (DoQ) и DNS-over-HTTP/3 (DoH3)
  • Добавлено назначение DoT/DoQ/DoH3 для отдельных доменов в локальном сопоставлении DNS
  • Добавлена система JavaScript-скриптинга (7 типов скриптов: rule, dns, request, response, generic, scheduled, dns-ttl)
  • Добавлена перезапись тела: поиск и замена тел HTTP-запросов/ответов через regex (с группами захвата) или JSONPath
  • Добавлена имитация ответов: возврат имитированных данных или содержимого Map Local на совпадающие запросы
  • Добавлен анализ протоколов: определение фактического протокола соединения и применение правил соответственно
  • Добавлены отчеты об уведомлениях с 5 типами событий (connection-failure, proxy-unavailable, traffic-surge, config-update-failure, policy-group-switch)
  • Добавлены HTTP Control API и встроенный веб-интерфейс для мониторинга и управления во время выполнения
  • Добавлена система модулей (.sgmodule) для модульного управления конфигурацией
  • Добавлен провайдер прокси для динамического обновления списков прокси
  • Добавлена группа политик LoadBalance со стратегиями round-robin, consistent-hashing и sticky-sessions
  • Добавлена поддержка группы политик Fallback
  • Добавлен тип правила IP-ASN (встроенная база данных MaxMind GeoLite2 ASN)
  • Добавлены логические правила комбинирования: AND, OR, NOT
  • Добавлены правила расширенного сопоставления: SUBNET, HOSTNAME-TYPE, IN-TYPE, IN-USER, IN-NAME
  • Добавлены новые типы правил на основе доменов: DOMAIN-WILDCARD, DOMAIN-REGEX, DOMAIN-SET
  • Добавлен тип правила PROTOCOL (сопоставление по определенному протоколу: HTTP, HTTPS, TLS, TCP, UDP, QUIC, STUN, DNS, DOH, DOQ)
  • Добавлен тип правила SCRIPT для пользовательского сопоставления на основе JavaScript
  • Добавлены новые типы правил процессов: PROCESS-PATH, PROCESS-NAME-REGEX
  • Добавлен тип правила SRC-PORT
  • Добавлены опции extended-matching и requires-resolve для правил
  • Добавлены режимы отклонения URL Rewrite: reject-200, reject-img, reject-dict
  • Добавлена поддержка направления ответа в перезаписи заголовков (header-response-add/del/replace)
  • Добавлена поддержка переменных шаблона Map Local в перезаписи URL
  • Добавлена поддержка реплики для выборочной записи трафика
  • Добавлена поддержка управляемой конфигурации с интервалом автообновления
  • Добавлена опция exclude-simple-hostnames
  • Добавлена опция Bypass TUN для прямой маршрутизации указанных диапазонов IP
  • Добавлена глобальная опция interrupt-exist-connections
  • Добавлена опция network-framework
  • Добавлена опция disable-db-record
  • Расширены опции групп политик: expected-status, hidden, idle-timeout, lazy
  • Расширена система правил с 6 до 37 типов правил
  • Оптимизирована пропускная способность TUN (UTUN_OPT_MAX_PENDING_PACKETS)
  • Исправлено значение по умолчанию IPv6 (false -> true)
  • Исправлены значения по умолчанию уровня логирования, добавлены уровни none и fatal
  • Исправлена согласованность именования Shadowsocks/ShadowsocksR
  • Различные улучшения стабильности и производительности

Версия 1.0.7 (163)

  • Обновлен KLNEKit
  • Добавлена поддержка политики SSH
  • Исправлена проблема UDP
  • Исправления ошибок

Версия 1.0.5 (155)

  • Обновлен KLNEKit
  • Изменена сеть TUN на 198.18.0.0/15 для избежания проблем с внутренними адресами IPv4
  • Добавлена функция помощи для значка меню
  • Реализована поддержка IPv6 для TUN
  • Включена поддержка ping для TUN
  • Исправлена проблема исчезновения меню Dock
  • Исправлено: конфигурация прокси не восстанавливалась после закрытия Chute
  • Исправлена сеть TUN
  • Исправлен компонент обновления приложения
  • Исправления ошибок

Версия 1.0.4 (145)

  • Добавлена поддержка протокола VLESS
  • Добавлен XTLS для VLESS
  • Добавлено отображение локальных IP
  • Добавлена поддержка UDP Tunnel для Chute Dashboard
  • Улучшен встроенный DNS-сервер
  • Исправлена обработка правила FINAL
  • Исправлен UDP Tunnel
  • Исправления ошибок

Версия 1.0.3 (132)

  • Поддержка macOS 10.13 (без поддержки Network.framework)
  • Исправлена загрузка раздела прокси в окне конфигурации
  • Исправлена ошибка HTTP-запроса
  • Исправления ошибок

Версия 1.0.2 (102)

  • Перестроен DNS-сервер
  • Перестроена установка расширения
  • Исправления ошибок

Версия 1.0.0 (88)

  • Первая релизная версия
  • Добавлена поддержка TUN

[Beta] Версия 0.4.9 (53)

  • Исправлен порядок правил.
  • Добавлена поддержка сканирования QR-кода на экране.
  • Исправлена группа политик.

[Beta] Версия 0.4.5 (32)

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

[Beta] Версия 0.3.5 (25)

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

[Beta] Версия 0.3.0 (20)

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

[Beta] Версия 0.2.0 (8)

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

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

results matching ""

    No results matching ""