
Комментарии 25
Пару месяцев назад пришел к примерно такому же решению (но с другим сетевым стеком и по другой причине - тогда как раз началась чехарда с версиями OpenWRT, переход на 25-ю ветку, и очень хотелось начать обновлять "домашний роутер", сначала спокойно подготовив ВМ с новой версией, а потом в Proxmox просто переключить управление со старой ВМ на новую).
Но идеалистическая лодка разбилась о быт под названием провайдерский роутер. Разумеется, он был переведен их ТП в режим моста. И я даже смог внутри ВМ получить провайдерский IP, но вот никакие пакеты данных внутрь ВМ с OpenWRT не попадали. Внутрь Proxmox - да, а вот глубже - никак.
Возможно, это minor observation © будет полезно тем, кто решит пройти изложенный в статье полный путь, и остановится за метр у клетчатого флага. Если вы вынуждены использовать провайдерское оборудование - обратите внимание.
изучите что такое rule_set в sing-box , откуда их качать и как использовать, и почему ваш набор domain suffix не очень то обязан работать (в частности для telegram, anthropic и т.д.).
Однако в целом решение правильное особенно с точки зрения наличия всяких умных ТВ, приставок (с гугл тв) или того же apple tv. Ну так то хватило бы чего-то совсем мелкого типа какой-то ягодки или апельсинки ( у меня на orange pi zero), ну а при наличии маршрутизатора - ставить openwrt кмк излишне, достаточно было linux самый простой с sing-box на борту.
Вопрос - а зачем вы 2ip завели в прокси ?
Можно существенно упростить систему, если на proxmox два сетевых интерфейса.
Выделить их оба виртуалке под LAN/WAN, что бы работал hardware offloading (если есть). Далее прокинуть этот шлюз в проксмокс как дефолт гейт:
auto vmbr0
iface vmbr0 inet static
address 192.168.1.2/24
gateway 192.168.1.1
bridge-ports none
bridge-stp off
bridge-fd 0Где 192.168.1.2 будет IP проксмокса, а 192.168.1.1 IP машинки с OpenWRT, оно же гейтвей.
Для того что бы не терять контроль над машиной в случае оффлайна ВМ роутера, можно воткнуть usb сетевуху или выделить еще один контроллер при наличии, главное со статической адресацией, типо так:
auto vmbr1
iface vmbr1 inet static
address 10.0.0.1/24
bridge-ports #id USB-NIC
bridge-stp off
bridge-fd 0
И воткнуть в тот же свитч что и остальную сеть.
В итоге у вас полностью виртуализованый роутер, один гейтвей на всю сеть, нет никаких проблем с тем что бы поднять еще виртуалок в той же сети для dns/sign-box/тунелей и прочего что неудобно на OpenWRT.
Минус один, если вам нужны VLAN, будет больно.
а зачем, если можно поднять виртуалку с mikrotik routeros, рядом контейнеры с xray\byedpi\awg и через них маршрутизироваться?
для чего эта аутофелляция?
Давно был интересен такой вариант. Но отдавать сеть полностью виртуальной машине опасаюсь - сбой по питанию, сервер живет на UPS 10 мин, а роутер - 2-3 часа, например
Можно ли рассмотреть вариант в котором клиенты присоеденены к основному роутеру, на нем идет маршрутиризация (он отлично умеет), и все что нужно - вот на такой как у вас виртуальный роутер, а а остальное - через основой. Неясно, как именно будет возвращатся пакет на клиента - на этом и встал
я например в похожей схеме настроил на mikrotik и openwrt vrrp и даже если полностью выключить proxmox, то практически незаметно весь трафик уйдет обратно на железный роутер. со всеми его недостатками (без туннелей), но зато сеть не умрет а продолжит работать. но это только с микротиком (и возможно с кинетиком) сработает. а провайдерский роутер я также не убирал, на случай если и моя железка приляжет, всегда можно подключиться на вайфай MTS_GPON5_d488269 💁🏿♂️
речь про дом, подождете пока вам свет включат
если роутер позволяет, можно обойтись без Proxmox. на роутер прошить OpenWRT, затем поставить Mixomo + MagiTricky, есть уже готовый скрипт на гитхабе (Mixomo Manager от StressOzz, в пару нажатий можно поставить связку + правила и даже сгенерировать конфиг WARP), суть в том, что в MagiTricky можно удобно загрузить правила, настроить и выбрать что через что идет (напрямую, через Mixomo, в никуда), а в Mixomo уже свой конфиг добавить и настроить даже там разделение (что будет идти через WARP, что через свой VPN и так далее) и остальное что душе угодно. правда цена за все это огромный вес, лично у меня все это вышло в около 35 мегабайт памяти, что довольно критично.
есть еще вариант через Podkop и его разновидности, там целый швейцарских нож всего, туда я пока не лез, но мне кажется и там можно настроить маршрутизацию подобным образом
Не совсем понимаю смысла в openwrt, если в наличии микрот. Настраиваем на нем правила маршрутизации, а в proxmox поднимаем виртуальку на чистом дебиан, ставим sing-box и все.
Практически все, что описано про openwrt, есть в микроте из коробки. Поправьте, если я не прав...
Тут, видимо, я не совсем удачно сформулировал момент с MikroTik. В статье под MikroTik имелся в виду конкретно MikroTik SXT LTE kit, который стоит на даче и используется как LTE-точка выхода в интернет. Про его настройку, маршрутизацию и подключение, возможно, будет отдельная статья.
OpenWrt в этой схеме выбран не потому, что MikroTik чего-то не умеет. Наоборот, практически всё это действительно можно сделать на MikroTik из коробки. Просто в моём случае OpenWrt оказался более простым и быстрым вариантом для описываемой задачи: понятный веб-интерфейс, удобная настройка правил и меньше порог входа для тех, кто не живёт постоянно в RouterOS.
Спасибо за статью.
Я в начале когда начал задумываться, тоже хотел через ВМ, но потом просто всё это сделал на самом роутере, Xiaomi AX3000T с ревизией RD23 на MTK процессоре легко прошивается под OpenWrt, там памяти хватит на отбой, для управления маршрутизацией над sing box, поставил обёртку HomeProxy для OpenWrt, отдельно поставил вручную пакет ciadpi, чтобы запустить локально на роутере byedpi прокси. С помощью geosite файлов srs которые обновляются каждые 12 часов, создал rule set'ы для sing box в HomeProxy, весь трафик ютуба гоняю через byedpi, напрямую без vless/xray, и там все на ура работает, отдельный rule set создал для российских сайтов, чтобы не гонял туда трафик через vless/xray, и отдельно rule set создал для всего остального чтобы пропускал через vless/xray. И так как ip у меня белый, настроил через HomeProxy (sing box) inbound, для клиентов, чтобы могли подключаться извне, то есть с мобильного устройства или ноутбука, когда находишься не дома, возможно кому то это будет новостью, но если подсеть твоего оператора(домашний провайдер) будет в белом списке, то это помогает в момент, когда блокируют выход в инет через мобильные операторы, кроме белого списка.
Давно использую виртуализированный роутер. В моем случае чистый дебиан. Для заворота трафика по списку AS получаю CIDRы и добавляю их в соответствующие именованые списки IP nftables. Так что телики тоже работают прозрачно.
если коту делать нечего... какой openwrt? это для рутеров, есть целая куча сборок, начиная с vyatta, и тп. архитектура сети, хотя бы виртуально разделить адаптеры, а лучше воткнуть платку. по маршрутизации внешнего трафика выше написали, есть известные приёмы, в том числе в самом x-ui. в общем, не делайте так!
При наличии фантазии можно было сделать нормально, и в статье зачатки этих мыслей были, но все скатились в очередной способ заталкивания sing-box в опенврт и прокси через tun
Прочел первый абзац и прокрутил до комментов. Саморазвитие - всегда круто, поддерживаю! Куда полезнее, чем поставить Нарр на что угодно в своей домашней сети и не тратить часы на ковыряния
А где fakeip/fakedns? Зачем вообще sing-box и xray одновременно? Если оперативки много, а списки свои, я бы использовал xray, потому что там можно каскадить балансеры и xhttp например есть.
Спасибо автору за статью. У меня похожая сетевая схема для песочницы. Статья очень мне помогла немного погрузиться в вопрос и быстро реализовать доступ из песочницы к заблокированным репам.
Спасибо за статью. Я все сделал так же. Тоже виртуалка proxmox. Только не openwrt, а debian, и отдельной точки доступа wi-fi у меня нет. Точка доступа - основной роутер, микротик. Я лишь изменил на нем настройки dhcp - default gatway. И все нормально работает.
OpenWrt в Proxmox как домашний умный шлюз: DHCP, DNS, sing-box и выборочный VPN для всей сети