Обновление от 08.01.2026
Инструкция предполагает, что ваш роутер сброшен до заводских настроек.
Инструкция проверена на RouterOS версии 7.20
Не все модели Mikrotik поддерживают работу с контейнерами. Командами ниже пробуем проверить поддержку и установить.
Проверяем, установлен ли пакет container:
/system package print
Если в выводе нет container, то пытаемся установить:
/system package update
/system package enable container
Проверяем включена ли поддердка container в ядро ОС:
/system/device-mode/print
Если в выводе вы видите container: no, то пытаемся включить и перезагрузить устрйоство:
/system/device-mode/update container=yes
# После этой команды обязательно перезагружаем роутер по питанию
# Сразу после перезагрузки проверяем, появилась ли поддержка контейнеров командой:
/system/device-mode/print
# В выводе должно быть "container: yes"
# Если у вас не так, скорее всего ваша модель не поддерживает контейнеры. Возможно, вам поможет официальное руководство: https://help.mikrotik.com/docs/spaces/ROS/pages/84901929/Container
Создаём необходимые интерфейсы:
/interface/bridge add name=container
/ip/address add address=192.168.89.1/24 interface=container network=192.168.89.0
/interface/veth add address=192.168.89.2/24 gateway=192.168.89.1 name=vless
/interface/bridge/port add bridge=container interface=vless
Настройка маршрутизации:
/routing table add disabled=no fib name=to_vpn_table
/ip route add dst-address=0.0.0.0/0 gateway=192.168.89.2 distance=1 routing-table=to_vpn_table
Настройка файрвола:
/ip firewall address-list add list=to_vpn_list address=2ip.ru
/ip firewall mangle add action=change-mss chain=forward new-mss=1360 out-interface=container passthrough=yes protocol=tcp tcp-flag=syn tcp-mss=1453-6553
/ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-list=to_vpn_list in-interface-list=!WAN new-connection-mark=to_vpn_mark passthrough=yes
/ip firewall mangle add action=mark-routing chain=prerouting connection-mark=to_vpn_mark new-routing-mark=to_vpn_table passthrough=no in-interface=!container
/ip firewall filter set [find action~"fasttrack-connection"] connection-mark=!to_vpn_mark
Если у вас есть USB флешка в роутере (рекомендуется), которая примонтирована, например, в usb1, то необходимо выполнить команду:
/container config set registry-url=https://registry-1.docker.io tmpdir=usb1/container-tmp layer-dir=usb1/container-tmp/layer
Иначе будет достаточно команды:
/container config set registry-url=https://registry-1.docker.io tmpdir=ramstorage
Создадим ENV переменную для контейнера с параметрами подключения к внешнему VPN-серверу:
# value заполняем своим значением от VLESS сервера (например, из 3X-UI панели):
/container envs add list=mihomo key=SRV1 value="vless://..."
Создаём и запускаем контейнер:
/container add envlists=mihomo interface=vless logging=no remote-image=registry-1.docker.io/wiktorbgu/mihomo-mikrotik:latest root-dir=usb1/container-tmp/docker/mihomo dns=8.8.8.8,8.8.4.4 start-on-boot=yes
/container start mihomo
Пробуем из любого локальной сети отрыть в браузере ресурс: https://2ip.ru
При корректной работе в браузере должен отобразиться IP-адрес внешнего VPN-сервера
Также, в браузере должна открываться UI-панель самого Mihomo, работающая в контейнере по адресу: http://192.168.89.2:9090/ui/#/setup?hostname=192.168.89.2&port=9090&secret=
# Установка доверенных сертификатов (необходимо для DOH)
/certificate/settings/set builtin-trust-anchors=trusted
# Сохранение адресов вышестоящего DNS сервера, чтобы его самого не резолвить из вне
/ip dns static
add type=A name=dns.google address=8.8.8.8
add type=A name=dns.google address=8.8.4.4
# Включение DOH
/ip dns set use-doh-server=https://dns.google/dns-query verify-doh-cert=yes doh-max-server-connections=100 doh-max-concurrent-queries=300 doh-timeout=10s
# Отключаем старые DNS настройки
/ip dhcp-client set numbers=0 use-peer-dns=no
/ip dns set servers="" allow-remote-requests=yes
# Instagram
/ip dns static
add type=FWD match-subdomain=yes address-list=to_vpn_list name=instagram.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=facebook.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=cdninstagram.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=fbcdn.net
# YouTube
/ip dns static
add type=FWD match-subdomain=yes address-list=to_vpn_list name=youtube.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=googlevideo.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=ytimg.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=ggpht.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=gvt1.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=youtube-nocookie.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=googleapis.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=gstatic.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=googleusercontent.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=l.google.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=yt.be
add type=FWD match-subdomain=yes address-list=to_vpn_list name=youtu.be
/system backup save name=usb1/backup/with_vpn.backup
Подскажите - можно как то добавлять в "to_vpn_list" листы из внешних источников?
Можно ли их автоматически поключить или конвертировать? Как например в OpenWRT через PODKOP - выбрать нужный и все, он сам с заданной периодичностью обновляется.
Например из https://github.com/itdoginfo/allow-domains
там есть в Russia inside список готовый для микротик
https://raw.githubusercontent.com/itdoginfo/allow-domains/refs/heads/main/Russia/inside-mikrotik-fwd.lst
Или взять сырой RAW https://raw.githubusercontent.com/itdoginfo/allow-domains/main/Russia/inside-raw.lst
И дописать в начале каждой строки?
add type=FWD match-subdomain=yes address-list=to_vpn_list name=
UPD - добавил, сработало
P.S. - укажите пожалуйста, что носитель USB должен быть в ext4 - я полчаса убил на понимание, почему команды не могут создать директории (-.-)
Или ссыла для подготовки носителя
https://wiki.dbpbox.com/vpn/mikrotik/vless/podgotovka-mikrotik
P.P.S. Судя по всему - в панели доступно обновление и проверка версии на более актуальную (Версия v1.235.0 / v1.19.18 )
Но когда тыкаешь на бесконечность (обновление?) - она крутится но ничего не происходит.
В логах при этом это
time="2026-01-14T01:35:20.502248706+03:00" level=warning msg="[TCP] dial GLOBAL (match Match/) mihomo --> github.com:443 error: dns resolve failed: couldn't find ip"
time="2026-01-14T01:35:20.502723331+03:00" level=warning msg="can't download file: Get "https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip\": EOF"
P.P.P.S.
При выполнении на прошивке 7.21 выдает ошибку - там настройки по другому сделаны, больше галок стало.
/certificate/settings/set builtin-trust-anchors=trusted
expected end of command (line 1 column 27)
P.P.P.P.S.
В "Настройка DNS" - может п.2 в начале поставить это для скачивания и импорта сертификатов?
/tool fetch url=https://curl.se/ca/cacert.pem
/certificate import file-name=cacert.pem passphrase=""