API внешнего управления (по умолчанию 127.0.0.1:9090) делает скриптуемым каждое действие интерфейса. Ниже готовые примеры - чистый PowerShell, ничего ставить не нужно.

Пример 1: запрос и переключение узла

# состояние группы "Select"
Invoke-RestMethod "http://127.0.0.1:9090/proxies/Select"

# переключить на конкретный узел
Invoke-RestMethod -Method Put -Uri "http://127.0.0.1:9090/proxies/Select" -Body '{"name":"HK 01"}' -ContentType "application/json"

Пример 2: автовыбор узла с минимальной задержкой

$group = "Select"
$info = Invoke-RestMethod "http://127.0.0.1:9090/proxies/$group"
$best = $null; $bestDelay = [int]::MaxValue
foreach ($name in $info.all) {
  try {
    $r = Invoke-RestMethod ("http://127.0.0.1:9090/proxies/$name/delay?timeout=3000&url=" +
      [uri]::EscapeDataString("http://www.gstatic.com/generate_204"))
    if ($r.delay -lt $bestDelay) { $bestDelay = $r.delay; $best = $name }
  } catch {}
}
if ($best) {
  Invoke-RestMethod -Method Put -Uri "http://127.0.0.1:9090/proxies/$group" -Body (@{name=$best} | ConvertTo-Json) -ContentType "application/json"
  "switched to $best ($bestDelay ms)"
}

Сохраните как .ps1 и повесьте на планировщик задач раз в час - получите автоселектор управляемее url-test (например, активный только в нужные часы).

Пример 3: закрыть все соединения

Invoke-RestMethod -Method Delete "http://127.0.0.1:9090/connections"

Принудительное пересоздание всего после переключения - то же, что кнопка-метла в UI.

Пример 4: сменить режим маршрутизации

Invoke-RestMethod -Method Patch -Uri "http://127.0.0.1:9090/configs" -Body '{"mode":"Global"}' -ContentType "application/json"

Заметки

  • С заданным secret к каждому вызову добавляйте -Headers @{Authorization = "Bearer ваш-секрет"}.
  • Каталог эндпоинтов - во введении в API.
  • API меняет состояние на лету; перезагрузка профиля возвращает значения из конфига.
Совет: для дашбордов и оповещений о трафике читайте потоковые GET /traffic и GET /connections вместо опроса.