Перейти к содержанию

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
go tool pprof -http=:8080 http://127.0.0.1:xxxx/debug/pprof/heap

Полное изображение

Просмотр графического отчета Allocs
go tool pprof -http=:8080 http://127.0.0.1:xxxx/debug/pprof/allocs

Пример вывода

Отправка отчета

Откройте в браузере http://${controller-api}/debug/pprof/heap?raw=true, чтобы загрузить этот файл, и загрузите его в issues, чтобы сообщить о проблеме, с которой вы столкнулись.