256-бит AES - тот же стандарт, что защищает банковские транзакции

0%
· 5 минут

VPN на MikroTik: WireGuard за 15 минут и VLESS через контейнер — полный гайд

Коротко: на MikroTik с RouterOS 7 есть два пути. Быстрый — встроенный WireGuard: клиент нативный, настройка через WinBox или консоль занимает 15 минут. Продвинутый — протокол VLESS через функцию Container: на роутере запускается лёгкий контейнер с xray, работает на моделях с архитектурой ARM/ARM64/x86 и внешним накопителем. Второй путь даёт маскировку трафика под обычный HTTPS и стабильность в любых сетях — и, в отличие от других роутерных решений, поддерживает в том числе XHTTP-конфигурации. Разбираем оба пути.

Не разбираешься в роутерах? Честная навигация

MikroTik — инструмент сетевых инженеров: тут нет мастеров настройки, а логика RouterOS требует понимания маршрутизации. Если ты выбираешь первый роутер под VPN для дома — посмотри сначала гайд по Keenetic или TP-Link: там всё настраивается кнопками в веб-интерфейсе. Если MikroTik уже стоит и ты с ним на «ты» — поехали. Застрянешь — поддержка Tainet поможет разобраться с твоей конфигурацией.

Что понадобится

  • RouterOS 7.x (WireGuard встроен начиная с седьмой версии; для контейнеров желательно 7.6+, лучше свежая стабильная ветка).
  • Для пути VLESS: модель на ARM, ARM64 или x86 (hAP ax2/ax3, RB5009, CCR2004 и новее, x86/CHR) и накопитель под контейнер — USB-флешка или NVMe; на моделях со старыми архитектурами (MIPS) контейнеры не поддерживаются, там остаётся WireGuard.
  • Конфигурация от сервиса. У Tainet при оформлении доступны оба формата — файл WireGuard и VLESS-ссылка — в Telegram-боте или на этом сайте в личном кабинете; первые 7 дней — бесплатно, хватит обкатать настройку.

Дальше в статье - практические шаги; если нужно готовое подключение, Tainet настраивается за пару минут - через Telegram-бот или в личном кабинете на этом сайте.

Путь 1: WireGuard нативно

Все параметры — из файла конфигурации WireGuard (у Tainet он в личном кабинете в разделе подписки). Через консоль:

# интерфейс с приватным ключом из [Interface] PrivateKey
/interface/wireguard/add name=wg-vpn private-key="ПРИВАТНЫЙ_КЛЮЧ"

# адрес из [Interface] Address
/ip/address/add address=10.0.0.2/32 interface=wg-vpn

# пир: публичный ключ сервера, endpoint и порт из [Peer]
/interface/wireguard/peers/add interface=wg-vpn \
  public-key="ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА" endpoint-address=АДРЕС_СЕРВЕРА \
  endpoint-port=51820 allowed-address=0.0.0.0/0 persistent-keepalive=25s

# NAT для локальной сети через туннель
/ip/firewall/nat/add chain=srcnat out-interface=wg-vpn action=masquerade

# маршрут всего трафика в туннель (или только нужного — см. раздел про маршрутизацию)
/ip/route/add dst-address=0.0.0.0/0 gateway=wg-vpn distance=5

В WinBox то же самое делается в разделах WireGuard → Interfaces/Peers, IP → Addresses, IP → Firewall → NAT, IP → Routes. Проверка: /interface/wireguard/peers/print должен показывать рост rx/tx, а устройства за роутером — внешний IP сервера.

Честная оговорка: WireGuard быстр и прост, но его трафик распознаваем, и в части сетей соединение живёт нестабильно. Если это твой случай — путь 2.

Путь 2: VLESS через контейнер

Идея: на роутере поднимается контейнер с xray, который держит VLESS-подключение, а RouterOS заворачивает в него трафик. Используем готовый образ (например, универсальный aznka/xray-vless-mikrotik под свою архитектуру — он же понимает транспорты Vision, XHTTP, gRPC, WebSocket).

Шаг 1. Включи поддержку контейнеров. Установи пакет container (Extra packages под свою версию), затем:

/system/device-mode/update container=yes

RouterOS попросит подтвердить изменение физически — нажатием кнопки на устройстве или холодной перезагрузкой в отведённое время. Это защита MikroTik, без неё контейнеры не запустятся.

Шаг 2. Сеть для контейнера.

/interface/veth/add name=veth-vless address=172.17.0.2/24 gateway=172.17.0.1
/interface/bridge/add name=containers
/interface/bridge/port/add bridge=containers interface=veth-vless
/ip/address/add address=172.17.0.1/24 interface=containers
/ip/firewall/nat/add chain=srcnat src-address=172.17.0.0/24 action=masquerade

Шаг 3. Передай контейнеру свою VLESS-ссылку (скопируй её целиком из личного кабинета или бота Tainet):

/container/envs/add list=vless-env key=VLESS_URL value="vless://ТВОЯ_ССЫЛКА_ЦЕЛИКОМ"

Шаг 4. Создай и запусти контейнер (root-dir — на твоём накопителе):

/container/config/set registry-url=https://registry-1.docker.io tmpdir=disk1/tmp
/container/add remote-image=aznka/xray-vless-mikrotik-arm64:latest \
  interface=veth-vless root-dir=disk1/containers/vless \
  envlist=vless-env start-on-boot=yes logging=yes name=vless
/container/start vless

Шаг 5. Заверни трафик. Простейший вариант — весь трафик через контейнер отдельной таблицей маршрутизации:

/routing/table/add name=to_vpn fib
/ip/route/add dst-address=0.0.0.0/0 gateway=172.17.0.2 routing-table=to_vpn
/ip/firewall/mangle/add chain=prerouting src-address=192.168.88.0/24 \
  action=mark-routing new-routing-mark=to_vpn passthrough=yes

(Подставь свою локальную подсеть; для выборочной маршрутизации меняй условие в mangle — по адресам устройств или спискам назначения.)

Проверка: /container/print — статус running; лог контейнера покажет установленное подключение; устройства из размеченной подсети выходят с IP сервера.

Нюанс про типы конфигураций: контейнер работает на полноценном xray, поэтому понимает и VLESS, и XHTTP-варианты из подписки Tainet — фильтровать ничего не нужно. Это отличает MikroTik-путь от роутерных решений на sing-box (как HomeProxy на OpenWRT), где XHTTP пока не поддерживается — подробности в гайде по OpenWRT.

Tainet работает с любым из путей: WireGuard-конфиг для штатного клиента, VLESS-подписка для OpenWRT — одна подписка, оба формата, плюс те же серверы на телефоне и компьютере. Подключение через Telegram-бот или в личном кабинете на этом сайте, от 8 ₽ в день.

Попробовать →

Проблемы и решения

Контейнер не стартует. Три классические причины: не подтверждён device-mode (повтори шаг 1 и нажми кнопку), не хватает места (проверь накопитель и root-dir), образ не под твою архитектуру (/system/resource/print → architecture-name, выбери соответствующий тег образа).

Контейнер работает, трафик не идёт. Проверь NAT-правило для 172.17.0.0/24, маршрут в routing-table и mangle-правило — три места, где обычно теряется пакет. И убедись, что в VLESS_URL ссылка скопировалась целиком.

Скорость ниже ожидаемой. Шифрование в контейнере нагружает CPU: на hAP ax-серии реалистично ожидать десятки—до сотни Мбит/с через VLESS; для гигабитных задач смотри в сторону RB5009/CCR. WireGuard на тех же устройствах быстрее в разы — иногда правильная схема это WireGuard по умолчанию + VLESS для устройств, которым нужна стабильность.

После обновления RouterOS всё пропало. Проверь, что пакет container установлен под новую версию, и перезапусти контейнер.

Не решилось — напиши в поддержку: подскажем по твоей модели и конфигурации.

Частые вопросы

Какие модели MikroTik подходят для VLESS-контейнера?

Любые на ARM/ARM64/x86 с возможностью подключить накопитель: hAP ax2/ax3, RB5009, CCR2004 и новее, виртуальный CHR. Старые MIPS-модели (hEX, hAP lite и подобные) контейнеры не поддерживают — на них только WireGuard/OpenVPN.

WireGuard или VLESS на MikroTik?

WireGuard — быстрее и проще, ставится за 15 минут без контейнеров. VLESS — стабильнее в капризных сетях благодаря маскировке под HTTPS. Рабочая схема многих админов: начать с WireGuard, добавить VLESS-контейнер при проблемах со связью. Как устроена маскировка — в разборе протокола VLESS.

Можно ли пустить через VPN только часть устройств?

Да, это сильная сторона MikroTik: меняй условия в mangle-правиле — по адресам устройств, address-list или назначению. Телевизор через туннель, рабочий комп напрямую — штатная задача.

Одна подписка на роутер и телефон — можно?

Да: подписка Tainet мультиустройственная — контейнер на роутере и Happ на телефоне работают с одной ссылкой. Обзор всех платформ — в гайде по устройствам.

Если нужен сервис, который дружит с MikroTik из коробки: у Tainet в одной подписке — WireGuard-конфиг для нативного пути и VLESS/XHTTP-ссылки для контейнера, бесплатная первая неделя на обкатку, от 8 ₽ в день. Оформить — в Telegram-боте или на этом сайте в личном кабинете. Вопросы по твоей схеме — поддержка отвечает живыми людьми.