mysurik.ru

Как я настраивал OpenWRT на VM 200 и пожалел, что не сделал это раньше

Homepage статичный дашборд для сервера

Зачем мне OpenWRT на виртуалке

У меня дома стоит обычный роутер от провайдера. Он работает, но интерфейс убогий, настроек мало, и я не могу поставить свой VPN-сервер или adblock на уровне роутера. Покупать нормальный роутер за 10 тысяч рублей не хотелось.

Решение: поднять OpenWRT в виртуальной машине на Proxmox и сделать его основным шлюзом. OpenWRT — это Linux-дистрибутив для роутеров, легковесный и настраиваемый до мурашек.

Установка

Скачал образ OpenWRT для x86_64 (generic-ext4-combined.img.gz). Создал ВМ в Proxmox: 256 MB RAM, 1 ядро, 2 GB диск. Сеть: две виртуальные сетевухи — одну в бридж с физической сетью (WAN), вторую для внутренней сети (LAN).

Загрузился с образа, установка заняла минуту. После перезагрузки зашёл через веб-интерфейс LuCI по адресу 192.168.1.1. Выглядит спартански, но всё нужное есть.

Настройка

Первым делом настроил WAN через DHCP (чтобы получать IP от провайдера). LAN — статика 192.168.10.1. Поднял DHCP-сервер на LAN, чтобы устройства получали адреса автоматически.

Потом — самое интересное: AdBlock. Поставил пакет luci-app-adblock, настроил списки блокировки рекламы. Теперь на всех устройствах дома реклама не показывается, даже на телевизоре.

VPN-сервер. Поднял WireGuard внутри OpenWRT за 5 минут. Теперь подключаюсь к дому из любого места через телефон. Всё работает через стандартный клиент WireGuard, ничего дополнительно ставить не надо.

SQM QoS. OpenWRT умеет управлять пропускной способностью, чтобы торренты не забивали канал. Я настроил SQM на 90% скорости провайдера — теперь даже когда качаю файлы, сайты открываются мгновенно.

Стабильность

OpenWRT на VM 200 работает уже больше месяца без единой перезагрузки. Памяти жрёт около 100 MB. Нагрузка на CPU — почти нулевая. Для таких задач больше и не надо.

Единственный минус — если Proxmox хост перезагружается, OpenWRT стартует вместе с ним, и пока он не поднялся, интернета нет. Раньше с физическим роутером интернет появлялся быстрее. Я решил это настройкой автозапуска ВМ в Proxmox.

Стоит ли игра свеч

Если у вас уже есть сервер с Proxmox — OpenWRT в ВМ отличное бесплатное решение для полноценного роутера. Если сервера нет — проще купить роутер с OpenWRT за 2-3 тысячи.

Файрвол и безопасность

OpenWRT использует iptables под капотом, и я сначала побоялся лезть в эти дебри. Оказалось, зря. Веб-интерфейс позволяет настроить базовые правила за пару кликов. Я открыл только 80-й порт для AdBlock API и 51820 для WireGuard. Всё остальное закрыто по умолчанию — и это правильно.

Проверил уязвимости через ShieldsUP! — все порты в режиме stealth. Провайдерский роутер так не умел, он просто пробрасывал всё наружу, и я даже не знал об этом. OpenWRT меня подстраховал.

VLAN и гостевые сети

Одна из фишек, ради которой я всё это затевал — отдельная гостевая сеть. У меня дома часто бывают друзья, и мне не хотелось давать им доступ к моим NAS и серверам. В OpenWRT я создал второй SSID на той же физической точке доступа (TP-Link в режиме Access Point), привязал его к отдельному VLAN и настроил правила файрвола — гостевой трафик ходит только в интернет, до локальной сети доступа нет.

Настройка заняла 15 минут, хотя я впервые делал такое. Гуглил, конечно, по пути, но в итоге всё заработало с первого раза. Обычно я записываю такие вещи в заметки, но тут OpenWRT настолько прозрачный, что и без шпаргалки можно разобраться.

Что пошло не так

Пара моментов, которые меня подставили. Первый — DNS. Я поставил AdBlock, забыл настроить резолвер, и через час заметил, что некоторые сайты не открываются. Оказалось, пакет dnsmasq-full нужно было переконфигурировать, чтобы он слушал на правильном интерфейсе.

Второй — производительность диска. Я дал ВМ 2 ГБ на виртуальном диске, и этого хватило для системы и логов. Но если логи включить на полную катушку, диск забивается за пару недель. Пришлось ограничить размер логов через logrotate. Настройка банальная, но я про неё забыл.

Третий — скорость. OpenWRT в виртуалке работает чуть медленнее, чем физический роутер, из-за виртуализации сетевых карт. На моём канале 100 Мбит разница незаметна, но при 500+ Мбит уже может быть просадка. Для дома — нормально, для офиса лучше физическое железо.

Бэкап конфига

Самое приятное в OpenWRT — можно сохранить конфиг одной командой и восстановить за минуту. Я настроил автоматический бэкап на NAS раз в неделю. Если ВМ упадёт — поднимаю новую, заливаю бэкап, и всё работает как раньше. Провайдерский роутер так не умеет от слова совсем.

Ещё советую сразу после настройки экспортировать конфиг через LuCI — System → Backup / Flash Firmware. Там же можно сделать полный сброс, если что-то сломал.

Мои выводы

Я теперь не представляю, как жил без OpenWRT. Да, пришлось повозиться с ВМ, файрволом и VLAN. Да, первый запуск был нервным — боялся, что интернет пропадёт и придётся переключать кабель обратно на провайдерский роутер. Но когда всё заработало и я увидел чистые логи без рекламных запросов — я понял, что оно того стоило.

Сейчас OpenWRT крутится уже второй месяц. Я захожу на неё через WireGuard с телефона, когда нужно глянуть логи или перезапустить сервисы. Ни разу не перезагружал — и это на виртуалке с 256 МБ памяти. Круто.

В общем, если у тебя есть Proxmox — попробуй. Не пожалеешь. А если нет — купи роутер за 1500 рублей и прошей OpenWRT. В любом случае это лучше, чем сидеть на стоковой прошивке провайдера.

Расширю рассказ о настройке OpenWRT в виртуальной машине дополнительными деталями. Зачем мне OpenWRT на виртуалке. У меня дома стоит обычный роутер от провайдера. Он работает, но интерфейс убогий, настроек мало, и я не могу поставить свой VPN-сервер или adblock на уровне роутера. Покупать нормальный роутер за 10 тысяч рублей не хотелось. Решение: поднять OpenWRT в виртуальной машине на Proxmox и сделать его основным шлюзом. OpenWRT — это Linux-дистрибутив для роутеров, легковесный и настраиваемый до мурашек. Главное преимущество — полный контроль: вы сами решаете, что работает на вашем роутере, а что нет. Стоковые прошивки провайдеров режут функциональность, а OpenWRT открывает все возможности. И всё это бесплатно, если у вас уже есть Proxmox.

Установка. Скачал образ OpenWRT для x86_64 (generic-ext4-combined.img.gz). Создал ВМ в Proxmox: 256 MB RAM, 1 ядро, 2 GB диск. Сеть: две виртуальные сетевухи — одну в бридж с физической сетью (WAN), вторую для внутренней сети (LAN). Загрузился с образа, установка заняла минуту. После перезагрузки зашёл через веб-интерфейс LuCI по адресу 192.168.1.1. Выглядит спартански, но всё нужное есть. Установка OpenWRT в VM — это удивительно простой процесс: скачал образ, загрузился, записал на диск, перезагрузился. Конфигурация сети из двух интерфейсов — WAN и LAN — закладывается сразу. Настройка всей системы занимает меньше времени, чем разбирательство со стоковым роутером.

Настройка. Первым делом настроил WAN через DHCP (чтобы получать IP от провайдера). LAN — статика 192.168.10.1. Поднял DHCP-сервер на LAN, чтобы устройства получали адреса автоматически. Базовая настройка — это разделение интерфейсов: WAN получает адрес от провайдера, LAN раздаёт адреса в домашней сети. LuCI делает это наглядно: таблица интерфейсов, поля для IP, маски и шлюза. Плюс DHCP-сервер раздаёт адреса автоматически — устройствам не нужно ничего настраивать. За десять минут у вас полностью рабочий роутер с веб-интерфейсом. Потом — самое интересное: AdBlock. Поставил пакет luci-app-adblock, настроил списки блокировки рекламы. Теперь на всех устройствах дома реклама не показывается, даже на телевизоре. AdBlock на уровне роутера — это блокировка рекламы для всей сети сразу. Никаких приложений на устройствах, никакой возни. Списки блокировки обновляются автоматически. Реклама исчезает на телефонах, компьютерах, телевизорах — везде. Я сэкономил на этом месяцы жизни и нервы. AdBlock в OpenWRT — это одна из тех фич, ради которых стоит переходить.

VPN-сервер. Поднял WireGuard внутри OpenWRT за 5 минут. Теперь подключаюсь к дому из любого места через телефон. Всё работает через стандартный клиент WireGuard, ничего дополнительно ставить не надо. VPN на роутере — это доступ ко всей домашней сети из любого места. WireGuard в OpenWRT настраивается через LuCI: создал интерфейс, сгенерировал ключи, добавил пир. Пять минут — и ваш домашний VPN готов. Подключение через стандартный клиент WireGuard на телефоне — просто сканируете QR-код. Теперь я захожу на свои серверы из любой точки мира через зашифрованный туннель. VPN на роутере — это основа безопасности и удалённого доступа.

SQM QoS. OpenWRT умеет управлять пропускной способностью, чтобы торренты не забивали канал. Я настроил SQM на 90% скорости провайдера — теперь даже когда качаю файлы, сайты открываются мгновенно. SQM (Smart Queue Management) — это интеллектуальное управление очередями пакетов. Он устраняет буферблобинг — лаги, когда канал забит. С SQM задержка остаётся низкой даже при полной загрузке канала. Игры и видеозвонки не страдают, когда кто-то качает файлы. Настройка занимает минуту: включили, указали скорость, сохранили. Это одна из самых недооценённых функций OpenWRT. Качество интернета вырастает заметно.

Стабильность. OpenWRT на VM 200 работает уже больше месяца без единой перезагрузки. Памяти жрёт около 100 MB. Нагрузка на CPU — почти нулевая. Для таких задач больше и не надо. Виртуализация не мешает стабильности: OpenWRT — лёгкая система, ей хватает 256 MB RAM и одного ядра. Единственный минус — если Proxmox хост перезагружается, OpenWRT стартует вместе с ним, и пока он не поднялся, интернета нет. Раньше с физическим роутером интернет появлялся быстрее. Я решил это настройкой автозапуска ВМ в Proxmox. OpenWRT автоматически стартует вместе с хостом — и интернет появляется без вашего участия. Минус решён настройкой одной галочки.

Файрвол и безопасность. OpenWRT использует iptables под капотом, и я сначала побоялся лезть в эти дебри. Оказалось, зря. Веб-интерфейс позволяет настроить базовые правила за пару кликов. Я открыл только 80-й порт для AdBlock API и 51820 для WireGuard. Всё остальное закрыто по умолчанию — и это правильно. Проверил уязвимости через ShieldsUP! — все порты в режиме stealth. Провайдерский роутер так не умел, он просто пробрасывал всё наружу, и я даже не знал об этом. OpenWRT меня подстраховал. Безопасность по умолчанию — это то, что отличает OpenWRT от стоковых прошивок. Все порты закрыты, пока вы сами их не откроете. ShieldsUP! подтвердил: все порты в stealth — роутер невидим для сканирования. Это огромное улучшение по сравнению с провайдерским роутером.

VLAN и гостевые сети. Одна из фишек, ради которой я всё это затевал — отдельная гостевая сеть. У меня дома часто бывают друзья, и мне не хотелось давать им доступ к моим NAS и серверам. В OpenWRT я создал второй SSID на той же физической точке доступа (TP-Link в режиме Access Point), привязал его к отдельному VLAN и настроил правила файрвола — гостевой трафик ходит только в интернет, до локальной сети доступа нет. Гостевая сеть — это вопрос не только удобства, но и безопасности: гости не должны видеть ваши устройства и файлы. VLAN изолирует гостевой трафик на сетевом уровне. Правила файрвола запрещают доступ к LAN. Настройка заняла 15 минут, хотя я впервые делал такое. Гуглил, конечно, по пути, но в итоге всё заработало с первого раза.

Обычно я записываю такие вещи в заметки, но тут OpenWRT настолько прозрачный, что и без шпаргалки можно разобраться. Это ещё один плюс: интерфейс LuCI логичный, и вы понимаете, что делаете, а не тыкаете вслепую. Каждый раздел объясняет, за что отвечает. Гостевые сети, VLAN, QoS, файрвол — всё наглядно. Что пошло не так. Пара моментов, которые меня подставили. Первый — DNS. Я поставил AdBlock, забыл настроить резолвер, и через час заметил, что некоторые сайты не открываются. Оказалось, пакет dnsmasq-full нужно было переконфигурировать, чтобы он слушал на правильном интерфейсе. AdBlock перехватывает DNS-запросы, и если резолвер настроен неправильно — часть сайтов не открывается. Решение: правильная конфигурация dnsmasq. После настройки всё заработало. DNS — это тот момент, о котором легко забыть, но без него AdBlock не работает.

Второй — производительность диска. Я дал ВМ 2 ГБ на виртуальном диске, и этого хватило для системы и логов. Но если логи включить на полную катушку, диск забивается за пару недель. Пришлось ограничить размер логов через logrotate. Настройка банальная, но я про неё забыл. Логи на роутере — это важно для диагностики, но они растут быстро. logrotate автоматически ротирует и сжимает логи, не давая диску заполниться. Настройка занимает минуту, а защищает от неприятного сюрприза «диск заполнен». Мониторинг размера диска тоже не помешает. Мелочь, но полезная.

Третий — скорость. OpenWRT в виртуалке работает чуть медленнее, чем физический роутер, из-за виртуализации сетевых карт. На моём канале 100 Мбит разница незаметна, но при 500+ Мбит уже может быть просадка. Для дома — нормально, для офиса лучше физическое железо. Виртуализация добавляет накладные расходы на сетевой трафик. На 100 Мбит — незаметно, на гигабите — ощутимо. Для домашнего использования это не проблема. Если нужна максимальная скорость — физический роутер с OpenWRT. Но для 95% домашних сценариев виртуалка справляется отлично. Взвесьте свои задачи перед выбором.

Бэкап конфига. Самое приятное в OpenWRT — можно сохранить конфиг одной командой и восстановить за минуту. Я настроил автоматический бэкап на NAS раз в неделю. Если ВМ упадёт — поднимаю новую, заливаю бэкап, и всё работает как раньше. Провайдерский роутер так не умеет от слова совсем. Бэкап конфигурации — это страховка от любых сбоев. Весь роутер восстанавливается за минуту из одного файла. Автоматический бэкап на NAS — это проактивность. Ещё советую сразу после настройки экспортировать конфиг через LuCI — System → Backup / Flash Firmware. Там же можно сделать полный сброс, если что-то сломал. Экспорт конфига после настройки — это правило: вы сохраняете рабочие настройки, к которым всегда можно вернуться.

Мои выводы. Я теперь не представляю, как жил без OpenWRT. Да, пришлось повозиться с ВМ, файрволом и VLAN. Да, первый запуск был нервным — боялся, что интернет пропадёт и придётся переключать кабель обратно на провайдерский роутер. Но когда всё заработало и я увидел чистые логи без рекламных запросов — я понял, что оно того стоило. Сейчас OpenWRT крутится уже второй месяц. Я захожу на неё через WireGuard с телефона, когда нужно глянуть логи или перезапустить сервисы. Ни разу не перезагружал — и это на виртуалке с 256 МБ памяти. Круто. В общем, если у тебя есть Proxmox — попробуй. Не пожалеешь. А если нет — купи роутер за 1500 рублей и прошей OpenWRT. В любом случае это лучше, чем сидеть на стоковой прошивке провайдера. OpenWRT открыл мне глаза: роутер — это не коробка, а мощный инструмент, который может всё.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *