Что такое интерфейс управления

При запуске ядро открывает на машине HTTP-интерфейс. В конфиге это external-controller, по умолчанию обычно 127.0.0.1:9090. Страницы соединений, правил и журнала в самом клиенте читают именно его — интерфейс просто оболочка поверх. Раз интерфейс открытый, читать его могут и другие программы.

external-controller: 127.0.0.1:9090
secret: "впишите длинную случайную строку"
external-ui: ui

secret — это ключ доступа, который панель попросит при подключении. Пустое значение означает, что любая программа, дотянувшаяся до этого адреса и порта, может переключать узлы, менять режим и читать список посещённых доменов. external-ui необязателен: положите статические файлы панели в эту папку, и ядро отдаст их на порту 9090 — не придётся зависеть от чужого сайта.

Партнёрский материалОткуда взять ссылку на подписку?Партнёрский сервис даёт 1 ГБ высокоскоростного трафика Гонконга при регистрации — импорт в один клик.Получить быстрые серверы

Три типа панелей

  • Встроенная в клиент. У Clash Verge Rev, Mihomo Party и им подобных соединения, правила и журнал уже есть на экране. Для повседневных задач этого хватает, настраивать нечего.
  • Отдельные веб-панели с открытым кодом — чаще всего попадаются metacubexd, yacd и zashboard. Больше колонок, гибче сортировка, массовое закрытие соединений: в целом подробнее встроенного вида.
  • Удалённое управление. Когда ядро работает на роутере или на той машине, что стоит включённой дома, а рулить хочется из браузера ноутбука, внешняя панель перестаёт быть излишеством и становится единственным вариантом.

Подключение

  1. Сначала посмотрите, какой адрес и порт указан в external-controller. Если вы их меняли, перезагрузите конфиг — перезапуска окна недостаточно.
  2. Откройте панель и впишите хост (для этой же машины 127.0.0.1), порт и secret.
  3. Если соединения нет, разделите два случая: неверный secret обычно даёт явное сообщение unauthorized, а закрытый порт просто крутится или отваливается по тайм-ауту.
  4. Панель, отданная по https, при обращении к обычному http-интерфейсу на вашей машине блокируется браузером как смешанное содержимое. Либо поднимайте панель локально, либо разрешайте исключение для этого сайта.

В чём панель действительно сильнее

  • Проследить один домен. Найдите его в списке соединений — увидите, какое правило сработало, через какой узел ушёл трафик, сколько соединение живёт и сколько байт прошло в каждую сторону. Если написанное вами правило не работает, здесь и обнаруживается более раннее правило, которое его перехватило.
  • Найти пожирателя канала. Отсортируйте по отдаче или приёму, и то, что забивает линию, немедленно окажется наверху. В восьми случаях из десяти это какая-то программа, обновляющаяся в фоне.
  • Закрыть зависшее соединение. Если оно давно не двигается, но всё ещё держит узел, закройте его: программа переподключится и заново пройдёт через правила. Тот же приём нужен после правки правил — старые соединения никуда не переезжают и остаются на прежнем выходе.

Не вешайте его на 0.0.0.0

Замените в external-controller адрес 127.0.0.1 на 0.0.0.0 — и до интерфейса дотянется любое устройство в сети. А этот интерфейс умеет переписывать конфиг, переключать узлы и показывать домены, которые вы открывали. В общежитии, офисе или кафе это всё равно что оставить пульт на столе.

Если удалённый доступ действительно нужен: задайте длинный secret, открывайте порт только в сети, которой доверяете, или пробрасывайте его через SSH вместо прямого доступа. Когда вы пользуетесь чужой размещённой панелью, запросы идут прямо из вашего браузера к вашему же интерфейсу и данные не попадают на их сервер — но скрипт на этой странице всё равно чужой. Смущает — положите файлы у себя или используйте external-ui.

Смена secret или порта вступает в силу только после перезагрузки конфига, и панели тоже нужно скормить новые значения. Если unauthorized повторяется, проверьте, не стёрло ли строку с secret очередное обновление подписки: держать её в override-фрагменте надёжнее, чем править сгенерированный файл.