-
Постов
4 903 -
Зарегистрирован
-
Посещение
-
Победитель дней
80
Тип контента
Профили
Форумы
Галерея
Загрузки
Блоги
События
Сообщения, опубликованные vasek00
-
-
17 минут назад, Skrill0 сказал:
TProxy не заработает, так как для маркировки в iptables нужно отключить hw_nat | Спасибо @avn.
А какже тогда маркировка в прошивке, которая практически везде используется, например клиент который помещен в профиль.
-
10 часов назад, Ant сказал:
2). Второй регулятор зарегистрировался с 3-5 попытки. Проблема в том, что соединение Wi-Fi у него постоянно отваливается. То есть значок Wi-Fi на устройстве пропадает, в программе Smart Life он указан как "не в сети", и в Кинетике этот регулятор отмечен как "не в сети". Помогает выключение-включение регулятора, после чего он на какое-то время опять коннектится к wi-fi. После чего все повторяется.
В наличие умные выключатели и программа Smart Life. Как писали выше все это работает в своем собственном сегменте 2.4 кроме них никого нет. Мало того в данном сегменте настройки Beamforming/QAM256/Airtime Fairness включены пока не мешают.
Иногда бывает бзик, правда все работает все равно (тут уже писал про это), ну бзик (замечен как стабильный) и всегда при моих эксп. с клиентами и профилями для них в WEB роутера (клиентов умного дома вообще не трогаю).
[I] Oct 10 00:58:47 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint0": STA(хх:хх:хх:хх:хх:хх) had disassociated by STA (reason: STA is leaving or has left BSS).только MAC нормальный.
Пока есть подозрения на что то из WEB, или в ПО контроль интерфейсов/таблиц/или еще что-то, так как в данное время делал часто перенос клиента из одного профиля в другой и только это.
На вопрос описать данное сообщение "had disassociated by STA (reason: STA is leaving or has left BSS)" или с чем оно может быть связано, чтоб найти концы где смотреть - пока тишина.
-
41A11 - KN1811, "служба классификации трафика" всегда была включена, не чего такого от нее не обнаружено.
Есть пики но это по "show threads" говорят о http/rci
Скрытый текстНа старом WEB
"Queue::IDFIZVDASZLIWOWC::http/rci": { "tid": 1246, "lock_list_complete": true, "locks": {}, "backtrace": { "calls": "\nThread::State::GetBacktrace() [clone .part.0]+0x40\nThread::AttachThreadsTo(Thread::Monitor const&, Xml::Node&)+0x1a8\nCore::Command::(anonymous namespace)::ShowThreads::Execute(Command::Request const&, Command::Response&) const+0x34\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Parse_(Command::Request const&, Command::Response&)+0x5dc\nCore::Configurator::Parse(Command::Request const&, Command::Response&)+0x18\nCore::Command::(anonymous namespace)::Parse::Execute(Command::Request const&, Command::Response&) const+0x9c\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Serve(Command::Request const&, Command::Response&)+0x3d0\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0x6c8\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xaec\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::JsonPost(Core::Configurator&, Core::Scgi::Request const&, Json::Document const&, Core::Scgi::Trace&, Json::Document&, bool*)+0x13c\nCore::Scgi::ThreadPool::Task_::ProcessJsonRequest_(Core::Configurator&, Core::Scgi::Request const&, Core::Scgi::Trace&, Array<char>&, Io::OStream&)+0x350\nCore::Scgi::ThreadPool::Task_::Run()+0x144\nTask::Thread::Run_()+0x30c\nTask::Thread::Run()+0x18\nThread::StartRoutine_(void*)+0x2c8\nstart()+0x90\n__clone()+0x30\n", "error": "" }, "statistics": { "interval": 30, "cpu": { "now": "1959.824913", "min": 0, "max": 38, "avg": 6, "cur": 26 } } }, "Queue::IDFIZVDASZLIWOWC::http/rci": { "tid": 1246, "lock_list_complete": true, "locks": {}, "backtrace": { "calls": "\nThread::State::GetBacktrace() [clone .part.0]+0x40\nThread::AttachThreadsTo(Thread::Monitor const&, Xml::Node&)+0x1a8\nCore::Command::(anonymous namespace)::ShowThreads::Execute(Command::Request const&, Command::Response&) const+0x34\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Parse_(Command::Request const&, Command::Response&)+0x5dc\nCore::Configurator::Parse(Command::Request const&, Command::Response&)+0x18\nCore::Command::(anonymous namespace)::Parse::Execute(Command::Request const&, Command::Response&) const+0x9c\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Serve(Command::Request const&, Command::Response&)+0x3d0\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0x6c8\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xaec\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::JsonPost(Core::Configurator&, Core::Scgi::Request const&, Json::Document const&, Core::Scgi::Trace&, Json::Document&, bool*)+0x13c\nCore::Scgi::ThreadPool::Task_::ProcessJsonRequest_(Core::Configurator&, Core::Scgi::Request const&, Core::Scgi::Trace&, Array<char>&, Io::OStream&)+0x350\nCore::Scgi::ThreadPool::Task_::Run()+0x144\nTask::Thread::Run_()+0x30c\nTask::Thread::Run()+0x18\nThread::StartRoutine_(void*)+0x2c8\nstart()+0x90\n__clone()+0x30\n", "error": "" }, "statistics": { "interval": 30, "cpu": { "now": "2471.824919", "min": 0, "max": 38, "avg": 14, "cur": 14 } } }, "Queue::IDFIZVDASZLIWOWC::http/rci": { "tid": 1246, "lock_list_complete": true, "locks": {}, "backtrace": { "calls": "\nThread::State::GetBacktrace() [clone .part.0]+0x40\nThread::AttachThreadsTo(Thread::Monitor const&, Xml::Node&)+0x1a8\nCore::Command::(anonymous namespace)::ShowThreads::Execute(Command::Request const&, Command::Response&) const+0x34\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Parse_(Command::Request const&, Command::Response&)+0x5dc\nCore::Configurator::Parse(Command::Request const&, Command::Response&)+0x18\nCore::Command::(anonymous namespace)::Parse::Execute(Command::Request const&, Command::Response&) const+0x9c\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Serve(Command::Request const&, Command::Response&)+0x3d0\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0x6c8\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xaec\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::JsonPost(Core::Configurator&, Core::Scgi::Request const&, Json::Document const&, Core::Scgi::Trace&, Json::Document&, bool*)+0x13c\nCore::Scgi::ThreadPool::Task_::ProcessJsonRequest_(Core::Configurator&, Core::Scgi::Request const&, Core::Scgi::Trace&, Array<char>&, Io::OStream&)+0x350\nCore::Scgi::ThreadPool::Task_::Run()+0x144\nTask::Thread::Run_()+0x30c\nTask::Thread::Run()+0x18\nThread::StartRoutine_(void*)+0x2c8\nstart()+0x90\n__clone()+0x30\n", "error": "" }, "statistics": { "interval": 30, "cpu": { "now": "2557.824915", "min": 0, "max": 37, "avg": 12, "cur": 26 } } }, или тот же selftest в эти моменты <thread> <name>Queue::IDFIZVDASZLIWOWC::http/rci</name> <tid>1246</tid> <lock_list_complete>yes</lock_list_complete> <locks> <lock> <precedence> <name>TASK_QUEUE_THREAD</name> <order>97</order> </precedence> <state>WAITING</state> <since>Oct 9 11:31:15</since> <duration>4.600787</duration> </lock> </locks> <backtrace> <calls> <![CDATA[ __switch_to()+0x5c futex_wait_queue_me()+0xb4 futex_wait()+0xc0 do_futex()+0x64 SyS_futex()+0xa8 el0_svc_naked()+0x34 0xffffffffffffffff()+0x0 __setjmp()+0x38 __syscall_cp_asm()+0x24 __syscall_cp_c()+0x64 __timedwait_cp()+0x94 pthread_cond_timedwait()+0xdc Condition::Wait(long) const+0x144 Task::Thread::Run_()+0x494 Task::Thread::Run()+0x18 Thread::StartRoutine_(void*)+0x2c8 start()+0x90 __clone()+0x30 ]]> </calls> <error/> </backtrace> <statistics> <interval>30</interval> <cpu> <now>1825.824918</now> <min>0</min> <max>39</max> <avg>8</avg> <cur>0</cur> </cpu> </statistics> </thread> <thread> <name>Queue::IDFIZVDASZLIWOWC::http/rci</name> <tid>1246</tid> <lock_list_complete>yes</lock_list_complete> <locks> <lock> <precedence> <name>TASK_QUEUE_THREAD</name> <order>97</order> </precedence> <state>WAITING</state> <since>Oct 9 11:31:32</since> <duration>5.127473</duration> </lock> </locks> <backtrace> <calls> <![CDATA[ __switch_to()+0x5c futex_wait_queue_me()+0xb4 futex_wait()+0xc0 do_futex()+0x64 SyS_futex()+0xa8 el0_svc_naked()+0x34 0xffffffffffffffff()+0x0 __setjmp()+0x38 __syscall_cp_asm()+0x24 __syscall_cp_c()+0x64 __timedwait_cp()+0x94 pthread_cond_timedwait()+0xdc Condition::Wait(long) const+0x144 Task::Thread::Run_()+0x494 Task::Thread::Run()+0x18 Thread::StartRoutine_(void*)+0x2c8 start()+0x90 __clone()+0x30 ]]> </calls> <error/> </backtrace> <statistics> <interval>30</interval> <cpu> <now>1843.824918</now> <min>0</min> <max>39</max> <avg>8</avg> <cur>0</cur> </cpu> </statistics> </thread> <thread> <name>Queue::IDFIZVDASZLIWOWC::http/rci</name> <tid>1246</tid> <lock_list_complete>yes</lock_list_complete> <locks> <lock> <precedence> <name>TASK_QUEUE_THREAD</name> <order>97</order> </precedence> <state>WAITING</state> <since>Oct 9 11:30:10</since> <duration>4.981449</duration> </lock> </locks> <backtrace> <calls> <![CDATA[ __switch_to()+0x5c futex_wait_queue_me()+0xb4 futex_wait()+0xc0 do_futex()+0x64 SyS_futex()+0xa8 el0_svc_naked()+0x34 0xffffffffffffffff()+0x0 __setjmp()+0x38 __syscall_cp_asm()+0x24 __syscall_cp_c()+0x64 __timedwait_cp()+0x94 pthread_cond_timedwait()+0xdc Condition::Wait(long) const+0x144 Task::Thread::Run_()+0x494 Task::Thread::Run()+0x18 Thread::StartRoutine_(void*)+0x2c8 start()+0x90 __clone()+0x30 ]]> </calls> <error/> </backtrace> <statistics> <interval>30</interval> <cpu> <now>1760.824902</now> <min>0</min> <max>37</max> <avg>10</avg> <cur>0</cur> </cpu> </statistics> </thread>
-
1 час назад, Denis P сказал:
А в нынешнем виде он вам чем не угодил?
Это только часть того что можно, а остальное где взять не подскажите.
-
Возможно ли реализовать что-то наподобие по стат. в Wifi из примера ниже
Данный роутер так же на базе Mediatek. Интересует вывод в части wifi - Статистика
-
4
-
-
3 часа назад, aleeko сказал:
ДОкументация на ГИтхабе не нашелНа данном форуме
~ # wget -qO - localhost:79/rci/show/ip/policy { "Policy0": { "description": "Cloud", "mark": "ffffd00", "table4": 42, "route4": { "route": [ ... ~ # wget -qO - localhost:79/rci/show/interface | jq '.[] | select(.type=="Wireguard")' | jq -r '.id' Wireguard0 Wireguard2 Wireguard3 Wireguard4 ~ # ~ # curl -X POST -d '{}' "http://localhost:79/rci/interface/connect?name=PPPoE0&via=ISP" { "status": [ { "status": "message", "code": "72286209", "ident": "Network::Interface::Ppp", "message": "\"PPPoE0\": enabled connection via ISP interface." } ] }~ # ~ # curl -s 127.0.0.1:79/rci/show/interface | jq -r '.[] | select(."interface-name"=="ISP") | .id' GigabitEthernet1 ~ # ~ # curl -s "127.0.0.1:79/rci/ip/http/security-level" | grep ssl | sed 's/.ssl.://' | tr -d " " true ~ # -
7 минут назад, aleeko сказал:
Нет, wget с логом не то, там нет упоминаний и отсылки table и к интерфейсам пригодных для скармливания "ip rule"
Здесь как раз таки надо обращаться какой то командой к роутеру что бы вытащить через entware эту инфу о "policy", либо смотреть какой то командой в сетевых параметрах, где упоминается соотношения имени интерфейса к присвоенным им политикой номера таблиц."ip rule" + "ip ro show table XXXX"Этих не хватит.
Для перезагрузки используют /opt/etc/init.d скрипт с "S110Run" или хуки от /opt/ndm/...
Скрытый текст~ # ip rule 0: from all lookup local 10: from all fwmark 0xffffcff lookup main 200: from all fwmark 0xffffd00 lookup 42 201: from all fwmark 0xffffd00 blackhole 202: from all fwmark 0xffffd01 lookup 43 203: from all fwmark 0xffffd01 blackhole 204: from all fwmark 0xffffd02 lookup 44 ... ~ # ip ro show table 42 default dev nwg0 scope link 10.2.0.1 dev nwg4 scope link ....где
42 у меня например ip policy Policy0/description Cloud
44 у меня ip policy Policy2/description Anti
Номера 42 и т.д. идут пока по порядку согласно конф файла
ip policy Policy0 -------> 42 description Cloud ... ! ip policy Policy1 -------> 43 description In-2 ... ! ip policy Policy2 ------> 44 description Anti ...
-
1 час назад, aleeko сказал:
Лично у меня вопрос... кто знает?!
При работе через интерфейс мы можем добавлять новые таблицы, и таблицы интерфейсов могут получить новые значения.
Как через скрипт получить информацию, в какой именно таблице сейчас прячется интерфейс nwg2 или любой другой? - что бы каждый раз не лазать ручками редактировать скрипт?На форуме куча есть примеров через wget - например
wget -qO - --post-data='[{"log":{"once":true}}]' localhost:79/rci/showЕсть и еще - поиск
Для меня проще команды "ip rule" + "ip ro show table XXXX" + достаточно один раз посмотреть вывод "show ip policy"
Policy0 "description": "Cloud", "mark": "ffffd00", "table4": 42 .... "route": [ { ... "interface": "Wireguard0", ... }, { .... "interface": "Wireguard4", ... "Policy2": { "description": "Anti", "mark": "ffffd02", "table4": 44, "route4": { ... { ... "interface": "Wireguard4", ... сопоставить с конф файлом ip policy Policy0 description Cloud permit global Wireguard0opkg install ip-full ip-bridge
-
10 часов назад, aleeko сказал:
становится интереснее....
иначе получится так, что все будет отваливаться при перезапуске интерфейса или перезагрузке роутера
- а скрипты по автозапускам, с проверкой поднятых интерфейсов видимо надо искать в других ветках...
Вы использовали у себя скрипты автозапуска?Вам предложен вариант как это можно сделать.
с проверкой поднятых интерфейсов видимо надо искать в других ветках...
видимо так, на данном форуме есть куча вариантов описанных что и как только приложить некоторые усилия.
Как говорится "без труда не выловишь и рыбку из пруда", второе "Подразумевается, что на нашем форуме пишут люди заинтересованные и технически подкованные, способные на минимальный анализ происходящего"
-
1
-
-
3 часа назад, aleeko сказал:
Я так понимаю, такой же логики следует придерживаться, если я буду заворачивать трафик в прокси настроенный на Кинетике?
Логика проста - сначала все ручками чтоб работало, а потом уже скрипт для автом. запуска.
-
18 часов назад, bigpu сказал:
Конфигурация у меня заработала корректно, я только изменил ваш конфиг "outbounds", взяв с бесплатного сервера конфиг "V2ray Vless". Единственно что смущает, грузит неплохо проц Кинетика - в покое теперь 25-35%, а под тем же СпидТест уходит выше 90%. Это на Viva 1910 c 7621, как будет ворочаться на стомегабитных Кинетиках, непонятно.
Пока на mips не гонял, но на arm в самой простой конфигурации proxy->REDIRECT (без routing и DNS) попробовал
Скрытый текстбесплатный 7 дневка
{ "inbounds": [ { "tag": "dokodemo-door", "port": 10810, "listen": "192.168.1.1", "protocol": "dokodemo-door", "settings": { "network": "tcp,udp", "followRedirect": true }, "sniffing": { "enabled": true, "destOverride": ["http", "tls"] }, "streamSettings": { "sockopt": { "tproxy": "redirect" } } } ], "outbounds": [ { "protocol": "vless", "settings": { "vnext": [ { "address": "ru2.vpnjantit.com", "port": 10002, "users": [ { "encryption": "none", "id": "8f.............366" } ] } ] }, "streamSettings": { "network": "ws", "security": "tls", "tlsSettings": { "disableSystemRoot": false }, "wsSettings": { "path": "/vpnjantit" }, "xtlsSettings": { "disableSystemRoot": false } } } ] }плюс iptables
iptables -t nat -N V2RAY .... iptables -t nat -A V2RAY -p tcp -j REDIRECT --to-ports 10810 iptables -t nat -A PREROUTING -p tcp -j V2RAYВ итоге получил на 100Мбит канале - 100 выдает
и по памяти
Скрытый текст/proc/5590 # cat status Name: xray Umask: 0022 State: S (sleeping) Tgid: 5590 Ngid: 0 Pid: 5590 PPid: 3274 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 128 Groups: VmPeak: 1251720 kB VmSize: 1251720 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 30280 kB VmRSS: 21220 kB RssAnon: 8720 kB RssFile: 12500 kB RssShmem: 0 kB VmData: 52228 kB VmStk: 132 kB VmExe: 10256 kB VmLib: 4 kB VmPTE: 108 kB VmPMD: 20 kB VmSwap: 0 kB Threads: 9 SigQ: 2/1955 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: fffffffc3bba3a00 SigIgn: 0000000000000000 SigCgt: fffffffd7fc1feff CapInh: 0000000000000000 CapPrm: 0000003fffffffff CapEff: 0000003fffffffff CapBnd: 0000003fffffffff CapAmb: 0000000000000000 Speculation_Store_Bypass: unknown Cpus_allowed: 3 Cpus_allowed_list: 0-1 voluntary_ctxt_switches: 17 nonvoluntary_ctxt_switches: 3 /proc/5590 #Если сравнить с AdguardHome по потреблению
/proc/972 # cat status Name: AdGuardHome Umask: 0022 State: S (sleeping) Tgid: 972 Ngid: 0 Pid: 972 PPid: 1 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 64 Groups: VmPeak: 885228 kB VmSize: 885228 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 176320 kB VmRSS: 87632 kB RssAnon: 73136 kB RssFile: 14496 kB RssShmem: 0 kB VmData: 206280 kB VmStk: 132 kB VmExe: 7412 kB VmLib: 4 kB VmPTE: 404 kB VmPMD: 20 kB VmSwap: 0 kB Threads: 8-
1
-
-
11 час назад, Skrill0 сказал:
Давайте рассмотрим на примере связки VLess+XTLS+Reality
Хитро с встроенным.
-
1
-
-
В продолжение того что писал выше про использование - tun2socks или точнее xray-tun2socks
1. Конфиг по xray должен быть настроен на использование sokcs
... "inbounds": [ { "tag": "socks", "port": 10808, "listen": "127.0.0.1", "protocol": "socks", ...Примечание - do-not use dns name , instead use VPS ip address
2. В итоге получаем IP адрес которым уже можно управлять в прошивки
3. Вариант примера запуска. Есть переменные "xray_ip" (сервер) и "def_gate" (интерфейс через который можно добраться до данного сервера xray_ip) их можно определить пока "ручками" + далее уже подъем tun интерфейса + маршрут на сам сервер.
#!/bin/bash #variables xray_ip=$(grep 'address' config.json | sed ':a;N;$!ba;s/\n//g' |sed 's/"//g'| sed 's/,//g' | awk '{print$2}') #This is a pretty bad way to find the remote ip . so if u can just paste the ip address of your VPS here def_gate=$(ip r | grep 'default' | awk '{print$3}') # This will output your default gateway ip address. ip tuntap add dev tun0 mode tun user tun2socks ip addr add 10.0.0.1/24 dev tun0 ## ip addr add fdfe:....::1/125 dev tun0 ip route add $xray_ip via $def_gate ip link set tun0 up ## ip -6 link set tun0 up ip route add default dev tun0 ## ip -6 route add default dev tun0 xray -c config.json > /dev/null & sleep 3 ./tun2socks -device tun://tun0 -proxy socks5://127.0.0.1:10808 # ip tuntap del dev tun0 mode tun # ip route del $xray_ip via $def_gateОсновная команда тут "ip route add default dev tun0" т.е. если делать все в основном профиле то ВСЕ будет завернуто на него так как он tun0 будет default ну если нет каких то стат маршрутов на нужные IP.
Можно попробовать с созданными профилями в прошифке но тогда команда будет выглядеть так
ip route replaced default dev tun0 table НОМЕР_профиля ip route add xray_ip_сервер via IP_провайдераНадо попробовать будет на бесплатном 7 дневном vray сервере.
-
2
-
-
Ремарка по Proxy серверу.
По работе proxy и им подобных - нужен все время доступ до адреса самого сервера, это делается стат маршрутом нужного адреса сервера через нужный интерфейс провайдера. Например сервер proxy 195......74
ip route add 195.IP_сервера.74 dev IF_интерфейсВ прошивке же есть Proxy сервис и используется badvpn-tun2socks он так же есть в Entware
~ # opkg list | grep tun2socks badvpn - 1.999.133-1 - The tun2socks program "socksifes" TCP connections at the network layer. It implements a TUN device which accepts all incoming TCP connections (regardless of destination IP), and forwards the connections through a SOCKS server. This allows you to forward all connections through SOCKS, without any need for application support. It can be used, for example, to forward connections through a remote SSH server. ~ #но для запуска имеем
/opt/bin # ./badvpn-tun2socks --netif-ipaddr is required Failed to parse arguments Usage: ./badvpn-tun2socks [--help] [--version] [--logger <stdout/syslog>] (logger=syslog? [--syslog-facility <string>] [--syslog-ident <string>] ) [--loglevel <0-5/none/error/warning/notice/info/debug>] [--channel-loglevel <channel-name> <0-5/none/error/warning/notice/info/debug>] ... [--tundev <name>] --netif-ipaddr <ipaddr> --netif-netmask <ipnetmask> --socks-server-addr <addr> [--netif-ip6addr <addr>] [--username <username>] [--password <password>] [--password-file <file>] [--append-source-to-username] [--udpgw-remote-server-addr <addr>] [--udpgw-max-connections <number>] [--udpgw-connection-buffer-size <number>] [--udpgw-transparent-dns] [--socks5-udp] Address format is a.b.c.d:port (IPv4) or [addr]:port (IPv6). -rwxr-xr-x 1 root root 217928 Aug 24 11:01 badvpn-tun2socks -rwxr-xr-x 1 root root 78576 Aug 24 11:01 badvpn-udpgw
только --socks-server-addr <addr> а в прошивке еще и http/https
badvpn-tun2socks --socks-server-addr <addr> ....
и в итоге может быть как то так
default dev t2s_tun0 scope link хх.IP_сервер.хх dev ppp0 scope linkВозможно тогда хорошо бы иметь в прошивке раз используется tun2socks страницу c WEB по его использованию/созданию туннеля. Или например выше
где например в https://github.com/xjasonlyu/tun2socks
ЦитатаFeatures
- Proxy Protocols: HTTP/Socks4/Socks5/Shadowsocks with authentication support for remote connections.
или go-tun2socks - https://github.com/v2ray/go-tun2socks
ЦитатаSupport both TCP and UDP
Support both IPv4 and IPv6 (but unfortunately, IPv6 still not usable on Windows because lacks of TUN support)
Support ICMP local echoing with configurable packet delay time
Support proxy handlers: SOCKS5, Shadowsocks, V2Ray (DNS cache is enabled in these handlers by default)
Dynamically adding routing rules according to V2Ray's routing results (V2Ray proxy handler only)
Intercepting DNS requests and dispatching them with V2Ray's flexible DNS client (V2Ray proxy handler only)-
2
-
В 07.09.2023 в 20:10, aleeko сказал:
Не получилось у меня пока заставить работать как у вас?
Можно вас попросить больше подробностей?
Необходимо ли что то дополнительно настраивать в межсетевом экране?
Включена ли у вас опция "Использовать для выхода в интернет" - в интерфейсе Inet-2
И самое главное - правильно ли мы понимаем друг друга?
Есть клиент, допустим мобильный телефон - клиент подключается к серверу Wireguard настроенный на Keenetic - с последующим выходом через нужный интерфейс (который мы указали в статических маршрутах), а не через Основное подключение.
Интерфейсе Inet-2 у вас подключен физически к роутеру в качестве резервного канала? Или это VPN или Прокси с выходом интернет?Все мои настройки и описания проверены при работе в профилях, т.е. есть
1. основной профиль где расположены по росту вверху провайдер 1 RT (pppoe - основной), провайдер 2 Inet-2 (просто провод DHCP - резервный) и далее ниже уже идут все остальные Cloud-Warp, и еще ниже Proton и т.д.. Галки на WG каналах для выхода в интернет стоят (тогда их можно использовать в других профилях).
2. профиль Cloud - галка только на канале Cloud-Warp (WG) на остальных галки нет
3. профиль Anti - галка только на канале Proton (WG Proton) на остальных галки нет
Скрытый текстPPPoE0 - основной провайдер GigabitEthernet0/Vlan9 - это Inet-2 второй провайдер (vlan9 это просто вырезанный LAN порт, ни каких vlan нет) interface Wireguard0 description Cloud-warp security-level public interface Wireguard4 description WG-proton security-level public ip policy Policy0 description Cloud permit global Wireguard0 no permit global GigabitEthernet0/Vlan9 no permit global PPPoE0 no permit global Wireguard4 no permit global Proxy0 ip policy Policy2 description Anti permit global Wireguard4 no permit global PPPoE0 no permit global GigabitEthernet0/Vlan9 no permit global Wireguard0 no permit global Proxy0Настройки wireguard стандартны, описаны в базе знаний.
Скрытый текстЕсть клиент, допустим мобильный телефон - клиент подключается к серверу Wireguard настроенный на Keenetic - с последующим выходом через нужный интерфейс (который мы указали в статических маршрутах), а не через Основное подключение.
Сервер WG на роутере для удаленных клиентов
interface Wireguard3 description PKN-WG security-level public ip address 10.16.130.101 255.255.255.0 .... wireguard peer Z8cL......bTY= !A73 endpoint 10.16.130.6:ххххх .... ! wireguard peer y09......MCA= !T505 endpoint 10.16.130.18:ххххх ....В данном случае данные клиенты получат IP который им присвоен в настройках WG сервера. Так как проблемы часто возникают именно с DNS то в данном варианте использования за это отвечает AdguardHome который - это локальный сервис роутера и он слушает сеть 192.168 и 127.0.0.1 порт 53. Куда и что прописать будет чуток ниже.
AdguardHome dns: bind_hosts: - 192.168.130.101 - 127.0.0.1 port: 53Вспоминаем что это основной профиль и его канал выхода это РТ (pppoe).
Мы хотим нашего клиента смартфон чтоб он выходил через профиль Cloud -> воспользуемся самой прошивкой, т.е. при создание профиля создается table маршрутизации где default нужный нам Wireguard0 а в другом профиле table другая default Proton
Скрытый текст~ # ip ro show table 42 default dev nwg0 scope link ~ # ip ro show table 44 default dev nwg4 scope linkэто можно найти в web cli - 192.168.1.1/a набрав "show ip policy"
По умолчанию наш удаленный клиент после подключения использовать основной профиль роутера, но мы можем ему сменит канал выхода направив его в нужную нам table за счет того что он клиент имеет IP от WG например выше - 10.16.130.6. Заворот данного клиента делается через
ip rule add from IP_удал_клиента/24 table 42 или ip rule add from IP_удал_клиента/24 table 44Для того что данный клиент мог выходить в интернет так как у него адрес серый то нужно применить
ip nat Wireguard3По DNS воспользуемся тем что добаление сервера DNS в профилях создает стат маршрут на интерфейс который deault в данном профиле (без разницы какой это профиль - основной или созданные). Например
Скрытый текст~ # ip ro show table 42 default dev nwg0 scope link ... 192.168.130.101 dev nwg0 scope linkПока это работает, но можно и какой то свой например такой 10.2.0.1 DNS от конф. Proton
~ # ip ro show table 44 default dev nwg4 scope link 10.2.0.1 dev nwg4 scope linkВ итоге проверяем speedtest на удаленном клиенте
1. по умолчанию IP будет от роутера на клиенте который по WG к роутеру
2. после добавления rule то speedtest то на клиенте показывает адрес от профиля в который мы его направили (IP от wireguard0 или wireguard4).
В данном варианте никакого контроля правил iptables нет, вопрос только в одной строчке
"ip rule add from 10.16.130.6 table 42" -
23 часа назад, Marassa сказал:
Собственно вопрос: можно ли как-нибудь использовать static routes в веб-морде для простой настройки маршрутизации через shadowsocks, или нужно непременно морочиться со всем этим KVASом или, прости господи, телеграм-ботом?
-
1
-
-
В 02.09.2023 в 21:16, atest сказал:
Настроил связку 2х роутеров Keenetic WireGuard + EoIP - работает прекрасно. Затем настроил 3 роутер,
А зачем так сложно WG+EoIP - по отдельности ни как, в чем фишка такого использования?
-
4 часа назад, RomanZaritskiy сказал:
Пролема в том что сеть 101 видит все сети что к ней подключены и подключенные сети видят ее
нужно сделать чтобы была видна 100 сеть из всех остальных сетей
подскажите как это сделать
Обратить внимание на параметр "Разрешенные подсети" и внимательнее к стат.маршрутам ВЕЗДЕ
-
1
-
-
5 часов назад, aleeko сказал:
PS - стрелочку слева нажал. Было всего 13, я 14-й ....
Как то мало нуждающихся (((
А с другими протоколами ВПН работает выбор интереса? В какой то официальной статье от Кинетика читал относительно OPenVPN - что для работоспособности выхода надо обязательно выбирать ЛЮБОЙ ИНТЕРФЕЙС а не какой то конкретныйДля того чтоб wireguard работал через нужный сетевой необходимо чтоб был прописан стат маршрут до сервера wireguard через нужный сетевой интерфейс.
Пример. Есть два входных интернет канала, по умолчанию основной РТ, второй Inet-2 в резерве. Поднимем warp wireguard через резервный канал.
1. канал warp работает через основной, отключаем wireguard (через WEB другие подключения).
2. прописываем стат маршрут через Inet-2 на нужный нам сервер wireguard
Сен 3 17:50:51 ndm Network::RoutingTable: added static route: 188.114.хх.хх/32 via 10.10.10.1 (GigabitEthernet0/Vlan9).делается через WEB - раздел марщрутизация (до узла, нужный IP сервера 188.114.хх.хх/32. нужный инетрефес у меня Inet-2 или "via 10.10.10.1" и выбираем его)
3. идем в WEB cli (192.168.1.1/a и включаем его "interface Wireguard0 up" в моем случае его номер "0", находится по конф файлу или так же WEB cli набрав просто "interface Wireguard" и клавишу "tab". Если он один то не чего искать не надо, это если их несколько)
4. проверяем что все ОК на клиенте в браузере набираем speedtest и он должен показать IP клиента, в данном случае IP от cloudflare warp 104.28.ххх.ххх. По логу это выглядит так
Скрытый текстСен 3 17:52:05 ndm Network::Interface::Base: "Wireguard0": "base" changed "conf" layer state "disabled" to "running". Сен 3 17:52:05 ndm Network::Interface::Base: "Wireguard0": interface is up. Сен 3 17:52:05 kernel wireguard: Wireguard0: peer "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=" (8) created Сен 3 17:52:05 ndm Wireguard::Interface: "Wireguard0": added a host route to peer "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=" (188.114.хх.хх) via 10.10.10.1 (GigabitEthernet0/Vlan9).в отличие от ранее когда он поднят на основном канале
162.159.хх.хх dev ppp0 scope link[I] Aug 15 09:17:52 ndm: Wireguard::Interface: "Wireguard0": added a host route to peer "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=" (162.159.хх.хх) via PPPoE0 (PPPoE0).Это будет работать до тех пора пока есть стат маршрут прописанный выше по п.2 -
1 час назад, RussianStatham сказал:
Сложность в следующем, отваливается WiFi, чаще всего утром когда включаю тв, бывает и днем
Для начала лучше убрать автомат на wifi 2.4 и 5GHz. На 2.4 если дальних клиентов нет то поставить gn, а на 5 поставить n+ac+ax. Потом неообходимость в band-steering есть.
-
2 часа назад, BGMike сказал:
Просто висит и не открывается "Время ожидания соединения истекло".
PS. всё... причину нашел, ресурс блокируется, открывается только если заходить через браузер Tor(((
Замкнутый круг... Для того чтобы поставить Entware который нужен для установки Tora на роутере, мне нужен Тор для роутера)))) Есть идеи, как решить это петлю?)
Никаких проблем нет, смартфон и МТС
-
8 минут назад, BGMike сказал:
Народ. Есть у кого-то offline версия mipsel-installer.tar.gz для Ultra (KN-1810) прошивка 4.0.4?
Ни в какую не хочет ставиться выдает:
В браузере на клиенте наберите bin.entware.net что говорит?
-
Возможно ли описание для данного сообщения
Цитатаhad disassociated by STA (reason: STA is leaving or has left BSS).
т.е. когда/или в связи с чем она может возникать ?
Если конкретно то вот например 4.1х и на текущей 4.1 Alpha 4 для Peak
[I] Aug 30 12:18:19 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had disassociated by STA (reason: STA is leaving or has left BSS). [I] Aug 30 12:18:20 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had associated. [I] Aug 30 12:18:20 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) set key done in WPA2/WPA2PSK. [I] Aug 30 12:18:20 ndhcps: DHCPDISCOVER received from 7c:.....:00. [I] Aug 30 12:18:20 ndhcps: making OFFER of 192.168.150.3 to 7c:.....:00. [I] Aug 30 12:18:20 ndhcps: DHCPREQUEST received (STATE_SELECTING) for 192.168.150.3 from 7c:.....:00. [I] Aug 30 12:18:20 ndhcps: sending ACK of 192.168.150.3 to 7c:.....:00. ... [I] Aug 30 12:19:31 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had disassociated by STA (reason: STA is leaving or has left BSS). [I] Aug 30 12:19:32 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had associated. [I] Aug 30 12:19:32 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) set key done in WPA2/WPA2PSK. [I] Aug 30 12:19:32 ndhcps: DHCPDISCOVER received from 7c:.....:00. [I] Aug 30 12:19:32 ndhcps: making OFFER of 192.168.150.3 to 7c:.....:00. ... [I] Aug 30 12:21:55 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had disassociated by STA (reason: STA is leaving or has left BSS). [I] Aug 30 12:21:56 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had associated. [I] Aug 30 12:21:56 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) set key done in WPA2/WPA2PSK. [I] Aug 30 12:21:56 ndhcps: DHCPDISCOVER received from 7c:.....:00. [I] Aug 30 12:21:56 ndhcps: making OFFER of 192.168.150.3 to 7c:.....:00. [I] Aug 30 12:21:56 ndhcps: DHCPREQUEST received (STATE_SELECTING) for 192.168.150.3 from 7c:.....:00. [I] Aug 30 12:21:56 ndhcps: sending ACK of 192.168.150.3 to 7c:.....:00. ... и т.д. все посторяетсяДанный клиент умный выключатель с RSSI: -42 65 Мбит/с WPA2 и 11n 1x1 20 МГц но такое поведение есть и на других устройствах умного дома (так сказать самое плохое из них это устройство с RSSI: -68 65 Мбит/с WPA2 11n 1x1 20 МГц). Выделен сегмент в котором только Wifi 2.4 и больше не чего, доп.ТД выключена.
В основном сегменте естественно 2.4 и 5 разделенные, FT для 5GHz + Управление BSS-окружением 802.11k/v включено и есть мобильный домен.
Выключение устройств путем снятия 220V на них не помогает, перегрузка роутера не помогает после первой удачной регистрации had associated/set key done in WPA2/WPA2PSK через некоторое время - reason: STA is leaving or has left BSS.
Скрытый текст! interface WifiMaster0 country-code RU compatibility GN channel 3 channel width 40-above power 50 rekey-interval 86400 beamforming explicit vht up ! interface WifiMaster0/AccessPoint0 rename AccessPoint description "Wi-Fi access point" mac access-list type none security-level private authentication wpa-psk ns3 *** encryption enable encryption wpa2 encryption wpa3 ip dhcp client dns-routes ip name-servers ssid KN wmm rrm up ! interface WifiMaster0/AccessPoint1 mac access-list type none security-level protected authentication wpa-psk ns3 *** encryption enable encryption wpa2 ip dhcp client dns-routes ip name-servers ssid Smart up !Если залить заново конф файл от KN-2710_draft_4.01.A.4.0-0_router_startup-config то все устаканивается, и записей "reason: STA is leaving or has left BSS" нет.
Пока есть подозрения на что то из WEB, или в ПО контроль интерфейсов/таблиц/или еще что-то, так как в данное время делал часто перенос клиента из одного профиля в другой и только это.
-
3 часа назад, АлексейМен сказал:
При подключении термостата к wifi обязательно в приложении tuya smart после выбора термостата, вводится имя сети и пароль.
Попробуйте еще раз, только так чтоб tuya сказала что все ОК, смените имя guest на другое. Второе смартфон (или устройство на котором tuya) в этой же сети в которой будет и термостат.

Xkeen
в Каталог готовых решений Opkg
Опубликовано · Изменено пользователем vasek00
TProxy не заработает, так как для маркировки в iptables нужно отключить hw_nat
Берем например provixy чисто для пробы
listen-address 127.0.0.1:8118 /opt/etc/init.d # netstat -ntulp | grep 8118 tcp 0 0 127.0.0.1:8118 0.0.0.0:* LISTEN 1880/privoxy /opt/etc/init.d # iptables -t mangle -A PREROUTING -i br0 -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 8118 --on-ip 127.0.0.1 ip rule add fwmark 1 lookup 100 ip route add local 0.0.0.0/0 dev lo table 100После этого перестает работат WEB 80 порт роутера, ну как бы так и должно быть. Клиент из лок сети просматривает сайты которые открываются.
71 3692 TPROXY tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 TPROXY redirect 127.0.0.1:8118 mark 0x1/0x1-t mangle ... --tproxy-mark 0x1/0x1 --on-port 8118 изменяется пакет, устанавливает mark перед маршрутизацией "ip rule add fwmark 1 ..." где все по умолчанию 0/0 идет в dev lo => помеченные пакеты идут в localhost на порт 8118 => тут просто смена маршрута. Проверял на скорую руку, но все работало, база 4.1.А.9 проц 7621
Прошивка классификация интернет-трафика + профиль по клиенту
404 25945 CONNNDMMARK all -- br0 * 192.168.130.7 0.0.0.0/0 CONNNDMMARK match 0x0/0x0 CONNNDMMARK xor 0x10 5886 780K RETURN all -- br0 * 192.168.130.7 0.0.0.0/0 869 186K CONNNDMMARK all -- br0 * 192.168.130.2 0.0.0.0/0 CONNNDMMARK match 0x0/0x0 CONNNDMMARK and 0xff 869 186K MARK all -- br0 * 192.168.130.2 0.0.0.0/0 MARK set 0xffffaaa 869 186K CONNMARK all -- br0 * 192.168.130.2 0.0.0.0/0 CONNMARK save 869 186K RETURN all -- br0 * 192.168.130.2 0.0.0.0/0Это классификация интернет-трафика (4 - CONNNDMMARK match 0x0/0x0 CONNNDMMARK xor 0x10) по клиенту
Второй клиент классификация интернет по умолчанию и он сам клиент в профиле у которого MARK set 0xffffaaa
Делал еще хитрее
iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j RETURN iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j CONNMARK --save-mark iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -m dscp --dscp 63 -j MARK --set-mark 0xffffd01 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j MARK --set-mark 0xffffd00где --dscp 63 для сервиса торрента клинта ПК (windows) и для него профиль -set-mark 0xffffd01 в котором канал Инте2, а сам клиент ПК в профиле --set-mark 0xffffd00 в котором канал Инет1
HWNAT вообще не трогал не выше ни тут (включен по умолчанию и hard и soft).
Ремарка в 4.1 сменена нумерация table на 10,11,12 c 42,43 и т.д. и маркировка на 0xffffaaa с 0xffffd00
По RAY там как то хитро
https://gist.github.com/tossmilestone/b8ae168ae029e0a66da125b71979f5a2
https://dongdongbh.github.io/blog/tproxy/