Pop70 Posted January 11 Posted January 11 Очень хочется примеров их использования для интеграции приложений entware с "экосистемой" NDM. Базовых примеров, демонстрирующих основные принципы их использования, с максимально возможным "разжёвыванием" этих принципов "для чайников". Quote
FLK Posted January 11 Posted January 11 (edited) 14 часов назад, Pop70 сказал: Очень хочется примеров их использования для интеграции приложений entware с "экосистемой" NDM. Базовых примеров, демонстрирующих основные принципы их использования, с максимально возможным "разжёвыванием" этих принципов "для чайников". Поиск по форуму например amnezia-go, там можно найти про OpkgTun первоначальную информацию Edited January 11 by FLK Quote
Александр Рыжов Posted January 11 Posted January 11 4 часа назад, Pop70 сказал: Очень хочется примеров Здесь одна идея: интегрировать tun\tap интерфейс, который вы поднимаете в Entware, в логику прошивки. Включать\отключать этот интерфейс средствами прошивки вы не сможете, однако сможете использовать его в правилах файервола или роутинга в т.ч. прямо в веб-интерфейсе. В Entware настраиваете свой любимый tunnel/vpn/mesh софт на использование интерфейса opkgtun0 (строчными, без прописных), в моём примере это tinc: ~ # cat /opt/etc/tinc/tinc.conf … Interface = opkgtun0 ~ # cat /opt/etc/tinc/hosts/keenetic Subnet = 192.168.254.3/32 В CLI роутера необходимо добавить описание интерфейса. Логика прошивки полагается только на эту часть: interface OpkgTun0 description Tinc security-level public ip address 192.168.254.3 255.255.255.255 ip global auto ip tcp adjust-mss pmtu up ! system configuration save Обратите внимание, что адрес и подсеть вы задаёте дважды: при настройке софта в Entware и в CLI роутера. Всё! Если сетевой интерфейс работоспособен, можете использовать его на страницах веб-интерфейса: Интернет → Приоритеты подключений, Сетевые правила → Межсетевой экран, Сетевые правила → Переадресация портов, Сетевые правила → Маршрутизация (включая Маршруты DNS), Начните с этого. 3 2 Quote
Pop70 Posted January 11 Author Posted January 11 11 минут назад, Александр Рыжов сказал: Здесь одна идея: интегрировать tun\tap интерфейс, который вы поднимаете в Entware, в логику прошивки. Включать\отключать этот интерфейс средствами прошивки вы не сможете, однако сможете использовать его в правилах файервола или роутинга в т.ч. прямо в веб-интерфейсе. Начните с этого. С этого начал, но... проблемы: 1. "Мой любимый софт" создаёт tap интерфейс. 2. Интерфейс он создаёт с префиксом к тому, что указывается в настройках, и изменить это поведение невозможно. Попытки объединть тот интерфейс с префиксом, с OpkgTap0 мостом ни к чему не привели. (объединяются, но результата нет) 3. dhcp (которым вполне себе логично было бы воспользоваться на tap интерфейсе в качестве клиента удалённого доступа) OpkgTap не поддерживает. Пример применения OpkgTun интерфейса разбросан по всей теме, относящейся к конкретному приложению, примеров по Tap вообще не нашёл. Идея понятная, и очень замечательная. Реализация, пока, для не специалиста, занимающегося сетями вплотную, не совсем очевидная. А отсутствие источников информации... Вам, за пример по OpkgTun, спасибо огромное. Тему создал, чтобы сложить в одну кучу разрозненную информацию по применению этих новых, и очень полезных фич. Quote
Denis P Posted January 11 Posted January 11 (edited) + важным моментом для полноценной работы "интернета" через это подключение является добавление ip route default OpkgTun0 и, предугадывая вопросы, сразу напишу, что это не сделает указанный интерфейс используемым по умолчанию. Edited January 11 by Denis P 2 Quote
Александр Рыжов Posted January 11 Posted January 11 4 часа назад, Pop70 сказал: 3. dhcp (которым вполне себе логично было бы воспользоваться на tap интерфейсе в качестве клиента удалённого доступа) OpkgTap не поддерживает. Т.е. команды выполняются без ошибок, но результата нет? К примеру: interface OpkgTap0 up ! interface Bridge0 include OpkgTap0 Quote
Pop70 Posted January 11 Author Posted January 11 34 минуты назад, Александр Рыжов сказал: К примеру: interface OpkgTap0 up ! interface Bridge0 include OpkgTap0 Да. Без ошибок, но в бридж я пихаю подключение от приложения и opkgtap0 в entware. У меня проблема в том, чтобы подключить интерфейс, созданный приложением, к этому интерфейсу. Ну и не понимаю как прописать шлюз интерфейсу OpkgTap0 в NDM. Я вообще плохо понимаю как оно должно работать с этим интерфейсом. Quote
Pop70 Posted January 11 Author Posted January 11 49 минут назад, Александр Рыжов сказал: Т.е. команды выполняются без ошибок, но результата нет? К примеру... И нет. При Interface OpkgTap ip addres dhcp Вылетает ошибка, что dhcp не поддерживает тип интерфейса OpkgTap. Я, наверное, туплю дико - базовых знаний не хватает в этой области. Quote
FLK Posted January 11 Posted January 11 4 часа назад, Pop70 сказал: Interface OpkgTap ip addres dhcp OpkgTap0 наверно имелось в виду? Quote
Pop70 Posted January 11 Author Posted January 11 32 минуты назад, FLK сказал: OpkgTap0 наверно имелось в виду? Ну естественно. Quote
Александр Рыжов Posted January 13 Posted January 13 В 11.01.2026 в 17:11, Pop70 сказал: Да. Без ошибок, но в бридж я пихаю подключение от приложения и opkgtap0 в entware. У меня проблема в том, чтобы подключить интерфейс, созданный приложением, к этому интерфейсу. Имелось в виду "к этому бриджу"? Боюсь, прошивка будет конфигурировать их без оглядки на дополнительные интерфейсы. Вон, для iptables есть хуки в /opt/etc/ndm/netfilter.d для сохранения кастомных правил. Ничего подобного для L2-уровня нет, насколько знаю. В 11.01.2026 в 17:23, Pop70 сказал: Вылетает ошибка, что dhcp не поддерживает тип интерфейса OpkgTap. Вероятно, так и должно быть. Скорее всего DHCP навешивается на бридж, а не на конкретный tap-интерфейс. Quote
Pop70 Posted Wednesday at 12:03 AM Author Posted Wednesday at 12:03 AM 10 часов назад, Александр Рыжов сказал: Имелось в виду "к этому бриджу"? Боюсь, прошивка будет конфигурировать их без оглядки на дополнительные интерфейсы. Имелось в виду как-то соединить opkgtap0 и tap интерфейс, созданный приложением в opkg. Очевидное решение - бридж - не работает. Видимо, из-за особенностей реализации opkgtap0. Не понятно, почему бы не.., либо разрешить задавать имя создаваемого в opkg интерфейса (хотябы, брать его из "описания"), либо создавать и выпускать в opkg полноценный wan-бридж, как это сделано для лан-сегментов, к которым tap-интерфейс приложения из opkg подключается без каких-либо проблем - проверено - создаётся лан-сегмент, в opkg появляется соответствующий бридж (br0-br(n)), и в него добавляется tap интерфейс приложения - всё - приложение в этом сегменте как дома. Если не жалко одного-двух лан-портов, то можно и в wan тупо кабелем запустить, и настроить ещё одного ethernet провайдера, без танцев с бубном. Quote
Pop70 Posted Wednesday at 12:16 AM Author Posted Wednesday at 12:16 AM 10 часов назад, Александр Рыжов сказал: . Скорее всего DHCP навешивается на бридж, а не на конкретный tap-интерфейс. Скорее всего, так и есть. Тогда, wan-бридж, вместо OpkgTap решил бы и проблему "неподдреживаемого интерфейса". С opkgtun - аналогично напрашивается возможность задавать имя интерфейса, чтобы не страдала совместимость с приложениями в opkg. Кстати, не подскажете как можно "смаршрутизировать" один интерфейс в другой? Если уж мостом не получается, так, может быть, на третьем уровне их соединить... "Носом чую" что так можно, но знаний не хватает... Quote
Pop70 Posted Thursday at 06:51 AM Author Posted Thursday at 06:51 AM В общем, спасибо @hoaxisr за идею, подсказанную в другой теме. Получилось, хоть и с бубном и костылями, но достаточно просто подружить интерфейсы. ip link set opkgtap0 down ip link set opkgtap0 name vpn_vpn ip link set vpn_vpn up vpncmd localhost /client /CMD AccountConnect MyConnectionName ip link set vpn_vpn down ip link set vpn_vpn name opkgtap0 ip link set opkgtap0 up ip addr add 192.168..../24 dev opkgtap0 ip route add default via 192.168..1 dev opkgtap0 Это добавлено в один из скриптов, срабатывающих при запуске кинетика. Перед этим, нужно создать и настроить интерфейс OpkgTap в CLI. interface OpkgTap0 description Имя security-level public ip address 192.168..254 255.255.255.0 ip global auto ip tcp adjust-mss pmtu up ! ip route default 192.168..1 OpkgTap0 system configuration save Смысл состоит в том, чтобы дважды сменить имя интерфейсу, созданному NDM. Первый раз переименовываем в имя, которое ожидает увидеть приложение, предоставляющее интерфейс, Потом, переименованный интерфейс скармливаем приложению. (устанавливаем подключение, или запускаем сервис) А потом переименовываем обратно, чтобы NDM этот интерфейс не потеряло, когда будет к нему обращаться, и рулить им. 1 Quote
Pop70 Posted Thursday at 03:57 PM Author Posted Thursday at 03:57 PM В 11.01.2026 в 15:35, Александр Рыжов сказал: Если сетевой интерфейс работоспособен, можете использовать его на страницах веб-интерфейса: Интернет → Приоритеты подключений, Сетевые правила → Межсетевой экран, Сетевые правила → Переадресация портов, Сетевые правила → Маршрутизация (включая Маршруты DNS), Кстати, это подключение прекрасно отображается и в системном мониторе, и его даже можно "включить/выключить" (как я понял только в логике прошивки, на состояние приложения это конечно не влияет, хотя, через обработчики событий, можно, наверное, организовать и управление приложением). Не хватает его только на странице "Другие подключения", хотя ссылка из монитора состояния ведёт туда. Видимо, на будущее... Quote
Pop70 Posted Thursday at 04:20 PM Author Posted Thursday at 04:20 PM В 11.01.2026 в 16:34, Denis P сказал: ip route default OpkgTun0 Или ip route default шлюз OpkgTap(Tun) если интерфейс не "точка-точка" Quote
Balay Posted Saturday at 07:15 PM Posted Saturday at 07:15 PM (edited) А если у любимого софта нет возможности настройки имени интерфейса, т.е. всегда создается tun0, то получить к нему досуп через NDMS не получится? Речь про Адгард ВПН Кли. Edited Saturday at 07:29 PM by Balay название софта Quote
Pop70 Posted yesterday at 12:23 PM Author Posted yesterday at 12:23 PM 17 часов назад, Balay сказал: А если у любимого софта нет возможности настройки имени интерфейса, т.е. всегда создается tun0, то получить к нему досуп через NDMS не получится? Речь про Адгард ВПН Кли. Вот, как раз, на этот случай, я и нашёл решение. При запуске кинетика выполняем скрипт, в котором переименовываем opkgtap(tun)0 в имя, которое хочет видеть приложение, потом, поднимаем соединение в приложении, и переименовываем интерфейс обратно. Не уверен, что это сработает с любым приложением. Quote
Pop70 Posted yesterday at 01:58 PM Author Posted yesterday at 01:58 PM Кстати, заметил странное поведение облачного сервиса, возможно, связанное с маршрутом по умолчанию, задаваемым скриптом при запуске. Последнее время, стал долго получать от прова ip адрес по dhcp после софтовой перезагрузки кинетика. Соответственно, подключение ethernet висит в "не готово", softether клиент никуда подключиться не может... Когда появляется подключение по ethernet, кинетик не видит облачных служб, пока не поднимется softether соединение и OpkgTap0. Доступ в админку напрямую уже есть, через облако нет. Такое ощущение, что, в облачные сервисы он просится через впн. Впн, кстати, тоже поднимается только после передёргивания подключения в вебе, как будто пытается через свой шлюз подключаться до этого. В скрытом сообщении ниже - кинднс-овский домен. Посмотрите, кто может, он в облаке с каким айпишником? Quote
Pop70 Posted yesterday at 02:47 PM Author Posted yesterday at 02:47 PM Точно! Пока не отключишь OpkgTap соединение, системный профиль переключен на него (приоритеты подключений). И нет доступа к интернету ни у клиентов, ни даже у облачной службы. Это баг или фича? 5.0.4 селфтест ниже. Quote
Balay Posted 21 hours ago Posted 21 hours ago (edited) 7 часов назад, Pop70 сказал: При запуске кинетика выполняем скрипт, в котором переименовываем opkgtap(tun)0 в имя, которое хочет видеть приложение, потом, поднимаем соединение в приложении, и переименовываем интерфейс обратно Спасибо, увидел и выше ваше собщение. Попробую. Странно, что с таким костылем, неужели это не продумали, когда делали. Попробовал. Пока не очень, после переименования opkgtun0 в tun0 Adguard подключается, но трафик через tun0 не идет. Проверяю командой curl --interface tun0 http://myip.wtf/json Edited 19 hours ago by Balay результат Quote
Pop70 Posted 15 hours ago Author Posted 15 hours ago 5 часов назад, Balay сказал: Adguard подключается, но трафик через tun0 не идет. А Adguard на этот интерфейс подключается? Или ещё какой-нибудь создаёт? Если на этот, то ip адрес на интерфейсе появляется? Если да, то задай вручную в opkg маршрут по умолчанию на этот адрес, и пинг, трасерт хоть 8.8.8.8 из веб-интерфейса. Если нет, то задай адрес вручную. Я же говорю, что не уверен, что это всегда сработает. Зависит от реализации приложения. Тот же NDM, когда пытается создать opkgtun(tap)0 интерфейс, в случае уже имеющегося, к нему не цепляется, а выдаёт ошибку. Как себя ведёт Adguard - вообще х.з. Quote
Balay Posted 1 hour ago Posted 1 hour ago В общем, пока оказалось проще запускать adguard vpn в режиме socks5 proxy, подключиться к нему через родной proxy client и уже к настроить DNS маршрутизацию через него. Quote
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.