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

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": ""}' - данные обновляемого ресурса

В большинстве случаев передаваемые данные имеют вид '{"path": "", "payload": ""}' и могут содержать путь к новому конфигурационному файлу

Логи

/logs

Метод запроса: GET

  • Получение логов в реальном времени

Информация о трафике

/traffic

Метод запроса: GET

  • Получение информации о трафике в реальном времени, в kbps

Информация о памяти

/memory

Метод запроса: GET

  • Получение информации об использовании памяти в реальном времени, в kb

Информация о версии

/version

Метод запроса: GET

  • Получение версии Clash

Кэш

/cache/fakeip/flush

Метод запроса: POST

  • Очистка кэша fakeip

Рабочая конфигурация

/configs

Метод запроса: GET

  • Получение базовой конфигурации

Метод запроса: PUT

  • Перезагрузка базовой конфигурации, требуется отправка данных, URL должен содержать ?force=true для принудительного выполнения

Метод запроса: PATCH

  • Обновление базовой конфигурации, требуется отправка данных в формате '{"mixed-port": 7890}', изменяйте на нужные параметры конфигурации

/configs/geo

Метод запроса: POST

  • Обновление GEO базы данных, требуется отправка данных

/restart

Метод запроса: POST

  • Перезапуск ядра, требуется отправка данных

Обновления

/upgrade

Метод запроса: POST

  • Обновление ядра, требуется отправка данных

/upgrade/ui

Метод запроса: POST

  • Обновление панели управления, требуется настройка external-ui

/upgrade/geo

Метод запроса: POST

  • Обновление GEO базы данных, требуется отправка данных

Группы политик

/group

Метод запроса: GET

  • Получение информации о группах политик

/group/group_name

Метод запроса: GET

  • Получение информации о конкретной группе политик

Метод запроса: DELETE

  • Очистка фиксированного выбора автоматической группы политик

/group/group_name/delay

Метод запроса: GET

  • Тестирование узлов/групп политик в указанной группе политик, возвращает новую информацию о задержке и очищает фиксированный выбор автоматической группы политик
  • URL должен содержать ?url=xxx&timeout=5000, изменяйте по необходимости

Прокси

/proxies

Метод запроса: GET

  • Получение информации о прокси

/proxies/proxies_name

Метод запроса: GET

  • Получение информации о конкретном прокси

Метод запроса: PUT

  • Выбор конкретного прокси, требуется отправка данных в формате '{"name":"Япония"}'

/proxies/proxies_name/delay

Метод запроса: GET

  • Тестирование указанного прокси и возврат новой информации о задержке
  • URL должен содержать ?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

  • Тестирование указанного прокси в наборе прокси и возврат новой информации о задержке
  • URL должен содержать ?url=xxx&timeout=5000, изменяйте по необходимости

Правила

/rules

Метод запроса: GET

  • Получение информации о правилах

Наборы правил

/providers/rules

Метод запроса: GET

  • Получение всей информации о всех наборах правил

/providers/rules/providers_name

Метод запроса: PUT

  • Обновление набора правил

Соединения

/connections

Метод запроса: GET

  • Получение информации о соединениях

Метод запроса: DELETE

  • Закрытие всех соединений

/connections/:id

Метод запроса: DELETE

  • Закрытие конкретного соединения

DNS запросы

/dns/query

Метод запроса: GET

  • Получение данных DNS запроса для указанного имени и типа
  • URL должен содержать ?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, чтобы сообщить о проблеме, с которой вы столкнулись.