Jump to content
  • 0

Можно ли изменить внутренний ip адрес для доменного имени keendns через REST?


Polsup
 Share

Question

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

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

 

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

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

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

image.thumb.png.5b3c1a9abad0c1d383819cf91b33f61a.png

 

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

image.thumb.png.e5e69e8a1ba5dd548bf49b3a1dd5a7ff.png

Link to comment
Share on other sites

  • 0

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

image.thumb.png.01ca9efd17b78cca593d15b17e99dad0.png

 

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

image.thumb.png.a12fea7a8cecdfac73c4c6bf67697bd2.png

Link to comment
Share on other sites

  • 0
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
Link to comment
Share on other sites

  • 0

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

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

Link to comment
Share on other sites

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

 

 

  • Thanks 2
Link to comment
Share on other sites

  • 0

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

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

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

Link to comment
Share on other sites

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.

 Share

  • Recently Browsing   0 members

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