Jump to content

Question

Posted

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

Имеется 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.

 

6 answers to this question

Recommended Posts

  • 0
Posted

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

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

image.thumb.png.5b3c1a9abad0c1d383819cf91b33f61a.png

 

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

image.thumb.png.e5e69e8a1ba5dd548bf49b3a1dd5a7ff.png

  • 0
Posted

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

image.thumb.png.01ca9efd17b78cca593d15b17e99dad0.png

 

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

image.thumb.png.a12fea7a8cecdfac73c4c6bf67697bd2.png

  • 0
Posted (edited)
8 часов назад, Polsup сказал:

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

image.thumb.png.01ca9efd17b78cca593d15b17e99dad0.png

 

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

image.thumb.png.a12fea7a8cecdfac73c4c6bf67697bd2.png

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

Edited by Denis P
  • Y'r wrong 2
  • 0
Posted

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

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

  • 0
Posted
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
  }
}

 

 

  • Thanks 2
  • 0
Posted

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

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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...