Главная Проекты Статьи 🔑 Генератор паролей ⚡ VLESS Конвертер Контакты
← Все статьи
MikroTik

Установка контейнера Mihomo (Clash Meta) на MikroTik RouterOS

Что такое Mihomo

Mihomo (ранее Clash Meta) — высокопроизводительный прокси-клиент с открытым исходным кодом, форк проекта Clash. Поддерживает современные протоколы: VLESS, VMess, Shadowsocks, Trojan, WireGuard, AmneziaWG и гибкую маршрутизацию трафика по правилам.

Образ wiktorbgu/mihomo-mikrotik позволяет запустить Mihomo прямо на роутере MikroTik в виде контейнера. Контейнер поднимает туннельный шлюз и смешанный прокси-порт 1080 (SOCKS5 + HTTP). Все устройства в локальной сети получают возможность выходить через прокси без каких-либо настроек на самих клиентах.

Требования

  • MikroTik с архитектурой ARM64 или AMD64 (CHR, CCR2xxx, RB5009, hAP ax³ и аналоги)
  • RouterOS 7.4+ с поддержкой контейнеров
  • USB-накопитель или extra-диск — минимум 256 МБ свободного места
  • Доступ в интернет для загрузки образа с Docker Hub
  • Готовые прокси-серверы: VLESS URI или URL подписки

Шаг 1 — Подготовка RouterOS

1.1 Включить поддержку контейнеров

Функция контейнеров отключена по умолчанию. Включается командой:

/system/device-mode/update container=yes
После выполнения роутер перезагрузится. Если используется физическое устройство — потребуется нажать кнопку Reset в течение 5 секунд для подтверждения.

1.2 Настроить реестр Docker и временную папку

Укажите реестр и директорию на USB-накопителе для временных файлов при скачивании образа:

/container/config/set registry-url=https://registry-1.docker.io tmpdir=/usb1/docker/pull

Шаг 2 — Создание сетевой инфраструктуры

Контейнеру нужен выделенный виртуальный сетевой интерфейс. Используется схема: Bridge-Dockerveth MIHOMO ← контейнер. IP-подсеть 192.168.254.0/24 изолирована от остальной сети.

2.1 Создать бридж для Docker

/interface/bridge add name=Bridge-Docker port-cost-mode=short

2.2 Назначить IP-адрес бриджу (шлюз для контейнера)

/ip/address add address=192.168.254.1/24 interface=Bridge-Docker

2.3 Создать виртуальный интерфейс veth для контейнера

/interface/veth add address=192.168.254.3/24 gateway=192.168.254.1 name=MIHOMO

Контейнер получит IP 192.168.254.3, шлюз — роутер 192.168.254.1.

2.4 Добавить veth в бридж

/interface/bridge/port add bridge=Bridge-Docker interface=MIHOMO

2.5 Настроить NAT для контейнера

Чтобы контейнер мог выходить в интернет через WAN-интерфейс роутера:

/ip/firewall/nat add chain=srcnat src-address=192.168.254.0/24 action=masquerade comment="Docker-Mihomo NAT"

Шаг 3 — Переменные окружения

Образ настраивается через переменные окружения. Создаётся список переменных с именем MIHOMO, который затем привязывается к контейнеру.

3.1 Перейти в контекст container envs

/container envs

3.2 Прокси-серверы (VLESS URI напрямую)

Можно добавить до нескольких серверов. Суффикс _TEST — признак тестового/резервного сервера:

add list=MIHOMO key=SRV1 value="vless://uuid@host:443?encryption=none&security=reality&fp=chrome&sni=example.com&pbk=PUBLIC_KEY&sid=SHORT_ID&type=tcp&flow=xtls-rprx-vision#MyServer"
add list=MIHOMO key=SRV2 value="vless://uuid@host2:443?encryption=none&security=reality&fp=firefox&sni=example2.com&pbk=PUBLIC_KEY2&sid=SHORT_ID2&type=tcp&flow=xtls-rprx-vision#Backup"
VLESS URI удобно генерировать с помощью инструмента VLESS Конвертер на этом сайте: esit24.ru/tools/vlessgen/

3.3 URL-подписки (Clash-совместимые)

Подписки позволяют автоматически обновлять список серверов:

add list=MIHOMO key=SUB1 value="https://your-subscription-url/sub?token=xxx"
add list=MIHOMO key=SUB2 value="https://free-proxy-sub.example.com/clash"

3.4 Уровень логирования

add list=MIHOMO key=LOG_LEVEL value="error"

Допустимые значения: silent, error, warning, info, debug. Для продакшена рекомендуется error.

3.5 Секрет веб-интерфейса

add list=MIHOMO key=UI_SECRET value="yourStrongPassword123"

3.6 URL для загрузки веб-панели

Образ поддерживает установку веб-панели управления Zashboard прямо из образа:

# Оптимизированная версия (1.4 МБ, рекомендуется для MikroTik)
add list=MIHOMO key=EXTERNAL_UI_URL value="https://github.com/Zephyruso/zashboard/releases/latest/download/dist-cdn-fonts.zip"

# Полная версия (7.8 МБ)
# add list=MIHOMO key=EXTERNAL_UI_URL value="https://github.com/Zephyruso/zashboard/releases/latest/download/dist.zip"

Шаг 4 — Точки монтирования (опционально)

Монтирование позволяет хранить конфигурацию Mihomo на постоянном носителе и редактировать её независимо от контейнера.

4.1 Основная директория конфигурации

/container/mounts add dst=/etc/mihomo name=MIHOMO_MIKROTIK src=/usb1/docker_configs/mihomo_mikrotik

4.2 Директория для конфигов AmneziaWG (если используется)

/container/mounts add dst=/etc/mihomo/awg name=MIHOMO_AWG src=/usb1/docker_configs/mihomo_mikrotik/awg
Конфиг-файлы должны использовать окончания строк LF (Unix), а не CRLF (Windows). При редактировании на Windows используйте Notepad++ или VS Code с настройкой LF.

Шаг 5 — Установка контейнера

5.1 Без монтирования

/container add   envlists=MIHOMO   interface=MIHOMO   logging=yes   remote-image=registry-1.docker.io/wiktorbgu/mihomo-mikrotik   root-dir=/usb1/docker/mihomo-mikrotik   dns=1.1.1.1,8.8.8.8,9.9.9.9

5.2 С монтированием конфигурации

/container add   envlists=MIHOMO   interface=MIHOMO   logging=yes   remote-image=registry-1.docker.io/wiktorbgu/mihomo-mikrotik   root-dir=/usb1/docker/mihomo-mikrotik   dns=1.1.1.1,8.8.8.8,9.9.9.9   mountlists=MIHOMO_MIKROTIK

5.3 С монтированием и AmneziaWG

/container add   envlists=MIHOMO   interface=MIHOMO   logging=yes   remote-image=registry-1.docker.io/wiktorbgu/mihomo-mikrotik   root-dir=/usb1/docker/mihomo-mikrotik   dns=1.1.1.1,8.8.8.8,9.9.9.9   mountlists=MIHOMO_MIKROTIK,MIHOMO_AWG
RouterOS начнёт скачивать образ (~50–100 МБ). Прогресс можно отслеживать командой /container/print. Статус изменится с extracting на stopped после завершения загрузки.

Шаг 6 — Запуск

/container/start [find where remote-image~"mihomo"]

Проверить статус:

/container/print detail

Статус должен смениться на running. Просмотр логов контейнера:

/log/print where topics~"container"

Шаг 7 — Доступ к веб-панели

После запуска контейнера веб-панель Zashboard доступна на порту 9090 по адресу контейнера:

http://192.168.254.3:9090/ui/#/setup?hostname=192.168.254.3&port=9090

При первом открытии укажите:

  • Host: 192.168.254.3
  • Port: 9090
  • Secret: значение переменной UI_SECRET

В панели доступны: список прокси-узлов, переключение между серверами, статистика трафика, просмотр логов.

Шаг 8 — Маршрутизация трафика через контейнер

Чтобы направить трафик устройств через Mihomo, настройте SOCKS5/HTTP-прокси или прозрачное проксирование. Самый простой способ — использовать смешанный порт 1080.

8.1 Разрешить доступ к порту 1080 из локальной сети

/ip/firewall/nat add chain=dstnat   dst-port=1080   protocol=tcp   in-interface=bridge   action=dst-nat   to-addresses=192.168.254.3   to-ports=1080   comment="Proxy Mihomo SOCKS5/HTTP"

8.2 Настройка прокси на устройствах

На клиентских устройствах укажите прокси:

  • Тип: SOCKS5 или HTTP
  • Адрес: IP роутера MikroTik (например, 192.168.1.1)
  • Порт: 1080

Поддержка AmneziaWG

Образ поддерживает конфигурации AmneziaWG (форк WireGuard с обфускацией). Для этого смонтируйте директорию awg и поместите туда конфиг-файл:

# Структура файлов на USB:
# /usb1/docker_configs/mihomo_mikrotik/awg/wg0.conf

Конфиг подхватывается автоматически при запуске контейнера. Имя интерфейса в Mihomo будет соответствовать имени файла без расширения.

Полезные команды

Перезапуск контейнера

/container/stop [find where remote-image~"mihomo"]
/container/start [find where remote-image~"mihomo"]

Просмотр переменных окружения

/container/envs/print where list=MIHOMO

Обновление образа

/container/stop [find where remote-image~"mihomo"]
/container/remove [find where remote-image~"mihomo"]
/container add envlists=MIHOMO interface=MIHOMO logging=yes   remote-image=registry-1.docker.io/wiktorbgu/mihomo-mikrotik   root-dir=/usb1/docker/mihomo-mikrotik dns=1.1.1.1,8.8.8.8

Устранение неполадок

Контейнер не запускается

  • Проверьте логи: /log/print where topics~"container"
  • Убедитесь, что на USB достаточно места
  • Проверьте, что контейнерный режим включён: /system/device-mode/print

Ошибка парсинга конфигурации

Mihomo указывает номер строки с проблемой:

Parse config error: yaml: line 83: could not find expected ':'

Откройте конфиг-файл и проверьте отступы YAML на указанной строке. Все отступы должны быть пробелами, а не табами.

Нет доступа к веб-панели

  • Убедитесь, что контейнер в статусе running
  • Проверьте, что переменная EXTERNAL_UI_URL указана корректно
  • Попробуйте открыть http://192.168.254.3:9090/ напрямую

Ссылки