Расположение файлов (macOS)
Где Chute Mac хранит свои данные, для чего нужен каждый файл и что можно безопасно удалить. Читать это, чтобы пользоваться Chute, не нужно — страница на тот случай, когда поддержка просит прислать файл, когда встаёт вопрос о месте на диске или когда вы хотите знать, из чего собирается диагностический пакет.
На macOS прокси-движок работает внутри самого приложения Chute Mac, поэтому всё перечисленное ниже приложение записывает под вашей учётной записью. Системное расширение PacketTunnel, которое использует Расширенный режим, только перемещает пакеты и своих данных не хранит.
Папка данных: ~/Chute
Chute Mac создаёт её вместе с пустой Content/ до первого запуска движка; Tmp/ и Share/ движок добавляет при запуске. У трёх подпапок три разных срока жизни.
Content/ — сохраняется между запусками
| Путь | Что содержит |
|---|---|
GeoLite2-Country.mmdb |
База GeoIP, на которой работают правила GEOIP. Chute Mac поставляет копию внутри приложения и использует её, когда этого файла нет; файл, положенный сюда, её заменяет. |
GeoLite2-ASN.mmdb |
База ASN, на которой работают правила IP-ASN. Chute Mac поставляет копию внутри приложения и использует её, когда этого файла нет; положенный сюда файл заменяет её — так можно подставить более свежую базу. |
tailscale/ |
Резервное хранилище ключей узла Tailscale этого устройства, с правами только для владельца; используется, только когда связка ключей входа недоступна. Chute Mac хранит ключи в связке ключей (служба com.r3.klnekit.tailscale) и переносит туда все ключи, которые найдёт здесь, поэтому удаление этой папки узел не сбрасывает: чтобы устройство вошло в tailnet как новый узел, удалите эти элементы связки ключей. |
Tmp/ — рабочее пространство
Пересоздаётся, когда отсутствует; можно безопасно удалить при остановленном движке.
| Путь | Что содержит |
|---|---|
rule_sets/ |
Загруженные файлы RULE-SET. Перезагружаются по update-interval набора правил или при следующем запуске, если кэш пропал. |
ICON/ |
Значки приложений, показываемые в представлениях процессов и трафика. |
MitM/ |
Сертификаты для отдельных хостов, которые расшифровка HTTPS выпускает вашим CA; хранятся в отдельной папке для каждого CA и переиспользуются между запусками. Недостающие выпускаются заново. |
db.connect |
Локальный сокет, через который Chute Dashboard общается с работающим движком. Существует только пока движок работает. Само приложение для Mac через него не ходит — оно держит движок в своём процессе и обращается к нему напрямую. |
Второй кэш — для подписок прокси-провайдеров — лежит во временном каталоге системы как kl_proxy_providers/.
Share/ — что произвёл каждый запуск
| Путь | Что содержит |
|---|---|
control-token |
Токен, который HTTP API управления сгенерировал, когда в конфигурации нет external-http-secret. Права только для владельца; переиспользуется между перезапусками. Удалите его, чтобы был сгенерирован новый. |
last-run.json |
Маркер запуска: записывается при старте движка, каждые 30 секунд обновляется текущим потреблением памяти, удаляется при чистой остановке. Обнаружив его при следующем старте, Chute понимает, что предыдущий запуск был убит — именно это сообщают карточка Предыдущее завершение в консоли и last_exit. |
<run id>/ |
По одной папке на каждый старт движка, названной 8-символьным id запуска. Окна Лог и Трафик и веб-консоль читают из текущей. Хранятся 10 самых свежих; более старые папки запусков удаляются при старте движка. |
Внутри папки запуска:
| Путь | Что содержит |
|---|---|
<start time>.log, <start time>.1.log, … |
Журнал сессии, разбитый на части по 8 МиБ. Хранится не более 8 частей, так что длинная сессия держит свои последние 64 МиБ; первая строка каждой части говорит, к какому запуску и какой части она относится. Ни Экспорт на вкладке «Лог», ни Сохранить диагностический пакет… в меню не передают части целиком: Экспорт сохраняет записи, которые вкладка сейчас показывает, — её отфильтрованное представление не более чем из 2000 последних, — а пакет берёт последние 512 КиБ каждой части. Когда нужен весь журнал, прикладывайте сами файлы .log. |
tunnel.db |
База SQLite соединений этого запуска — заголовки запросов и ответов, тайминги, правило и политика, обработавшие каждое, атрибуция переписываний — плюс таблица events. Её читают вкладка История консоли, /api/connections/history и экспорт HAR. Не создаётся, когда включён disable-db-record. |
DUMP/ |
Тела запросов и ответов. Папка создаётся при каждом запуске, но файлы в ней появляются только пока включена запись [Replica]: <connection id>_send.dump, <connection id>_receive.dump и рядом с каждым — индекс кадров .idx. Они удаляются, когда движок останавливается. |
Файлы приложения
| Путь | Что содержит |
|---|---|
~/Library/Application Support/com.R3Studio.Chute-Mac/Profiles/ |
Профили, импортированные из URL подписки или ссылки для обмена, и преобразованные профили. Файл конфигурации, импортированный с диска, используется по месту, а не копируется сюда — см. Начало работы. |
~/Library/Preferences/com.R3Studio.Chute-Mac.plist |
Настройки приложения: активная конфигурация, режим исходящих соединений, состояние окон, список последних id запусков. |
~/Library/Application Support/com.R3Studio.Chute-Mac.key |
Сертификат лицензии. Отозвать лицензию в разделе О программе удаляет его и снова открывает окно лицензии. |
Chute.app/Contents/Library/LaunchDaemons/com.R3Studio.ChuteHelper.plist |
Задание launchd привилегированного помощника на macOS 13 и новее, регистрируемое прямо из пакета приложения через SMAppService. Помощник запускается при каждом старте движка, а не только ради варианта Helper utun Расширенного режима, потому что он же выставляет системный прокси. |
/Library/PrivilegedHelperTools/com.R3Studio.ChuteHelper, /Library/LaunchDaemons/com.R3Studio.ChuteHelper.plist |
Куда устанавливается помощник в macOS 12 и более ранних версиях. В macOS 13 и новее Chute заменяет найденный здесь помощник: сначала спрашивает (Требуется обновить помощник), и Обновить помощник удаляет эти файлы и устанавливает новый. |
/Library/Application Support/Chute/PreviousDNSInfo_<interface>.json |
DNS-серверы, которые были у сетевой службы до того, как Расширенный режим указал её на Chute; по файлу на интерфейс, пишутся помощником и читаются обратно, чтобы восстановить их при остановке. |
Что можно безопасно удалить
Tmp/целиком, при остановленном движке. Наборы правил и значки будут загружены заново по мере надобности.- Любую папку
Share/<run id>/, кроме той, в которую пишет работающий движок. Удаление запуска убирает его журнал, историю соединений и записанные тела разом. Share/control-token, если нужен новый токен; закладки и сохранённые сессии консоли перестанут работать.Content/GeoLite2-Country.mmdbиContent/GeoLite2-ASN.mmdb: в дело вступают копии внутри приложения.
Не удаляйте ~/Chute, пока движок работает: там лежат журнал, база соединений и управляющий сокет текущего запуска.
Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.