Каталог загрузок Clash MetaЗагрузки клиента mihomo

Ядро mihomo на macOS: запуск из командной строки

Установка 20 июня 2026 5 мин чтения
Содержание

Ядро mihomo на macOS — это один исполняемый файл без интерфейса: вы запускаете его в терминале, указываете каталог с конфигурацией и получаете локальный прокси-порт. Такой режим удобен для отладки правил, для работы по SSH и для тех, кто не хочет держать в системе лишнее ПО.

Для повседневного использования на десктопе всё-таки удобнее графический клиент — внутри него то же самое ядро. Если интерфейс вам нужен, посмотрите установку Clash Verge Rev на macOS. Дальше — вариант для командной строки.

Какая сборка нужна: Intel или Apple Silicon

Начиная с 2020 года Mac постепенно перешли с процессоров Intel (x86_64) на собственные чипы Apple Silicon (arm64). Ядро собирается отдельно под каждую архитектуру, и сборки не взаимозаменяемы. Посмотрите строку «Чип» или «Процессор» в разделе «Об этом Mac» либо выполните в терминале:

uname -m

Вывод x86_64 — берите сборку amd64, вывод arm64 — сборку arm64. Оба варианта mihomo v1.19.29 лежат в центре загрузок в виде сжатых файлов .gz. Подробнее о различиях платформ — в статье про Intel и Apple Silicon.

Распаковка, права и снятие карантина

Файл скачивается сжатым, поэтому его нужно распаковать, сделать исполняемым и снять атрибут карантина, который macOS вешает на всё загруженное из сети:

cd ~/Downloads
gunzip mihomo-darwin-arm64-v1.19.29.gz
chmod +x mihomo-darwin-arm64-v1.19.29
xattr -dr com.apple.quarantine mihomo-darwin-arm64-v1.19.29

Имя файла подставьте своё. Без последней команды Gatekeeper при первом запуске сообщит, что программу невозможно проверить: это не поломка файла, а стандартная реакция системы на приложение без нотаризации. Альтернативный путь — разрешить запуск в «Системных настройках» → «Конфиденциальность и безопасность».

Проверить, остался ли на файле карантин, можно командой xattr -l имя_файла: если в выводе больше нет строки com.apple.quarantine, атрибут снят. Порядок действий тоже важен — сначала распаковка, потом права и карантин. Атрибут висит на скачанном архиве и переходит на извлечённый файл, поэтому снимать его до gunzip бессмысленно.

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

Размещение и первый запуск

  1. Перенесите бинарник в каталог, который есть в PATH, и дайте ему короткое имя:
    sudo mv mihomo-darwin-arm64-v1.19.29 /usr/local/bin/mihomo
  2. Создайте каталог данных и положите туда конфигурацию:
    mkdir -p ~/.config/mihomo
    nano ~/.config/mihomo/config.yaml
  3. Проверьте конфигурацию до запуска — ядро укажет строку с ошибкой, если она есть:
    mihomo -t -f ~/.config/mihomo/config.yaml
  4. Запустите ядро, передав каталог данных параметром -d:
    mihomo -d ~/.config/mihomo

На Mac с Apple Silicon каталога /usr/local/bin может не оказаться — он не создаётся системой по умолчанию. Если mv сообщает, что каталога нет, создайте его командой sudo mkdir -p /usr/local/bin и повторите перенос. Проверить, что путь подхватился оболочкой, поможет which mihomo: команда должна вывести полный путь к бинарнику.

Лог пишется прямо в окно терминала: видно загрузку правил, поднятые порты и входящие соединения. Пока окно открыто, ядро работает; закроете — прокси остановится. Остановить ядро корректно можно сочетанием Ctrl+C. Из каких секций состоит сам файл, разобрано во введении в конфигурацию mihomo.

Проверка, что прокси работает

Посмотрите в конфигурации значение mixed-port — это порт, который принимает и HTTP-, и SOCKS-соединения (в готовых профилях встречаются и 7890, и 7897). Подставьте его в проверочный запрос из соседнего окна терминала:

curl -x http://127.0.0.1:7890 -I https://example.com

Ответ с кодом состояния означает, что цепочка работает. Чтобы через прокси пошли обычные приложения, включите его в «Системных настройках» → «Сеть» → «Прокси» для активного интерфейса либо задайте переменные окружения для конкретной программы:

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

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

Автозапуск через launchd

Чтобы не держать терминал открытым, оформите ядро как пользовательский агент launchd. Создайте файл ~/Library/LaunchAgents/com.mihomo.core.plist:

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.mihomo.core</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/mihomo</string>
    <string>-d</string>
    <string>/Users/username/.config/mihomo</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
</dict>
</plist>

Замените username на своё имя пользователя: launchd не понимает сокращение ~, путь должен быть абсолютным. Загрузите агент командой:

launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.mihomo.core.plist

Выгружается он симметрично — launchctl bootout gui/$(id -u)/com.mihomo.core. После правки plist агент нужно выгрузить и загрузить заново.

Ключ RunAtLoad запускает ядро при входе в систему, KeepAlive поднимает его после неожиданного завершения. Убедиться, что агент зарегистрирован, можно командой launchctl list | grep mihomo. Главная плата за фоновый режим — потеря вывода: лог больше не видно. Поэтому в plist обычно добавляют перенаправление в файлы, иначе разбираться в причинах сбоя будет не по чем:

  <key>StandardOutPath</key>
  <string>/tmp/mihomo.out.log</string>
  <key>StandardErrorPath</key>
  <string>/tmp/mihomo.err.log</string>

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

Совет. Пока конфигурация не устоялась, запускайте ядро вручную в терминале: так ошибки видны сразу. Переводите его под launchd, только когда всё работает стабильно.

Обновление и удаление

Обновление — это замена одного файла: остановите ядро, распакуйте новую версию, снимите карантин и положите её на место старой. Каталог данных с config.yaml при этом сохраняется. Удаление столь же простое: выгрузите агент launchd, удалите /usr/local/bin/mihomo и каталог конфигурации, а затем не забудьте выключить прокси в системных настройках сети — иначе система продолжит стучаться на несуществующий локальный порт.