Как установить Mihomo без Docker и настроить точечную маршрутизацию трафика через MikroTik
Пошаговая инструкция по установке Mihomo без Docker на Linux и настройке MikroTik для точечной маршрутизации трафика. Разбираем policy routing, mangle rules, routing mark и интеграцию с прокси для гибкого управления сетевыми потоками.
Шаг 1. Установка и настройока Mihomo
Необходимо скачать с GitHub Mihomo распаковать архив сделать файл исполняемым и переместить в каталог исполняемых файлов. Так же сформировать config.yaml, и установить как сервис systemctl strat mihomo
Ссылка на репозиторий: https://github.com/MetaCubeX/mihomo/
# Скачиваем исполняемый файл последняя версия на 07.04.2026
sudo wget https://github.com/MetaCubeX/mihomo/releases/download/v1.19.22/mihomo-linux-amd64-compatible-v1.19.22.gz -O Mihomo.gz
# Разархивируем
sudo gunzip Mihomo.gz
# Даем права на запуск
sudo chmod +x Mihomo
# Переносим в директорию исполняемых файлов
sudo mv Mihomo /usr/local/bin/
Сформируем конфигурационный файл config.yaml помещаем по пути /etc/mihomo/:
# Создание дирреткории
mkdir -p /etc/mihomo
# Создание файла конфига поместите туда все что ниже
nano /etc/mihomo/config.yaml
#
# CONFIG.YAML
#
# REDIRECT PORT
redir-port: 7892
# TPROXY PORT
tproxy-port: 7893
#HTTP прокси порт
port: 7890
#SOCKS5 PORT
socks-port: 7891
#Разрешает подключения из локальной сети
allow-lan: true
# rule — по правилам (самый гибкий)
# global — всё через прокси
# direct — всё напрямую
mode: rule
# debug — максимум информации
# info — нормально
# warning / error — меньше логов
log-level: info
# API для управления Mihomo
# доступен с любого IP
# порт: 9090
external-controller: 0.0.0.0:9090
# Путь к веб-интерфейсу (панели управления)
external-ui: /root/.config/mihomo/ui
# Пароль для доступа к API/UI
secret: "your-password"
# Список прокси-серверов тут вы настраиваете все что вам нужно в сети информации много (здесь ваши данные VLESS, SS, и т.д)
proxies:
- name: Test
type: ss
server: 127.0.0.1
port: 12345
cipher: aes-256-gcm
password: "randompassword123"
# Группы прокси
proxy-groups:
- name: PROXY
type: select
proxies:
- Test
# Включает встроенный DNS сервер Mihomo
# redir-host — простой, быстрее
# fake-ip — продвинутый (лучше для проксирования)
dns:
enable: true
enhanced-mode: redir-host
# MATCH = весь трафик
# отправлять в группу PROXY
rules:
- MATCH,PROXYРанее мы прописали путь до Web-интерфейса который управляет API сервера нам необходимо установить его.
Ссылка на репозиторий: https://github.com/MetaCubeX/metacubexd
# Скачиваем архив с Web-интерфейсом
wget http://github.com/MetaCubeX/metacubexd/releases/download/v1.244.2/compressed-dist.tgz -O ui.tgz
# Создаём директорию (если ещё не создана) для хранения ранее описана в config.yaml
sudo mkdir -p /root/.config/mihomo/ui
# Копируем архив разархивируем и удаляем
sudo tar -xzf ui.tgz -C /root/.config/mihomo/ui && rm ui.tgzШаг 2. Настройка Mihomo как сервис
Переходим в директорию systemd:
sudo cd /etc/systemd/system/Создаем unit-файл самого Mihomo:
sudo nano mihomo.serviceИ помещаем туда этот фрагмент:
[Unit]
Description=Mihomo Daemon
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/Mihomo -f /etc/mihomo/config.yaml
Restart=always
[Install]
WantedBy=multi-user.target
Создаем зависящий mihomo-routing.service:
sudo nano mihomo-routing.service:И помещаем этот фрагмент этот сервис нужен для создания таблицы, которая будет маршрутизировать в WireGuard в Proxy таким образом будет настроен прозрачный прокси:
[Unit]
Description=Custom routing for Mihomo
After=network.target
Before=mihomo.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ip rule add fwmark 0x1 table 100
ExecStart=/sbin/ip route add local default dev lo table 100
ExecStop=/sbin/ip rule del fwmark 0x1 table 100
ExecStop=/sbin/ip route del local default dev lo table 100
[Install]
WantedBy=multi-user.target
Включаем два сервиса в автозагрузку:
systemctl enable mihomo-routing.service
systemctl enable mihomo.serviceДалее запускаем сервис переходим по адресу и порту в браузере ipvm:9090/ui
Шаг 3. Настройка WireGuard на сервере с Mihomo для подключения Mikrotik
В терминале выполним следующую команду для обновления пакетов apt:
sudo apt updateКак только все пакеты будут обновлены, начинаем загрузку собственного WireGuard. Вводим в терминал системы команду, представленную ниже:
sudo apt install wireguardКак только закончится скачивание всех файлов, переходим в главный каталог устанавливаемого ПО. Он находится по следующему адресу:
cd /etc/wireguard/Это нужно для того, чтобы дальнейшая настройка сервера, включая создание ключей и редактирование конфига, происходила именно в каталоге установленного сервиса. Здесь будут храниться все создаваемые ключи сервера и его пользователей, а также главный конфиг, которые мы будем рассматривать немного позже.
На данном этапе мы приступаем к созданию пары ключей для нашего сервера, которые будут нужны для настройки безопасного соединения. Сделать это возможно способом, представленным ниже:
wg genkey | tee /etc/wireguard/server_privatekey | wg pubkey | tee /etc/wireguard/server_publickeyДалее создаем файл wg0 кидаем конфигу подключаем его к Mikrotik если виртуальная машина в локальной сети рекомендую, наоборот, подключать Mikrotik настраивать несколько Mihomo серверов через NetWatch рулить переключения между WireGuard ключи естественно должны быть одинаковые шлюзы доступны конфигурационный файл wg как настраивать подключение на Mikrotik пропущу:
[Interface]
PrivateKey = O3hoyNESTeCMTC+UIzdt6/OiV0Tqbj4C1m79LR+RPHE=
Address = 10.10.10.1
ListenPort = 2222
[Peer]
PublicKey = YyLm6N8MNLDf5sZ/Sx6qgd0OeiyPJv+YARRpseUgCG0=
Endpoint = ip:port # Подключения к вашему Mikrotik
PersistentKeepalive = 10
AllowedIPs = 10.10.10.2/32Проверьте Ping от шлюза до шлюза если он есть значить все работает наша задача сразу же пустить весь трафик от WireGuard в proxy Mihomo (натсройка прозрачного proxy) для этого установим netfilter-persistent и сделаем пару правил iptables на виртуальной машине с Mihomo:
# Добавление правил
iptables -A PREROUTING -i wg0 -p tcp -j TPROXY --on-port 7893 --on-ip 0.0.0.0 --tproxy-mark 0x1/0xffffffff
iptables -A PREROUTING -i wg0 -p udp -j TPROXY --on-port 7893 --on-ip 0.0.0.0 --tproxy-mark 0x1/0xffffffff
# Этот пакет нужен чтобы правила iptables оставались даже после перезагрузки
sudo apt install iptables-persistent