Зачем?

В наших текущих реалиях требования к роутеру могут быть очень высокими, недостаточно просто "выпускать устройства в интернет". Я хотел выделить сервера в отдельную подсеть, поднять VPN для доступа к устройствам за пределами дома, срезать рекламу на обделенных адблоком устройствах, а дальше хотелки только росли.

Примерно оценив количество хотелок, прикинув количество ресурсов с учетом запаса на будущее и моей недальновидности, а также увидев цены на MikroTik hAP ax³, я подумал: "а почему бы не взять пассивный мини-пк за ту же сумму и получить в разы более мощное железо?", а следующая мысль была "а чего это железо такое мощное будет пустовать? Пусть еще виртуальную мелочевку на себе тащит, ресурсов хватит".

С этими мыслями я на просторах одного из маркетплейсов приобрел себе мини-ПК Firebat R1. Под мои цели он подходил как нельзя лучше: пассивное охлаждение, 4 порта на 2.5 гигабита, Intel N100, 16 гигов ОЗУ и 512 гигов накопитель. Ну не красота ли?

Вот над этим зверьком мы будем проводить наши эксперименты
Вот над этим зверьком мы будем проводить наши эксперименты

Подготовка систем

Первым делом ставим на наш мини-ПК Proxmox. Установка ничем не примечательна, поэтому детально описывать не вижу смысла. После установки приведем сеть в состояние будущей конфигурации:

Начальный вид сети после установки. Кстати, интерфейсы идут в том же порядке, что и порты на самом ПК
Начальный вид сети после установки. Кстати, интерфейсы иду�� в том же порядке, что и порты на самом ПК

Поскольку я хочу сервера отправить в отдельную подсеть, то под это дело надо подготовиться. Удаляем дефолтный мост и создаем три новых, я их обзову WAN, SRV и LAN соответственно, а на мост SRV я сразу же и перевешу сам Proxmox

Покажу на примере одного моста, остальные аналогично. У моста SRV прописываем статический адрес
Покажу на примере одного моста, остальные аналогично. У моста SRV прописываем статический адрес

Получится примерно так:

У моста LAN прописаны все остальные интерфейсы для простоты
У моста LAN прописаны все остальные интерфейсы для простоты

Не забываем в hosts указать новый адрес, чтобы не ловить грабли как я:

Внимание: на данном этапе мы потеряем связь с гипервизором, так что соединяем интерфейс SRV с ПК, на ПК настраиваем статику и заходим по новому адресу

Далее создаем виртуальную машину. Я выделил под нее 2 ядра и 4 гига, диск 32 гига. Вы можете поиграться с параметрами. Сетевые карты пока не добавляем, это мы сделаем чуть позже. Получилось примерно так:

Большинство настроек я не менял
Большинство настроек я не менял

Теперь идем в созданную ВМку, в раздел Hardware, нажимаем Add → Network Device и добавляем созданные до этого мосты. Учтите, что внутри системы они потом будут нумероваться в порядке добавления. Не забываем снять галочку Firewall, зачем файрволлу файрволл?

Остальные ровно так же добавляются
Остальные ровно так же добавляются
Итоговый результат
Итоговый результат

После этого запускаем ВМ и проходимся по мастеру настроек:

Я перешел в ручной режим, поскольку мы знаем, какое устройство для чего нужно. Отвечаем на вопросы мастера и вписываем интерфейсы
Я перешел в ручной режим, поскольку мы знаем, какое устройство для чего нужно. Отвечаем на вопросы мастера и вписываем интерфейсы
Проверяем и соглашаемся
Проверяем и соглашаемся

После этого OPNsense предложит нам залогиниться. Логин installer, пароль opnsense и попадаем в установщик:

Тоже довольно штатная процедура. Проходим все этапы, со всем соглашаемся

Если выбрали ZFS, что установщик предлагает по умолчанию, то надо будет выбрать тип устройства. Здесь выбираем страйп, потому что не вижу смысла для образа диска делать резервирование
Если выбрали ZFS, что установщик предлагает по умолчанию, то надо будет выбрать тип устройства. Здесь выбираем страйп, потому что не вижу смысла для образа диска делать резервирование

После перезагрузки нас встретит уже установленная система. Можем на ПК выставлять автополучение адреса и переключать кабель в LAN интерфейс

Настройка OPNsense

Если все сделано правильно, мы должны от системы получить адрес по DHCP:

После этого заходим на адрес шлюза, логинимся с учеткой root/opnsense и проходим в мастер настройки. Он выглядит как мастер типичного роутера, сильно останавливаться на нем не буду

Тут есть поддержка PPPoE из коробки, это меня очень радует
Тут есть поддержка PPPoE из коробки, это меня очень радует

У нас теперь есть выход в интернет, и в целом роутер готов роутить. Но нам же нужна еще одна подсеть, давайте ее настроим

Дополнительная подсеть для серверов

На самом деле процедура несложная, но надо проявить немного внимания. Итак, мы во время установки привязали наш мост с одним интерфейсом и ждущим нас проксмоксом к интерфейсу OPT1. Идем в Interfaces и находим его, сразу переименовываем и настраиваем IP адресацию:

Description это название интерфейса. В IPv4 Configuration Type выбираем статику
Description это название интерфейса. В IPv4 Configuration Type выбираем статику
Внизу появится раздел настройки адресов. Вписываем адрес нашего будущего шлюза и выбираем правильную маску. Я не заметил выбор маски и долго ломал голову, почему ничего не работает
Внизу появится раздел настройки адресов. Вписываем адрес нашего будущего шлюза и выбираем правильную маску. Я не заметил выбор маски и долго ломал голову, почему ничего не работает

После этого идем в Services → Dnsmasq, на вкладке General добавляем наш интерфейс, потом идем на вкладку DHCP Ranges и создаем новый диапазон:

Тут можно срисовать с диапазона LAN, мы просто выбираем интерфейс и указываем границы, даже маска необязательна
Тут можно срисовать с диапазона LAN, мы просто выбираем интерфейс и указываем границы, даже маска необязательна

Ну и давайте заодно нарисуем правила файрволла. Идем в Firewall → Rules → [LAN] и копируем первое правило. Не забываем изменить интерфейс и источник

На данном этапе у нас есть адреса и даже выход в интернет. Осталось только разрешить клиентам из двух подсетей слушать друг друга. Идем в правила для интерфейса SRV и создаем новое правило. В нем проверям интерфейс и выставляем исходник и назначение

Правило для SRV сети
Правило для SRV сети

Обратите внимание! Source — откуда идет запрос, Destination — куда он идет. Мы разрешаем маршрут из LAN в SRV

Для интерфейса LAN правило будет наоборот, и составляем его из раздела правил для интерфейса LAN

Правило для LAN сети
Правило для LAN сети

После этого проверяем работу правил: мы должны находясь в LAN сети попасть на веб-интерфейс нашего Proxmox

Заключение

Вот таким образом мы получили идеальный, не побоюсь данного титула, сервер домашней сети. Такой же бесшумный и экономный, как и обычный роутер, но который будет в режиме 24/7 обслуживать другие сервисы, которым важна непрерывность. Умный дом, обратный прокси, что душа пожелает. А по поводу гибкости OPNsense не стоит и упоминать, система в сообществе хорошо изучена, достаточно статей по настройке различных сервисов, что я в итоге и буду пробовать

В качестве интересного наблюдения

В качестве теста поднял ВМ с федорой и замерил оттуда скорость. Несмотря на солидно выданные ресурсы, Интернетометр меня разочаровал:

Для сравнения тест с самого мощного доступного мне устройства:

Результаты лучше, хотя на полную скорость тарифа в гигабит я выйти не смог. Неужели роутер не тянет? Да нет, процессор не загружен. Уже не хватает производительности самих клиентов. Как же так получается, что натить нужно в разы меньше ресурсов, чем измерить скорость? И да, если просто скачивать большие файлы, то проблем со скоростью нет

Комментарии (29)


  1. noirr
    05.11.2025 12:17

    Такого рода пассивные мини-пк на n100 крайне плохо охлаждаются без активного обдува. У меня почти такой же миник и несмотря на то что мониторинг показывал что-то около 65 градусов на процессоре, через полгода круглосуточной работы случился отвал проца.


    1. boingo-00 Автор
      05.11.2025 12:17

      Понаблюдаю за температурой, у меня есть опасения на летний период, все-таки на антресоли жить будет. Если выше 60 стабильно будет держаться, закину 120 кулер и понаблюдаю


      1. project_delta
        05.11.2025 12:17

        у меня мой nas на n100 на балконе южное лето пережил. Но там плата для nas сразу с маленьким кулером чет около 35-45 мм, так что да, лучше охлаждать


    1. Lmao90210
      05.11.2025 12:17

      Ноутбуки работают без отвалов в постоянно циклическом нагреве 30-90 градусов, а циклический нагрев/охлаждение как раз боль для припоя. 65 градусов на процессоре даже 24/7 ниочем. Скорее всего вам попался просто плохой экземпляр, либо изначально используется плохой припой в вашей модели


  1. rionnagel
    05.11.2025 12:17

    Пока слишком маловато для интересного макета. Наверное хотелось бы, чтобы были лацп, вланы, кластеризация, впн, обход блокировок с обновляемыми префиксами (возможно удаленная виртуалка, ipsec, bgp), captitive pirtal, гостевая сеть, wifi, можно даже радиус + сертификаты 802.1x.
    Для дома ок, не для дома - не ок, не масштабируется. Наверное плюсы экономия места и какая хочешь система для роутера. Но вообще если суть статьи показать, что виртуальный роутер это ок - то ок.


    1. ki11j0y
      05.11.2025 12:17

      Готовый обход есть от @itdog, работает на openwrt. Либо v2raya от китайцев.


    1. GTDOGg
      05.11.2025 12:17

      Можете попробовать CHR от Mikrotik. Легко получить лицензию на оф сайте.


      1. BDI
        05.11.2025 12:17

        Но только временную(по истечении которой отрубятся обновления). А если в учётке в ЛК микротиков ещё и Россия указана, то платную не получить никак...
        Остаётся или сидеть на не обновлённой версии, либо с определённой периодичностью ставить CHR с нуля и накатывать конфиг. Правда не уверен сколько пробных активаций дадут попользовать на одной учётке.


        1. GTDOGg
          05.11.2025 12:17

          Да,вы правы. Благо у микротиков существует полный бэкап,который легко накатит все настройки и не никаких ограничений на новые триальные лицензии. Три месяца лицензия позволяет обновить chr,далее можно зарегистрироваться на новую почту,если вам обновления важны именно через штатный механизм,либо банально накатить новый образ и развернуть бэкап. Для домашнего использования можно вообще обновляться раз в полгода,тем более у микротик до сих пор нет LT версии RoS7


          1. BDI
            05.11.2025 12:17

            Для домашнего использования можно вообще обновляться раз в полгода,тем более у микротик до сих пор нет LT версии RoS7

            Для меня отсутствия LTS версии у семёрки это скорее аргумент к тому что возможность обновления тут весьма полезна - и фиксы, и добавление фич. Если бы CHR был на 6-ой ветке, то тогда да, там вроде кроме редких фиксов(подавляющую часть которых можно прикрыть файрволом) уже ничего не появляется.

            Так что пока на просрочке сижу, и наверное буду сидеть пока в используемых сервисах не появится дыра(или пока не появится возможность честно купить лицензию, хотя в это верится слабо). Ну или пока не выкатят фичи упрощающие операции парсинга логов(ну или хотя бы дадут возможность повесить скрипт/действие на событие ошибки входа) - а то после попытки реализовать fail2ban по ошибкам авторизации одного из сервисов, я узнал что там надо сначала реализовывать банальные вещи доступные в любом ЯП.


            1. GTDOGg
              05.11.2025 12:17

              Понимаю, видимо у вас критическая инфраструктура и нет необходимости в wireguard или openvpn to udp. Я постепенно ушёл от микротиков всюду,где возможно,оставив их исключительно как свитчи для сегментирования сетей. Ядром сети же плсьавил Opensense


              1. BDI
                05.11.2025 12:17

                Да, в современных условиях критическая - пилюля из трёх букв(на протоколе из четырёх) для получение доступа туда куда прямого доступа нет(для личного использования, скачивать драйвера с сайта Интел). К сожалению мне не известен ни один другой роутерный дистрибутив с нормальной реализацией SSTP(если вообще где-то реализовано - такое впечатление что происхождение протокола вызывает идеологическое нежелание реализовывать его на линуксе), а в CHR и клиент, и сервер вполне пригодны для использования(мне скорости хватает). Linux+SoftEther не понравился своей стабильностью и настройкой - в микротике всё гораздо проще(наверное пообвыкся :)), нагляднее, и стабильнее(ИМХО), не говоря уже о системных требованиях.

                Про нереализованное

                Для сетей с постоянным IP всё просто, а для доступа с устройств с динамическим IP пришлось стук включать. Вот в дополнение к стуку и хотел навесить блокировку по ошибке авторизации, чтобы затруднить брутфорс при случайном обнаружении алгоритма "стука".

                К сожалению, в логе микротика чтобы связать неудачную попытку авторизации с IP источника надо анализировать пачку сообщений и отловить(как один из вариантов) попытку открытия соединения на порт + последующую "user USERNAME authentication failed". Для малого числа пользователей и узком окне открытия порта, вероятно, это можно реализовать. Но при "промышленной" эксплуатации(большое число юзеров, большое число попыток авторизации) объём анализируемых событий будет расти сильно(возможны и другие трудности).

                Правда для реализации нужно сначала в эвенте открытия соединения выделить IP адрес источника(в сообщении айпишников два) для дальнейших проверок и действий. И вот тут споткнулся на том, что простого пути решить задачу поиска айпишника в строке нет(хотя казалось бы типичная задачка для регулярок). Нагуглились какие-то самописные функции для реплейсов в строке, но времени разобраться с их работой так и не нашлось, а копипастить не проверив я не привык(тем более что в чистом виде эти функции мне не подходили).


  1. dimsoft
    05.11.2025 12:17

    А коммутатора то на этих 3-х портах не будет - чисто роутер


    1. boingo-00 Автор
      05.11.2025 12:17

      Собранные в бридж порты вполне себе работают как свитч. Но согласен, если нужно что-то больше, чем два LAN-порта (например управления VLANами), то тут надо будет заморочиться со стороны проксмокса. Мне сейчас это не требуется, поэтому не затрагивал, если понадобится, попробую и напишу статью


      1. Anywake
        05.11.2025 12:17

        Нет там ни чего сложного. Транковый порт и VLAN тег на любую VM.


        1. boingo-00 Автор
          05.11.2025 12:17

          А если надо тег за пределы гипервизора вытянуть? Я правильно понимаю, что бриджу проксмокса ставлю галочку VLAN Aware, накидываю тег внутри опенсенса и этот тег я увижу на интерфейсе в мосте?


  1. Anywake
    05.11.2025 12:17

    @boingo-00 Про OPNSense в Proxmox пишут что необходимо пробрасывать сетевые карты напрямую. Вот статья https://habr.com/ru/companies/bercut/articles/952046/

    А так, OPNSense очень интересный FW.


  1. Timuridze
    05.11.2025 12:17

    Вот таким образом мы получили идеальный, не побоюсь данного титула, сервер домашней сети.

    Примерно так же думал я когда купил 2 года назад абсолютно такой же как у автора Мини ПК, с 4 портами 2,5 Гбит и 16 Гб оперативы. В конечном итоге я перепробывал на нем PfSense, OpenSense и OpenWRT и в итоге вернулся к тому же с чего начинал к Роутеру Keenetik(сейчас Netcraze) вот на днях взял Netcraze Ultra NC-1812 на замену Peakу. Вам я бы хотя бы попробовать рекомендовал.
    С чем я столкнулся
    1. пинг выше чем на специализированной железке. Накладные расходы proxmox +opnsense
    2. Самое главное. Opensense не знает VMess, VLESS, XTLS
    Openwrt знает, но сделано все через одно место

    Opnsense это корпоративная тема, там 98% ненужнего система обнаружения и предотвращения вторжений или интеграция с LDAP и RADIUS или High Availability....
    OpenWrt это комбайн, там есть всё а того что нет можно взять и дописать или прикрутить это же линукс ..НО все как будто сделано максимально через одно место, В итоге какая то каша в веб интерфейсе частью частью в конфиг файлах все из говна и палок, не пойми как работает.

    Моя сеть
    Около 30 wifi и ethernet клиентов
    2 входящих канала 1 гбит и 100 мбит один основной второй в резерве
    4 подсетки обьеденены между собой и есть маршрутизация мой кинетик как сервер у него выделенный ip (остальные по wireguard и IPsec-сеть—сеть )
    Соединение до openconnect сервера
    Соединение Vray до удаленного сервера
    Есть выборочная маршуртизация для выбраных клиентов, т.е ресурсы из списка идут через прокси vray а все остальные сайты напрямую.
    Причем на Kennetic поднят wireguard сервер ,я когда с мобилкой выхожу я соединяюсь по wireguard с домашней сеткой, а политики маршрутизации действуют и там, т.е ютюбчик работает.
    При этом почти все настраивается в 2 клика ну кроме vray там opkg.
    не знаю как бы я все это настраивал в OpnSense.
    На мини ПК я в итоге поручил другие задачи, там теперь резервный сервер Home Asisstant, Adguard DNS, go2rtc, ngnixproxymanager и остальная мелочевка.


    1. boingo-00 Автор
      05.11.2025 12:17

      Спасибо за советы, сохранил, на очереди канал наружу. Сейчас у меня в качестве точки доступа роутер на OpenWRT, но мощности там достаточно для роутинга и "канала наружу". Пока хочу потестировать текущую связку, а там возможно перекрою


      1. Timuridze
        05.11.2025 12:17

        Я прям сильно заморачивался одно время искал решение. Сначала у меня был микротик ох и намучался я с его настройкой, там очень много неочевидных вещей, купил кинетик все вроде было ОК, но потом начались блокировки и перестал работать wireguard зарубеж, на тот момент решения у Кинетик с маршрутизацией не было, был скрпит KVAS который худо бедно работал. И я начал искть альтернативу, вообьще, тогда и увидел это Мини ПК на 4 порта, ну и понесласть, чуть позже в кинетик завезли Xkeen это реализация для кинетика xray ну и всё стало не нужно. Ктсати не знаю как у вас но у меня миник сильно греется я небольшой моддинг провел, по наклеиванию медного радиатора для охлада.


    1. longmaster
      05.11.2025 12:17

      А умеет ли Keenetic балансировку WAN? Впрочем, сам уже загуглил, и насколько вижу - уже умеет. Я несколько лет назад выбрал pfsense именно ради балансировки. На тот момент у Microtic в ROS6 это хрен знает как работало, инфы про кинетик мне тогда не попалось. Вероятно, у них тоже нормально ещё не работало. В моей деревне есть несколько провайдеров с оптикой, но всех их отличает падение каналов когда угодно и насколько угодно времени. А жаба душила платить 1тр/м просто за резервный канал. Раз уж плачу двум провайдером, то и эксплуатировать хотелось обоих в хвост и гриву. В pfsense это делается из вебморды с полпинка. В итоге на хороших торрентах и спидтесте(пока он был) я имею вполне наглядные 150+170=320мбит/с. В работе провайдеров есть нюансы и определённый трафик наруливаю приоритетом в один из каналов, но при его падении ничего ручками делать не надо, всё идёт через второй. Опять же - легко и непринуждённо через веб-морду. А не через кинетиковский CLI. Wireguard по данным гугла в pfsense работает, но мне пока не пригодился, работает старый добрый openvpn на забугорный шлюз. Опять же, через вебморду, в т.ч. проброс входящего трафика оттуда с белого IP сюда в DMZ за NATом и возврат его назад. Когда-то на железном роутере с Openwrt это было не так тривиально. Маршрутизация каких угодно клиентов куда угодно - тоже легко. В итоге за несколько лет эксплуатации мне не пришлось ничего делать в командной строке. С некоторыми вещами пришлось выкурить много форумов, например, с маршрутизацией WOL пакетов между VLAN, но и это удалось сделать тоже через веб.

      Железка у меня сейчас похожая N100 4 порта. Когда у одного из провайдеров слетел шейпер, несколько месяцев имел пропускную способность до гбита, железка с ней вроде бы легко справлялась. Но не стал на неё городить виртуалки, всё-таки это брандмауэр. HA у меня крутится в виртуалке на NASе. А вот идея с резервным заинтересовала. Насколько это там легко и полноценно делается?

      Кинетики тоже есть. Даже не просто есть, вся остальная сеть на них - пара управляемых свитчей и точки доступа с роумингом. Вот там на них нареканий нет. Почти. Пришлось включать через CLI AP isolation, хотя в каком-нибудь Асусе это делается флажком на морде.


    1. Lmao90210
      05.11.2025 12:17

      1. пинг выше чем на специализированной железке. Накладные расходы proxmox +opnsense

      Vt-d был включен? По идее с этой фичей все адаптеры должны пробрасывать я как есть в ВМ


  1. Bonus2k
    05.11.2025 12:17

    Не легче было поставить микротик x86?


  1. Smolensk
    05.11.2025 12:17

    Тема интересная даже с учётом того, что подобный девайс может работать хуже, чем специализированная железка. Ибо нынче почти любой устройство в продаже, будь то роутер, сигнализация, IP-камера и т.п. имеют «отечественную локализованную прошивку», декларируемую как необходимость соблюдения законов о связи. На практике же оказывается, что накатить оригинальную прошивку на устройство невозможно, т.к. оно неожиданно имеет ещё и аппаратные особенности. При этом оригинальную версию невозможно приобрести, в т.ч. и на маркетплейсах у иностранных продавцов. Всё это заставляет относиться к доступному в продаже локализованному девайсу как к потенциальному мессенджеру Max.


  1. okop2000
    05.11.2025 12:17

    Для меня главный минус в том, что а случае (когда) миник накроется восстанавливать и настраивать все по новой будет куда сложнее, чем воткнуть новый кинетик и накотить туда старый конфиг.


  1. okop2000
    05.11.2025 12:17

    А вы распиновку rs232 для этого R1 не знаете?


    1. boingo-00 Автор
      05.11.2025 12:17

      Достоверно не знаю, предположу, что типичный Cisco-style. Пока еще руки не доходили проверить


  1. hexus7
    05.11.2025 12:17

    Виртуализировать opnSense - нет никаких проблем. Больше проблема, что ips/ipd не работает с виртуальными/софт портами (особенности реализации nmap в freebsd вроде, или что-то такое). Т.е. ловить подозрительный трафик на pppoe не получится.

    Приходится городить внешний GW с pppoe-клиентом, и оттуда уже пробрасывать на opnSense. Т.е. уже как минимум 2 железки.

    И тут уже встает вопрос - не проще GW/роутер сразу ставить на openwrt (со всеми остальными полезняшками), и использовать миник под мини-серверы уже. Пробовал и балансировку-отказ в виртуалке на opnSense поднимать - отдельный неудачный опыт, это в разы проще сделать на openwrt (может без изысков, но работает, в т.ч. с линками с wifi).


  1. VenbergV
    05.11.2025 12:17

    Пару лет живет кластер из 3-х NUC10. Все сетевое хозяйство на три сотни устройств завязано на него.
    Proxmox 7-8. GlusterFS. CHR. Win для удаленного управления разным оборудованием офиса и старым WinBox. UniFi.
    Пережило смерть SSD и смерть блока питания. Офис даже не узнал об этом.

    Жаль в Proxmox 9 выпилили поддержку GlusterFS. Т.к. Ceph очень тяжел для NUC10.