Здесь могла бы быть реклама
Она помогает блогу развиваться.
Кажется, сегодня она немного загрустила.

Главная страница » SBC (Rock/Orange/Nano) » SBC как роутер: превращаем одноплатник в мощный домашний шлюз
SBC как роутер: превращаем одноплатник в мощный домашний шлюз
SBC (Rock/Orange/Nano)

SBC как роутер: превращаем одноплатник в мощный домашний шлюз

31.03.2026 256
SBC как роутер: превращаем одноплатник в мощный домашний шлюз

Пошаговое руководство по замене домашнего роутера на одноплатник (Raspberry Pi, NanoPi). Настройка сети, NAT, фаервола и DHCP-сервера для полного контроля.

Зачем покупать очередной чёрный пластиковый ящик с тремя антеннами, если можно собрать роутер своей мечты своими руками? Я долго пользовался готовыми решениями, пока не столкнулся с их ограничениями: закрытое ПО, слабый процессор, невозможность запустить Docker-контейнеры прямо на маршрутизаторе. Всё изменилось, когда я заменил свой домашний роутер на одноплатник. Полный контроль, гибкость настройки и производительность, о которой производители готовых решений могут только мечтать. В этой статье я покажу, как превратить Raspberry Pi, Orange Pi или другой SBC в полноценный сетевой шлюз.

Почему SBC, а не готовый роутер?

Готовые роутеры хороши для базовых задач, но когда речь заходит о: * Глубокой аналитике трафика (nDPI, ntopng) * Запуске сетевых сервисов (Pi-hole, VPN-сервер, локальный DNS) * Гибкой фильтрации и маршрутизации (nftables, policy-based routing) * Полной независимости от облаков и вендорских прошивок

…одноплатник выигрывает по всем параметрам. Мой NanoPi R5S, например, уже год работает как роутер, файловый сервер и платформа для Home Assistant без единого сбоя.

Выбор «железа»: какой одноплатник подойдёт лучше всего

Для роли роутера критичны две вещи: сетевые интерфейсы и стабильность.

Минимум для старта: * Два сетевых порта (WAN и LAN) — либо физических, либо через USB-адаптер * Процессор с аппаратным ускорением сетевых операций (особенно NAT) * Стабильный блок питания (не менее 3А для моделей с несколькими портами)

Мои рекомендации: * NanoPi R5S/R5C — созданы для этой роли: 2-3 гигабитных порта, аппаратный NAT, хорошее охлаждение. * Raspberry Pi 4/5 с USB-гигабитным адаптером — универсальный вариант, если нужен один LAN-порт. * Orange Pi R1 Plus — бюджетный вариант с двумя гигабитными портами.

Важно: Если планируете использовать Wi-Fi, выбирайте платы со встроенным модулем (Raspberry Pi) или убедитесь в совместимости USB-адаптера с Linux. Для серьёзных задач я рекомендую вынести Wi-Fi на отдельную точку доступа.

Подготовка системы: от прошивки до базовой настройки

Шаг 1: Установка ОС

Для роутера нужна стабильная, минималистичная ОС. Я использую Debian Bookworm или Ubuntu Server LTS.

# Записываем образ на карту памяти (Linux/macOS)
# Замените /dev/sdX на ваше устройство и путь к образу
sudo dd if=debian-12-nanopi-r5s.img of=/dev/sdX bs=4M status=progress conv=fsync

Типичная ошибка: Использование десктопных дистрибутивов с графической оболочкой. Они расходуют ресурсы на ненужные службы. Берите серверные сборки.

Шаг 2: Первичная настройка (headless)

Если у вас нет монитора и клавиатуры, настройте доступ по SSH до загрузки платы. Для этого в корне загрузочной раздела (boot) создайте пустой файл ssh и файл userconf.txt для пользователя.

# На смонтированной загрузочной разделе (boot)
touch /boot/ssh

# Создание пользователя с паролем 'raspberry' (измените!)
# Пароль в формате: хеш crypt. Сгенерировать можно так: echo 'mypassword' | openssl passwd -6 -stdin
echo 'pi:$6$Ce7Z/5C7mR6pV$Y1...остаток_хеша' > /boot/userconf.txt

Более подробно о headless-настройке я писал в статье Headless Raspberry Pi: Настройка без монитора через SSH — Полное руководство.

Шаг 3: Обновление и установка базовых пакетов

Подключаемся по SSH и приводим систему в порядок.

ssh pi@192.168.1.100 # Ваш IP может отличаться

# Меняем пароль сразу!
passwd

# Обновляем список пакетов и систему
sudo apt update && sudo apt upgrade -y

# Устанавливаем необходимые инструменты
sudo apt install -y curl wget git htop net-tools nftables iptables-persistent

Конфигурация сети: сердце нашего роутера

Здесь важно правильно определить, какой интерфейс будет WAN (внешним), а какой — LAN (внутренним). Обычно eth0 — это порт, ближайший к разъёму питания.

Шаг 1: Настройка статического IP для LAN

Редактируем конфиг Netplan (Ubuntu) или /etc/network/interfaces (Debian).

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    # LAN-интерфейс (внутренняя сеть)
    eth0:
      dhcp4: no
      addresses:
        - 192.168.88.1/24 # Это будет IP нашего роутера в локальной сети
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1] # Пока используем публичные DNS
    # WAN-интерфейс (внешняя сеть, получит IP от провайдера)
    eth1:
      dhcp4: yes # Получаем адрес автоматически от провайдера
      optional: true

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

sudo netplan apply

Типичная ошибка: Не указать optional: true для WAN-порта. Если кабель не воткнут при загрузке, система будет долго ждать его появления, задерживая старт.

Шаг 2: Включаем IP-форвардинг

Без этого ядра пакеты не будут передаваться между интерфейсами.

# Разрешаем форвардинг IPv4
sudo sysctl -w net.ipv4.ip_forward=1

# Чтобы настройка сохранилась после перезагрузки
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf

# Для IPv6 (если используете)
sudo sysctl -w net.ipv6.conf.all.forwarding=1
echo "net.ipv6.conf.all.forwarding=1" | sudo tee -a /etc/sysctl.conf

Настройка трансляции адресов (NAT) и фаервола с nftables

iptables устарел, его место занял более быстрый и гибкий nftables. Создадим базовый набор правил.

# Создаём и редактируем конфигурационный файл
sudo nano /etc/nftables.conf
#!/usr/sbin/nft -f
# Полный конфиг фаервола и NAT для домашнего роутера

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        # Разрешаем established/related соединения
        ct state established,related accept

        # Разрешаем loopback интерфейс
        iif lo accept

        # Разрешаем ICMP (пинги)
        ip protocol icmp accept
        ip6 nexthdr icmpv6 accept

        # Разрешаем SSH только из локальной сети (безопасность!)
        tcp dport 22 ip saddr 192.168.88.0/24 accept

        # Разрешаем входящие DNS-запросы от локальной сети
        udp dport 53 ip saddr 192.168.88.0/24 accept
        tcp dport 53 ip saddr 192.168.88.0/24 accept

        # Логируем и отбрасываем всё остальное
        log prefix "DROP_INPUT: " flags all counter drop
    }

    chain forward {
        type filter hook forward priority 0; policy drop;

        # Разрешаем форвардинг established/related
        ct state established,related accept

        # Разрешаем исходящие соединения из локальной сети
        iif eth0 oif eth1 accept

        # Логируем запрещённый форвардинг
        log prefix "DROP_FORWARD: " flags all counter drop
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

table ip nat {
    chain prerouting {
        type nat hook prerouting priority -100; policy accept;
    }

    chain postrouting {
        type nat hook postrouting priority 100; policy accept;

        # Маскарадинг для выхода в интернет (NAT)
        oif eth1 masquerade
    }
}

Включаем и запускаем службу:

# Проверяем конфиг на ошибки
sudo nft -f /etc/nftables.conf

# Включаем автозагрузку
sudo systemctl enable nftables
sudo systemctl start nftables

Совет: Для отладки можно временно заменить policy drop на policy accept в цепях input и forward, настроить правила, а потом вернуть строгую политику.

DHCP-сервер: раздаём IP автоматически

Установим и настроим isc-dhcp-server или dnsmasq. Я предпочитаю dnsmasq за его простоту и возможность совмещать DHCP и локальный DNS.

sudo apt install -y dnsmasq

Резервируем стандартный конфиг и создаём свой:

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
# Конфигурация dnsmasq для домашнего роутера
interface=eth0          # Слушаем на LAN-интерфейсе
dhcp-range=192.168.88.100,192.168.88.250,255.255.255.0,24h
dhcp-option=option:router,192.168.88.1
dhcp-option=option:dns-server,192.168.88.1 # Роутер будет и DNS-сервером

# Статические аренды (резервирование IP)
dhcp-host=AA:BB:CC:DD:EE:FF,192.168.88.50  # Например, для вашего ноутбука

# Локальные DNS-имена
address=/local.lan/192.168.88.1

Перезапускаем службу:

sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq

Тестирование и проверка результата

После перезагрузки (sudo reboot) проверяем, что всё работает.

Проверка №1: Подключение клиента

Подключите компьютер к LAN-порту (или к Wi-Fi точке, если её настроили). Устройство должно автоматически получить IP из диапазона 192.168.88.100-250 и доступ в интернет.

Проверка №2: Работа NAT и фаервола

# На самом роутере проверяем:
# 1. Состояние интерфейсов
ip addr show

# 2. Таблицы маршрутизации
ip route show

# 3. Правила nftables
sudo nft list ruleset

# 4. Сессии NAT (должны появляться при активности клиентов)
sudo conntrack -L

# 5. Логи фаервола (если что-то блокируется)
sudo journalctl -u nftables -f

Проверка №3: Производительность

Установите iperf3 и протестируйте пропускную способность между двумя клиентами в локальной сети и скорость выхода в интернет.

# На роутере как сервер
iperf3 -s

# На клиенте (в другой SSH-сессии или с другого ПК)
iperf3 -c 192.168.88.1

Ожидаемый результат: Для гигабитных портов и аппаратного NAT (на R5S, R4B) вы должны увидеть близкие к 940 Мбит/с. Для программного NAT (на старых моделях) — от 200 до 600 Мбит/с в зависимости от процессора.

Дальнейшее развитие: что добавить к базовому роутеру

Самое интересное начинается сейчас, когда база работает. На вашем новом роутере можно развернуть:

  1. Pi-hole — сетевой блокировщик рекламы и трекеров для всей сети. bash curl -sSL https://install.pi-hole.net | bash После установки укажите в настройках dnsmasq или DHCP Pi-hole как основной DNS (192.168.88.1).

  2. WireGuard VPN-сервер — для безопасного доступа к домашней сети извне. bash sudo apt install -y wireguard wg genkey | sudo tee /etc/wireguard/private.key

  3. Сетевой мониторинг (ntopng, Prometheus + Grafana) — для анализа трафика.

  4. Интеграцию с умным домом — запустите Home Assistant прямо на роутере, если ресурсов хватает. У меня на NanoPi R5S отлично уживаются роутинг, Pi-hole и Home Assistant. Подробнее об установке читайте в руководстве Home Assistant на Raspberry Pi: Полное руководство по установке с нуля в 2024.

Заключение: стоит ли игра свеч?

Однозначно да. Первые два часа настройки окупаются годами стабильной работы, полным контролем и свободой творчества. Такой роутер не устаревает морально — вы всегда можете обновить ПО, добавить новый сервис или изменить логику работы сети под свои нужды.

Мой SBC-роутер работает месяцами без перезагрузки, потребляет 5-7 ватт и делает всё, что мне нужно, и даже больше. Это не просто замена покупному устройству, а качественный скачок в управлении домашней сетью.

Если вы только выбираете плату для такого проекта, рекомендую ознакомиться с моим сравнением в статье Выбор одноплатника в 2024: Raspberry Pi, Orange Pi, Rock Pi или NanoPi для DIY-проектов. А для тех, кто ищет идеальный баланс цены и возможностей, я подробно разбирал NanoPi R5S: мой выбор в качестве идеального мини-роутера для дома на ARM.

Главное — начать. Соберите свой роутер, настройте его под себя и почувствуйте вкус настоящей сетевой свободы.

Понравилась статья?

Поставьте лайк и сохраните полезный материал в закладки.

Комментарии (0)
Добавить комментарий
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Лучшие операционные системы для Orange Pi Zero 3: 7 рабочих образов со ссылками на скачивание
SBC (Rock/Orange/Nano)
09.09.2026
Лучшие операционные системы для Orange Pi Zero 3: 7 рабочих образов со ссылками на скачивание
Сравниваем 7 операционных систем для Orange Pi Zero 3: Armbian, DietPi, Debian, Ubuntu, OpenWrt, Android 12 и Orange Pi OS. Разбираем, что лучше выбрать для сервера,
ROCK Pi 4B: установка Armbian и подключение по SSH без монитора
SBC (Rock/Orange/Nano)
01.09.2026
ROCK Pi 4B: установка Armbian и подключение по SSH без монитора
Пошаговая инструкция по установке Armbian на ROCK Pi 4B и настройке SSH-доступа без монитора. Советы, команды, типичные ошибки и проверка результата.
Домашний кластер из микрокомпьютеров: собираем и находим применение
SBC (Rock/Orange/Nano)
05.09.2026
Домашний кластер из микрокомпьютеров: собираем и находим применение
Собираем домашний кластер из Raspberry Pi и других SBC: выбор плат, настройка Docker Swarm, три практических сценария — умный дом, веб-сервер и VLESS-шлюз.
Orange Pi 3B: домашний сервер за минимальные деньги
SBC (Rock/Orange/Nano)
31.03.2026
Orange Pi 3B: домашний сервер за минимальные деньги
Пошаговое руководство по настройке Orange Pi 3B как домашнего сервера: файловое хранилище, медиасервер, мониторинг. DIY с нуля.
NanoPi R2S: бюджетный мини-роутер — установка и настройка своими руками
SBC (Rock/Orange/Nano)
31.03.2026
NanoPi R2S: бюджетный мини-роутер — установка и настройка своими руками
Пошаговое руководство по превращению NanoPi R2S в мощный гигабитный роутер. Прошивка FriendlyWrt, настройка сети, установка ПО, тестирование скорости и решение проблем.
Orange Pi Zero 3: самый доступный одноплатник для умного дома
SBC (Rock/Orange/Nano)
31.03.2026
Orange Pi Zero 3: самый доступный одноплатник для умного дома
Подробное руководство по настройке Orange Pi Zero 3 как мозга умного дома. Установка Home Assistant, MQTT, мониторинг. DIY за копейки.

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