Что такое 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-Docker ← veth 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/напрямую
Ссылки
- Docker Hub: wiktorbgu/mihomo-mikrotik
- GitHub образа: wiktorbgu/mihomo-mikrotik
- Шаблоны конфигурации: mihomo-templates
- Документация Mihomo: wiki.metacubex.one
- Telegram-сообщество: @it_network_people