Быстрый старт
Скачать
Заголовок раздела «Скачать»Сборки лежат в релизах на GitHub. Файлы называются citrus-<os>-<arch>-<версия>:
| Канал | Тег | Что это |
|---|---|---|
| release | vX.Y.Z (последний) |
Стабильные версии. |
| Prerelease-main | Prerelease-main |
Сборка ветки main. |
В пререлизах вместо версии стоят ветка и коммит, например citrus-linux-arm64-main-1a2b3c4.gz. Ветка dev проходит тесты, но не собирается в пакеты; чтобы попробовать её, соберите ядро из исходников.
- Linux, macOS, FreeBSD:
.gzс одним бинарником. Для Linux есть ещё.deb,.rpmи.pkg.tar.zst. - Windows:
.zipсcitrus-windows-<arch>.exe. - amd64: файл
amd64собран под x86-64-v3 (Intel Haswell, AMD Excavator и новее). Для старых процессоров беритеamd64-compatibleилиamd64-v2. - Старые системы: релизы для Windows и macOS собираются пропатченным тулчейном Go от MetaCubeX, который сохраняет работу на Windows 7/8 и старых macOS (отдельно в Citrus это не тестируется). Для Linux нужно ядро 3.2 или новее. Отдельных сборок на старых версиях Go (
-go120и подобных) нет.
-
Скачайте файл для своей системы и распакуйте его:
gunzip citrus-linux-amd64-*.gzchmod +x citrus-linux-amd64-*sudo mv citrus-linux-amd64-* /usr/local/bin/citrus -
Проверьте, что бинарник запускается:
citrus -v
Citrus читает config.yaml из каталога конфигурации:
- Linux и macOS:
~/.config/citrus/, а если его нет и заданаXDG_CONFIG_HOME, то$XDG_CONFIG_HOME/citrus/. - Windows:
%USERPROFILE%\.config\citrus\. - Пакеты для Linux:
/etc/citrus/, когда ядро запущено какcitrus.service.
Минимальный конфиг: смешанный HTTP/SOCKS-порт, DNS с fake IP и всё напрямую.
mixed-port: 7890
dns: enable: true enhanced-mode: fake-ip nameserver: - system
rules: - MATCH,DIRECTПрокси, группы и правила добавляются по справочнику конфига. Конфиг от mihomo обычно подходит как есть; что может потребовать правок, собрано на странице Переход с mihomo.
citrus -d ~/.config/citrus| Флаг | Что делает |
|---|---|
-d <каталог> |
Каталог конфигурации. Там же ядро хранит geodata и кеш. |
-f <файл> |
Конкретный файл конфига. |
-t |
Проверить конфиг и выйти. |
-v |
Показать версию. |
-secret-file <file> |
Прочитать secret контроллера из файла (CLASH_OVERRIDE_SECRET_FILE); в отличие от -secret, не виден в списке процессов. |
-age-secret-key-file <file> |
Прочитать age-ключ для расшифровки конфига из файла (CLASH_AGE_SECRET_KEY_FILE). citrus age decrypt и citrus age convert тоже принимают ключ как @file. |
Проверить конфиг перед перезапуском:
citrus -t -f ~/.config/citrus/config.yamlКак служба (Linux)
Заголовок раздела «Как служба (Linux)»Пакеты .deb, .rpm и .pkg.tar.zst ставят бинарник в /usr/bin/citrus, конфиг в /etc/citrus/config.yaml и юнит citrus.service:
sudo systemctl enable --now citrussudo systemctl reload citrus # перечитать конфигjournalctl -u citrus -fДля нескольких экземпляров есть citrus@.service: citrus@work читает /etc/citrus/work/.
Для серверных входящих есть отдельный профиль без root со своим пользователем и конфигом только для чтения.
Дашборд
Заголовок раздела «Дашборд»Включите API контроллера в конфиге (external-controller: 127.0.0.1:9090 и secret) и подключите совместимый дашборд, например MetaCubeXD. Контроллер без secret отклоняет запросы браузера с других сайтов и не запускается на сетевом адресе, см. Безопасность контроллера.
Собрать из исходников
Заголовок раздела «Собрать из исходников»Нужен Go 1.26 или новее.
git clone https://github.com/getmikan/Citrus.gitcd Citrusgo build -tags with_gvisor -trimpath -o citrus ../citrus -v