Polsup Posted October 16, 2022 Posted October 16, 2022 Господа, подскажите как решить задачу. Имеется 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. Quote
0 Polsup Posted October 17, 2022 Author Posted October 17, 2022 Почти решил задачу. Но не могу понять, что я делаю не так. Сбросить параметр upstream - могу.Через CLI установить - нет проблем. Через REST - не получается. Почему-то не проходят в таком виде аргументы для команды. Quote
0 Polsup Posted October 21, 2022 Author Posted October 21, 2022 Решил проблему , расковыряв POST запросы из веб-админки Keenetic Peak Налицо несоответствие наименования параметров документации! Попробуйте найти в описании метода эти аргументы из скрина выше. Quote
0 Denis P Posted October 22, 2022 Posted October 22, 2022 (edited) 8 часов назад, Polsup сказал: Решил проблему , расковыряв POST запросы из веб-админки Keenetic Peak Налицо несоответствие наименования параметров документации! Попробуйте найти в описании метода эти аргументы из скрина выше. в первую очередь стоило обратить внимание на то что это документация для cli, а не rest Edited October 22, 2022 by Denis P 2 Quote
0 Polsup Posted October 22, 2022 Author Posted October 22, 2022 Спасибо за обратную связь. Подскажите, где можно найти документацию по Rest? В конце данной документации есть раздел, где описывается способ вызова методов CLI с перечисленными аргументами с помощью RCI. И отдельно никаких ссылок на другую документацию или рецепты нет. 95% методов через rest вызывается успешно, аргументы соответствуют данной документации, что приводит к мысли об ошибке. Quote
0 eralde Posted October 22, 2022 Posted October 22, 2022 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 } } 2 Quote
0 Polsup Posted October 22, 2022 Author Posted October 22, 2022 Спасибо большое. Я к этому как раз и пришел опытным путем. Правда, сначала через f12 посмотрел на странице routera_ip/a, что там отправляется в запросах. Чуть позже уже догадался что можно и через get. Было бы круто ваш ответ положить в faq по роутерам. Что-то вроде "как посмотреть актуальный набор аргументов rest команд (rci) для роутеров keenetic". Сейчас в faq есть только про cli. Предложенный вами вариант самый удобный! Плюсую👍🏻 Quote
Question
Polsup
Господа, подскажите как решить задачу.
Имеется 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
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.