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

Вопрос

Опубликовано

Господа, подскажите как решить задачу.

Имеется keendns адрес yyy.xxx.keenetic.pro с пробросом внутрь на условно 192.168.1.216:8123

В локальной сети имеется основной (.216) и резервный(.218) серверы умного дома. При отказе основного сервера, управление передается на резервный.

Хочу через rest при передаче управления между серверами изменять адрес и порт назначения в keenetic peak. Т.е. с

yyy.xxx.keenetic.pro -> 192.168.1.216:8123

На

yyy.xxx.keenetic.pro -> 192.168.1.218:8123

Чтобы не менять адреса на клиентах, которые лезут из wan.

 

Рекомендуемые сообщения

  • 0
Опубликовано

Почти решил задачу. Но не могу понять, что я делаю не так.

Сбросить параметр upstream - могу.Через CLI установить - нет проблем. Через REST - не получается.

image.thumb.png.5b3c1a9abad0c1d383819cf91b33f61a.png

 

Почему-то не проходят в таком виде аргументы для команды.

image.thumb.png.e5e69e8a1ba5dd548bf49b3a1dd5a7ff.png

  • 0
Опубликовано

Решил проблему , расковыряв POST запросы из веб-админки Keenetic Peak

image.thumb.png.01ca9efd17b78cca593d15b17e99dad0.png

 

Налицо несоответствие наименования параметров документации! Попробуйте найти в описании метода  эти аргументы из скрина выше.

image.thumb.png.a12fea7a8cecdfac73c4c6bf67697bd2.png

  • 0
Опубликовано (изменено)
8 часов назад, Polsup сказал:

Решил проблему , расковыряв POST запросы из веб-админки Keenetic Peak

image.thumb.png.01ca9efd17b78cca593d15b17e99dad0.png

 

Налицо несоответствие наименования параметров документации! Попробуйте найти в описании метода  эти аргументы из скрина выше.

image.thumb.png.a12fea7a8cecdfac73c4c6bf67697bd2.png

в первую очередь стоило обратить внимание на то что это документация для cli, а не rest

Изменено пользователем Denis P
  • 0
Опубликовано

Спасибо за обратную связь. Подскажите, где можно найти документацию по Rest? В конце данной документации есть раздел, где описывается способ вызова методов CLI с перечисленными аргументами с помощью RCI. И отдельно никаких ссылок на другую документацию или рецепты нет. 

95% методов через rest вызывается успешно, аргументы соответствуют данной документации, что приводит к мысли об ошибке.

  • 0
Опубликовано
37 минут назад, Polsup сказал:

Спасибо за обратную связь. Подскажите, где можно найти документацию по Rest? В конце данной документации есть раздел, где описывается способ вызова методов CLI с перечисленными аргументами с помощью RCI. И отдельно никаких ссылок на другую документацию или рецепты нет. 

95% методов через rest вызывается успешно, аргументы соответствуют данной документации, что приводит к мысли об ошибке.

Отдельной документации по REST API, к сожалению, нет. Но всегда можно посмотреть, как выглядит JSON при чтении нужного раздела конфигурации.

Например, создадим ip http proxy через CLI:

Скрытый текст
(config)> ip http proxy test
Http::Manager: Created proxy "test".
(config-http-proxy)>

             auth - configure HTTP proxy credentials access
           domain - configure HTTP proxy base domain
       force-host - configure HTTP proxy Host header rewriting
    preserve-host - configure HTTP proxy Host header preservation
   security-level - configure HTTP proxy access
         upstream - configure HTTP proxy upstream
        x-real-ip - enable X-Real-IP and X-Forwarded-{For, Port, Proto} headers
(config-http-proxy)> security-level public
Http::Proxy: "test": set public security level.
(config-http-proxy)> upstream http 1.2.3.4 567
Http::Proxy: "test": set http upstream 1.2.3.4, port 567.
(config-http-proxy)> domain ndns
Http::Proxy: "test": enabled NDNS domain.
(config-http-proxy)> auth
Http::Proxy: "test": enabled authentication.
(config-http-proxy)>

 

После этого читаем конфигурацию в виде JSON:

Скрытый текст
GET rci/ip/http/proxy

{
  "test": {
    "upstream": {
      "proto": "http",
      "upstream": "1.2.3.4",
      "port": "567"
    },
    "domain": {
      "ndns": true
    },
    "security-level": {
      "public": true
    },
    "auth": true
  }
}

 

 

Меняем upstream и порт:

Скрытый текст
POST rci/ip/http/proxy

запрос:

{
    "test": {
        "upstream": {
            "proto": "http",
            "upstream": "5.6.7.8",
            "port": "801"
        }
    }
}

ответ:

{
    "test": {
        "upstream": {
            "status": [
                {
                    "status": "message",
                    "code": "18546802",
                    "ident": "Http::Proxy",
                    "message": "\"test\": set http upstream 5.6.7.8, port 801."
                }
            ]
        }
    }
}

 

 

Перечитываем конфигурацию:

Скрытый текст
GET rci/ip/http/proxy

{
  "test": {
    "upstream": {
      "proto": "http",
      "upstream": "5.6.7.8",
      "port": "801"
    },
    "domain": {
      "ndns": true
    },
    "security-level": {
      "public": true
    },
    "auth": true
  }
}

 

 

  • 0
Опубликовано

Спасибо большое. Я к этому как раз и пришел опытным путем. Правда, сначала через f12 посмотрел на странице routera_ip/a, что там отправляется в запросах. Чуть позже уже догадался что можно и через get. Было бы круто ваш ответ положить в faq по роутерам. Что-то вроде "как посмотреть актуальный набор аргументов rest команд (rci) для роутеров keenetic".

Сейчас в faq есть только про cli.

Предложенный вами вариант самый удобный! Плюсую👍🏻

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.