Установка OpenWrt на Ubuntu: KVM, VirtualBox, Docker | Гайд 2024 | AdminWiki

Установка OpenWrt на Ubuntu: Полное руководство для виртуализации и тестирования

18 декабря 2025 7 мин. чтения #docker #kvm #linux #openwrt #ubuntu #virtualbox #виртуализация #маршрутизация

Представь, что тебе нужно протестировать конфигурацию маршрутизатора, развернуть домашний фаервол или создать изолированную сетевую лабораторию — и всё это без покупки дополнительного железа. Установка OpenWrt на Ubuntu даёт именно такую возможность. В этом руководстве мы разберём три основных метода виртуализации, от самого производительного (KVM) до самого простого (Docker).

Важно: OpenWrt — это полноценная операционная система для маршрутизаторов на базе Linux. Мы будем запускать её как виртуальную машину или контейнер внутри Ubuntu для тестирования, разработки или использования в качестве сетевого шлюза.

Подготовка Ubuntu к установке OpenWrt

Перед началом убедись, что у тебя установлена Ubuntu 20.04 LTS или новее. Обнови систему и установи базовые утилиты:

bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl git unzip

Выбор образа OpenWrt

Перейди на официальный сайт и выбери образ для своей архитектуры. Для большинства современных систем подойдёт x86/64.

bash
# Скачиваем последний стабильный образ для x86_64
wget https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz

# Распаковываем
gunzip openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz

Метод 1: Установка OpenWrt в KVM (наиболее производительный)

KVM (Kernel-based Virtual Machine) — это встроенная в ядро Linux технология виртуализации. Давай разберём настройку по шагам.

Шаг 1 — Установка KVM и инструментов

bash
sudo apt install -y qemu-kvm libvirt-daemon-system \
  libvirt-clients bridge-utils virtinst virt-manager \
  libguestfs-tools

Шаг 2 — Создание виртуальной машины

Используем virt-install для создания ВМ. Обрати внимание на параметры сети:

bash
sudo virt-install \
  --name openwrt-kvm \
  --description "OpenWrt Router" \
  --ram=512 \
  --vcpus=1 \
  --disk path=/var/lib/libvirt/images/openwrt.img,size=2 \
  --os-type linux \
  --os-variant generic \
  --network bridge=virbr0,model=virtio \
  --network bridge=virbr1,model=virtio \
  --graphics none \
  --console pty,target_type=serial \
  --import \
  --boot hd
Внимание: Мы создаём две сетевые карты (NIC). Первая (virbr0) будет WAN (интернет), вторая (virbr1) — LAN (локальная сеть). Убедись, что мосты существуют: sudo virsh net-list --all

Шаг 3 — Настройка сети в OpenWrt

После запуска ВМ подключись к консоли и настрой интерфейсы:

bash
# В консоли OpenWrt
vi /etc/config/network

Пример конфигурации:

config
config interface 'lan'
    option proto 'static'
    option ipaddr '192.168.1.1'
    option netmask '255.255.255.0'
    option device 'eth1'

config interface 'wan'
    option proto 'dhcp'
    option device 'eth0'

Метод 2: Установка OpenWrt в VirtualBox (самый простой)

Если ты только начинаешь работать с виртуализацией, VirtualBox — отличный выбор благодаря графическому интерфейсу.

Шаг 1 — Установка VirtualBox

bash
sudo apt install -y virtualbox virtualbox-ext-pack

Шаг 2 — Создание виртуальной машины

Запусти VirtualBox и создай новую ВМ со следующими параметрами:

  • Тип: Linux
  • Версия: Linux 2.6 / 3.x / 4.x (64-bit)
  • Память: 512 MB
  • Жёсткий диск: 2 GB (VDI)
  • Сетевые адаптеры: 2 шт. (Adapter 1: NAT, Adapter 2: Internal Network)

Шаг 3 — Привязка образа OpenWrt

bash
# Конвертируем raw образ в формат VDI
VBoxManage convertfromraw openwrt-23.05.3-x86-64-generic-ext4-combined.img openwrt.vdi --format VDI

# Привязываем к ВМ
VBoxManage storageattach "OpenWrt" --storagectl "SATA" --port 0 \
  --device 0 --type hdd --medium openwrt.vdi

Метод 3: Запуск OpenWrt в Docker (для контейнеризации)

Docker-образ OpenWrt идеально подходит для тестирования сетевых конфигураций и CI/CD пайплайнов.

Шаг 1 — Установка Docker

bash
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
# Перелогинься или выполни: newgrp docker

Шаг 2 — Запуск контейнера OpenWrt

bash
# Создаём сеть Docker для LAN
sudo docker network create --subnet=192.168.100.0/24 openwrt-lan

# Запускаем контейнер
sudo docker run -d \
  --name openwrt-docker \
  --restart unless-stopped \
  --network openwrt-lan \
  --ip 192.168.100.1 \
  --cap-add=NET_ADMIN \
  --sysctl net.ipv6.conf.all.disable_ipv6=0 \
  openwrtorg/rootfs:x86-64

Шаг 3 — Настройка через Docker exec

bash
# Подключаемся к контейнеру
sudo docker exec -it openwrt-docker /bin/sh

# Меняем пароль (по умолчанию пустой)
passwd

# Настраиваем сеть
uci set network.lan.ipaddr='192.168.100.1'
uci commit network
/etc/init.d/network restart

Сравнение методов установки OpenWrt

Метод Производительность Сложность Использование
KVM Нативная (близко к железу) Средняя Продакшен-тесты, сетевая лаборатория
VirtualBox Хорошая Низкая Обучение, быстрые тесты
Docker Высокая (легковесный) Низкая/Средняя CI/CD, микросервисы, разработка

Базовая настройка OpenWrt после установки

Независимо от выбранного метода, выполни эти обязательные шаги:

  1. Смена пароля: passwd (по умолчанию пароль пустой!)
  2. Обновление пакетов: opkg update && opkg upgrade
  3. Настройка фаервола: Открой веб-интерфейс по адресу http://192.168.1.1 или настрой через CLI
  4. Установка LuCI (веб-интерфейс): opkg install luci
config
# Пример настройки фаервола /etc/config/firewall
config zone
    option name 'lan'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'ACCEPT'
    option network 'lan'

config zone
    option name 'wan'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'
    option mtu_fix '1'
    option network 'wan'

Частые проблемы и решения

Проблема: Нет доступа к интернету из OpenWrt

Решение: Проверь настройки WAN интерфейса. В KVM/VirtualBox убедись, что первый адаптер подключён к NAT или мосту с доступом в интернет. Выполни в OpenWrt: ping 8.8.8.8

Проблема: Не открывается веб-интерфейс

Решение: Убедись, что LuCI установлен: opkg list-installed | grep luci. Проверь IP-адрес: uci get network.lan.ipaddr. Фаервол должен разрешать входящие подключения на порт 80.

Проблема: Docker-контейнер не запускается

Решение: Проверь логи: docker logs openwrt-docker. Убедись, что добавлена привилегия NET_ADMIN. Попробуй запустить с флагом --privileged для полного доступа к сети.

Итог: Что выбрать для своих задач?

  • KVM — если нужна максимальная производительность и реалистичное тестирование сетевого оборудования
  • VirtualBox — для обучения, демонстраций или если ты не знаком с CLI-инструментами
  • Docker — для интеграции в DevOps-пайплайны, тестирования конфигураций или быстрого развёртывания

Установка OpenWrt на Ubuntu открывает огромные возможности для тестирования сетевых конфигураций без риска для основной инфраструктуры. Начни с VirtualBox, затем перейди на KVM для более серьёзных задач, а Docker используй для автоматизации.

Поделиться:
Сохранить гайд? В закладки браузера