Ядро Clash несёт на борту RESTful API (по умолчанию 127.0.0.1:9090); GUI Clash for Windows - сам всего лишь клиент этого API. Понимание API открывает сторонние веб-панели и автоматизацию скриптами.
Проверка API
curl http://127.0.0.1:9090/version
Ответ вида {"premium":true,"version":"2023.08.17"} - всё в порядке.
Полезные эндпоинты
| Эндпоинт | Назначение |
|---|---|
GET /proxies | Все группы и узлы с текущим выбором. |
PUT /proxies/:name | Сменить выбор в select-группе. |
GET /connections | Живой список соединений (источник данных страницы Connections). |
PATCH /configs | Менять режим, порты и т.д. на лету: {"mode":"Global"}. |
GET /traffic | Потоковые скорости приёма/отдачи. |
Подключение веб-панели
Открытые панели (yacd, clash-dashboard) - статические страницы: откройте, укажите адрес API http://127.0.0.1:9090 - и получите примерно те же органы управления, что в клиенте. Их сила - управление Clash на другой машине: подставьте её LAN-адрес.
Секрет для API
Выставляя API в локальную сеть (external-controller: 0.0.0.0:9090), обязательно задайте секрет. Через Mixin:
mixin:
external-controller: 0.0.0.0:9090
secret: "a-long-random-string"
Дальше каждый запрос обязан нести Authorization: Bearer a-long-random-string.
Готовые примеры автоматизации (плановое переключение узлов и не только) - в Автоматизации через API.