API¶
Пример запроса¶
Пример curl curl -H 'Authorization: Bearer ${secret}' http://${controller-api}/configs?force=true -d '{"path": "", "payload": ""}' -X PUT
Этот запрос содержит заголовок 'Authorization: Bearer ${secret}', где:
${secret}- ключ api, заданный в конфигурационном файле${controller-api}- адрес прослушивания api, указанный в конфигурационном файле?force=true- параметр, который требуется для некоторых запросов'{"path": "", "payload": ""}'- данные обновляемого ресурса
Note
Если вам нужно передать путь, обратите внимание: если путь не находится в рабочем каталоге mihomo, вручную задайте переменную среды SAFE_PATHS, чтобы добавить его в безопасный путь. Синтаксис этой переменной среды совпадает с правилом анализа переменной среды PATH этой операционной системы (то есть он разделяется точкой с запятой в Windows и двоеточием в других системах).
Логи¶
/logs¶
Получение логов в реальном времени
- Метод запроса:
GET/WS - Необязательный параметр:
?level=log_level, гдеlog_levelможет бытьinfo,warning,error,debug
Информация о трафике¶
/traffic¶
Получение информации о трафике в реальном времени, в kbps
- Метод запроса:
GET/WS
Информация о памяти¶
/memory¶
Получение информации об использовании памяти в реальном времени, в kb
- Метод запроса:
GET/WS
Информация о версии¶
/version¶
Получение версии Clash
- Метод запроса:
GET
Кэш¶
/cache/fakeip/flush¶
Очистка кэша fakeip
- Метод запроса:
POST
/cache/dns/flush¶
Очистка кэша DNS
- Метод запроса:
POST
Рабочая конфигурация¶
/configs¶
Получение базовой конфигурации
- Метод запроса:
GET
Перезагрузка базовой конфигурации
- Метод запроса:
PUT - Параметр:
?force=true
Обновление базовой конфигурации
- Метод запроса:
PATCH - Данные:
'{"mixed-port": 7890}'
/configs/geo¶
Обновление GEO базы данных
- Метод запроса:
POST - Данные:
'{"path": "", "payload": ""}'
/restart¶
Перезапуск ядра
- Метод запроса:
POST - Данные:
'{"path": "", "payload": ""}'
Обновления¶
/upgrade¶
Обновление ядра
- Метод запроса:
POST - Данные:
'{"path": "", "payload": ""}'
/upgrade/ui¶
Обновление панели управления, требуется настройка external-ui
- Метод запроса:
POST
/upgrade/geo¶
Обновление GEO базы данных
- Метод запроса:
POST - Данные:
'{"path": "", "payload": ""}'
Группы политик¶
/group¶
Получение информации о группах политик
- Метод запроса:
GET
/group/group_name¶
Получение информации о конкретной группе политик
- Метод запроса:
GET
Очистка фиксированного выбора автоматической группы политик
- Метод запроса:
DELETE
/group/group_name/delay¶
Тестирование узлов/групп политик в указанной группе политик, возвращает новую информацию о задержке и очищает фиксированный выбор автоматической группы политик
- Метод запроса:
GET - Параметр:
?url=xxx&timeout=5000
Прокси¶
/proxies¶
Получение информации о прокси
- Метод запроса:
GET
/proxies/proxies_name¶
Получение информации о конкретном прокси
- Метод запроса:
GET
Выбор конкретного прокси
- Метод запроса:
PUT - Данные:
'{"name":"Япония"}'
/proxies/proxies_name/delay¶
Тестирование указанного прокси и возврат новой информации о задержке
- Метод запроса:
GET - Параметр:
?url=xxx&timeout=5000
Наборы прокси¶
/providers/proxies¶
Получение всей информации о всех наборах прокси
- Метод запроса:
GET
/providers/proxies/providers_name¶
Получение информации о конкретном наборе прокси
- Метод запроса:
GET
Обновление набора прокси
- Метод запроса:
PUT
/providers/proxies/providers_name/healthcheck¶
Запуск проверки работоспособности конкретного набора прокси
- Метод запроса:
GET
/providers/proxies/providers_name/proxies_name/healthcheck¶
Тестирование указанного прокси в наборе прокси и возврат новой информации о задержке
- Метод запроса:
GET - Параметр:
?url=xxx&timeout=5000
Правила¶
/rules¶
Получение информации о правилах
- Метод запроса:
GET
Наборы правил¶
/providers/rules¶
Получение всей информации о всех наборах правил
- Метод запроса:
GET
/providers/rules/providers_name¶
Обновление набора правил
- Метод запроса:
PUT
Соединения¶
/connections¶
Получение информации о соединениях
- Метод запроса:
GET/WS - Необязательный параметр:
?interval=milliseconds, гдеmilliseconds- интервал обновления, стандартное значение 1000 миллисекунд
Закрытие всех соединений
- Метод запроса:
DELETE
/connections/:id¶
Закрытие конкретного соединения
- Метод запроса:
DELETE
DNS запросы¶
/dns/query¶
Получение данных DNS запроса для указанного имени и типа
- Метод запроса:
GET - Параметр:
?name=example.com&type=A
DEBUG¶
/debug требует, чтобы уровень логирования был установлен на debug при запуске ядра
/debug/gc¶
Запуск принудительной сборки мусора
- Метод запроса:
PUT
/debug/pprof¶
Открыв в браузере http://${controller-api}/debug/pprof, можно просмотреть исходную отладочную информацию, где:
- allocs показывает ситуацию с выделением памяти для каждого вызова функции, включая размер памяти, выделенной в стеке и куче, а также количество выделений памяти. Этот отчет в основном помогает находить проблемы с утечками памяти и частыми запросами на выделение памяти в коде.
- отчет heap предоставляет подробную информацию об использовании памяти в куче программой, включая размер, количество и адреса выделенных блоков памяти, отсортированных по размеру. Этот отчет в основном используется для поиска мест с высоким использованием памяти, можно просмотреть размеры объектов в отчете heap, чтобы найти места с высоким использованием памяти.
Установите Graphviz, чтобы просматривать графическую отладочную информацию¶
Просмотр графического отчета Heap¶
Просмотр графического отчета Allocs¶
Отправка отчета¶
Откройте в браузере http://${controller-api}/debug/pprof/heap?raw=true, чтобы загрузить этот файл, и загрузите его в issues, чтобы сообщить о проблеме, с которой вы столкнулись.