Skip to content

Instantly share code, notes, and snippets.

@nskforward
Last active June 17, 2026 09:48
Show Gist options
  • Select an option

  • Save nskforward/d143f4adde26ddf92001b0a84bc4de19 to your computer and use it in GitHub Desktop.

Select an option

Save nskforward/d143f4adde26ddf92001b0a84bc4de19 to your computer and use it in GitHub Desktop.
Настройка VPN-туннеля VLESS на роутере MikroTik

Настройка VPN (VLESS + Reality) на роутере Mikrotik

Обновление от 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

Настройка файрвола

Обратите особое внимание, что очередность правил в файрволле критически важна!

Выборочная маршрутизация по списку доменов

Если вы хотите пустить через VPN только часть трафика (по списку доменов), то необходимо прописать правила ниже:

/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

Сам список доменов для некоторых популярных сервисов приведен в конце инструкции.

Весь трафик через VPN

Инструкция подразумевает, что ваша домашняя сеть имеет адрес 192.168.88.0/24. Иначе замените в правилах ниже адрес сети на ваш.

Если вы хотите пуситить весь трафик через VPN, то нужно прописать правила ниже:

/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 src-address=192.168.88.0/24 dst-address=!192.168.88.0/24 connection-mark=no-mark routing-mark=!to_vpn_table 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

Если вам нужно пустить трафик через VPN только с одного конкретного домашнего IP, то в поле src-address правила mark-connection указываем не всю домашнюю сеть 192.168.88.0/24, а конкретный IP - например, 192.168.88.123/32. При этом IP-адрес этого устройства нужно сделать статичтным, чтобы адрес не менялся после истечения аренды (таблица /ip arp - через WinBox выделяем в таблице нужное устройство - жмём make static).

Создание контейнера

Если у вас есть 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://..."

Если у вас ещё нет своего VPN-сервера, то вы можете его развернуть самостоятельно по инструкции: https://gist.github.com/nskforward/b4ee345cf825bd38e1642c4d753648be

Создаём и запускаем контейнер:

/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=

Панель Mihomo не нужна вам при стандартной работе, если вдруг она не открывается. Она сильно пригодится вам, если вы хотите переключаться между разными VPN серверами внутри одного туннеля. Некоторые проблемы по Mihomo панеле обсуждены в комментариях.

Возможные проблемы

Проверяйте vless ссылку до использования в Mikrotik

Всегда проверяйте ваши vless://... ссылки на работоспособность до вставки в Mikrotik. Так вы себе сэкономите кучу времени прежде чем вы найдёте причину, почему у вас ничего не работает. В частности, много различных мобильных приложений (VPN-клиентов), где можно сразу проверить ссылку не только на валидность, но и на работоспособность.

Что тут может пойти не так?

  • криво скопирована ссылка vless
  • скопирована ссылка и вставлена в какой-то промежуточный редактор с левой кодировкой
  • после копирования ссылки меняются параметры на VPN-сервере, меняющие саму ссылку
  • VPN-сервер, откуда вы получили vless ссылку уже заблокирован цензором
  • Выбраны "плохие" параметры настройки VPN-сервера, по которым цензор умеет блокировать трафик автоматически

Настройка DNS

Без DNS-over-HTTPS (DOH) примерно половина запрещенных ресурсов не будет открываться, даже с настроенным VPN. Так как маршрутизация работает по IP, но чтобы получить IP домена, нужно сперва сходить к DNS серверу (читайте азы про работу интернета). По-умолчанию, используется DNS-сервер провайдера, который цензурирует все DNS-запросы, проходящие через него.

К примеру, вы в браузере открываете ресурс "https://instagram.com", браузер отправляется запрос на трансляцию домена instagram.com в IP адрес. DNS-запрос каскадно доходит до DNS-сервера провайдера (если ранее где-то не закешировано локально), в этом месте происходит цензура и вам в ответ возвращается фейковый IP-адрес, который ведёт на ресурс, вроде такого: "Извините, ресурс заблокирован на территории РФ". Более того, DNS провайдера может перхватывать незашифрованные DNS-запросы к другим внешним серверам.

Чтобы решить эту проблему, в Mikrotik нужно включить DOH, тогда провайдер не сможет расшифровать DNS-запросы.

# Установка доверенных сертификатов (необходимо для 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
add type=FWD match-subdomain=yes address-list=to_vpn_list name=youtube.ru
add type=FWD match-subdomain=yes address-list=to_vpn_list name=withyoutube.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=youtubego.co.id
add type=FWD match-subdomain=yes address-list=to_vpn_list name=youtubego.co.in
add type=FWD match-subdomain=yes address-list=to_vpn_list name=youtubego.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=youtubemobilesupport.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=1e100.net

WhatsApp

/ip dns static
add type=FWD match-subdomain=yes address-list=to_vpn_list name=whatsapp.net
add type=FWD match-subdomain=yes address-list=to_vpn_list name=whatsapp.com

ChatGPT

/ip dns static
add type=FWD match-subdomain=yes address-list=to_vpn_list name=openai.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=chatgpt.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=oaiusercontent.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=oaistatic.com

JetBrains

/ip dns static
add type=FWD match-subdomain=yes address-list=to_vpn_list name=jetbrains.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=jetbrains.ai

PornHub

/ip dns static
add type=FWD match-subdomain=yes address-list=to_vpn_list name=pornhub.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=pornhub.org
add type=FWD match-subdomain=yes address-list=to_vpn_list name=phncdn.com

Interactive Brokers

/ip dns static
add type=FWD match-subdomain=yes address-list=to_vpn_list name=interactivebrokers.com.hk
add type=FWD match-subdomain=yes address-list=to_vpn_list name=interactivebrokers.com
add type=FWD match-subdomain=yes address-list=to_vpn_list name=interactivebrokers.ie
add type=FWD match-subdomain=yes address-list=to_vpn_list name=au10tixservices.com

Telegram

(обновление от 15.03.2026)

Telegram особый сервис, относительно всех остальных - мобильные и десктоп клиенты не используют системный DNS для определения IP адреса узла назначения. Это особенность работы Telegram. Он получает IP адреса через какие-то внутренние механизмы работы, которые не раскрываются. Это значит, что добавление статичных DNS записей на роутере Mikrotik для туннелирования трафика к этим ресурсам бесполезно.

Но есть хорошие новости - Telegram публикует подсети своих IP адресов по адресу: https://core.telegram.org/resources/cidr.txt

Нам нужно просто загнать актуальный список напрямую в Address List. Обратите внимание, что подсети время от времени обновляются - за актуальнсотью списка нужно следить вручную или автоматизировать обновление через скрипт внутри Mikrotik. Если взять текущие подсети (на момент написания инструкции), то команды роутера Mikrotik будут выглядеть так:

/ip firewall address-list
add list=to_vpn_list comment=telegram address=91.108.56.0/22 
add list=to_vpn_list comment=telegram address=91.108.4.0/22 
add list=to_vpn_list comment=telegram address=91.108.8.0/22
add list=to_vpn_list comment=telegram address=91.108.16.0/22
add list=to_vpn_list comment=telegram address=91.108.12.0/22
add list=to_vpn_list comment=telegram address=149.154.160.0/20
add list=to_vpn_list comment=telegram address=91.105.192.0/23
add list=to_vpn_list comment=telegram address=91.108.20.0/22
add list=to_vpn_list comment=telegram address=185.76.151.0/24

Бэкап

/system backup save name=usb1/backup/with_vpn.backup
@voknevel

Copy link
Copy Markdown

Из главного офиса, где АД контроллер всё работает.
Из филиалов не работает.
В панеле 3X-UI переодически поднимается соединение (оно поднимается только когда трафик через ВПН пошёл), а в Микротике в логах контейнера иногда пишется, что какой-то комп ломится в ВПН. Например, у Инстагарма прогрузился только логотип и всё.

Куда смотреть?

@rfedor2

rfedor2 commented Apr 14, 2026

Copy link
Copy Markdown

Подскажите пожалуйста, как сделать так же - но наоборот? Т.е. трафик России ( geoip:ru и geosite:category-gov-ru и regexp:.*.ru) пускать напрямую, а весь остальной пускать через vless? Есть некоторые сайты, которые криво открываются, тк часть сайта лежит в другом месте - например newegg

Так куда проще. Создайте правила фаервола для IP адресов по Geo-IP и пускайте напрямую, Все остальное в vless. За 3 минуты можно сделать скрипт на баше, для формирования файла для geo-ip.

#!/bin/bash

OUTPUT_FILE="IP-Zone.rsc"
LIST_NAME="IP-Russia"
COUNTRIES="ru cn kr tw sg hk"

mkdir -p /tmp/geoblock

for country in $COUNTRIES; do
    wget -q -O "/tmp/geoblock/${country}.zone" \
        "https://www.ipdeny.com/ipblocks/data/countries/${country}.zone"
done

cat > "$OUTPUT_FILE" << EOF
/ip firewall address-list
remove [/ip firewall address-list find list="${LIST_NAME}"]
add list="${LIST_NAME}" comment="GeoIP List - ${LIST_NAME}"

EOF

for country in $COUNTRIES; do
    if [ -f "/tmp/geoblock/${country}.zone" ]; then
        echo "# Страна: ${country}" >> "$OUTPUT_FILE"
        while read -r network; do
            echo "add address=${network} comment=\"GeoIP-${country}\" list=\"${LIST_NAME}\"" >> "$OUTPUT_FILE"
        done < "/tmp/geoblock/${country}.zone"
        echo "" >> "$OUTPUT_FILE"
    fi
done

rm -rf /tmp/geoblock

echo "Файл $OUTPUT_FILE создан"

Если заморочится, то можно дергать данные из BD RIPE, что наверное даже лучше.

в чем может быть причина? запускаю скрипт, выдает ошибку expected command name (line 3 column 1)

@NikB-HQ

NikB-HQ commented Apr 15, 2026

Copy link
Copy Markdown

Подскажите пожалуйста, как сделать так же - но наоборот? Т.е. трафик России ( geoip:ru и geosite:category-gov-ru и regexp:.*.ru) пускать напрямую, а весь остальной пускать через vless? Есть некоторые сайты, которые криво открываются, тк часть сайта лежит в другом месте - например newegg

Так куда проще. Создайте правила фаервола для IP адресов по Geo-IP и пускайте напрямую, Все остальное в vless. За 3 минуты можно сделать скрипт на баше, для формирования файла для geo-ip.

#!/bin/bash

OUTPUT_FILE="IP-Zone.rsc"
LIST_NAME="IP-Russia"
COUNTRIES="ru cn kr tw sg hk"

mkdir -p /tmp/geoblock

for country in $COUNTRIES; do
    wget -q -O "/tmp/geoblock/${country}.zone" \
        "https://www.ipdeny.com/ipblocks/data/countries/${country}.zone"
done

cat > "$OUTPUT_FILE" << EOF
/ip firewall address-list
remove [/ip firewall address-list find list="${LIST_NAME}"]
add list="${LIST_NAME}" comment="GeoIP List - ${LIST_NAME}"

EOF

for country in $COUNTRIES; do
    if [ -f "/tmp/geoblock/${country}.zone" ]; then
        echo "# Страна: ${country}" >> "$OUTPUT_FILE"
        while read -r network; do
            echo "add address=${network} comment=\"GeoIP-${country}\" list=\"${LIST_NAME}\"" >> "$OUTPUT_FILE"
        done < "/tmp/geoblock/${country}.zone"
        echo "" >> "$OUTPUT_FILE"
    fi
done

rm -rf /tmp/geoblock

echo "Файл $OUTPUT_FILE создан"

Если заморочится, то можно дергать данные из BD RIPE, что наверное даже лучше.

в чем может быть причина? запускаю скрипт, выдает ошибку expected command name (line 3 column 1)

Не хватает полномочий, что бы создать /tmp/geoblock
Или поменяйте место, допустим в /home/ , только везде, либо запускайте из под того пользователя, у которого достаточно привелегий.
sudo
Или
su-
Поможет.
Скрипт на баше, самый простой.
Тут нечему ломаться.

@rfedor2

rfedor2 commented Apr 18, 2026

Copy link
Copy Markdown

Подскажите пожалуйста, как сделать так же - но наоборот? Т.е. трафик России ( geoip:ru и geosite:category-gov-ru и regexp:.*.ru) пускать напрямую, а весь остальной пускать через vless? Есть некоторые сайты, которые криво открываются, тк часть сайта лежит в другом месте - например newegg

Так куда проще. Создайте правила фаервола для IP адресов по Geo-IP и пускайте напрямую, Все остальное в vless. За 3 минуты можно сделать скрипт на баше, для формирования файла для geo-ip.

#!/bin/bash

OUTPUT_FILE="IP-Zone.rsc"
LIST_NAME="IP-Russia"
COUNTRIES="ru cn kr tw sg hk"

mkdir -p /tmp/geoblock

for country in $COUNTRIES; do
    wget -q -O "/tmp/geoblock/${country}.zone" \
        "https://www.ipdeny.com/ipblocks/data/countries/${country}.zone"
done

cat > "$OUTPUT_FILE" << EOF
/ip firewall address-list
remove [/ip firewall address-list find list="${LIST_NAME}"]
add list="${LIST_NAME}" comment="GeoIP List - ${LIST_NAME}"

EOF

for country in $COUNTRIES; do
    if [ -f "/tmp/geoblock/${country}.zone" ]; then
        echo "# Страна: ${country}" >> "$OUTPUT_FILE"
        while read -r network; do
            echo "add address=${network} comment=\"GeoIP-${country}\" list=\"${LIST_NAME}\"" >> "$OUTPUT_FILE"
        done < "/tmp/geoblock/${country}.zone"
        echo "" >> "$OUTPUT_FILE"
    fi
done

rm -rf /tmp/geoblock

echo "Файл $OUTPUT_FILE создан"

Если заморочится, то можно дергать данные из BD RIPE, что наверное даже лучше.

в чем может быть причина? запускаю скрипт, выдает ошибку expected command name (line 3 column 1)

Не хватает полномочий, что бы создать /tmp/geoblock Или поменяйте место, допустим в /home/ , только везде, либо запускайте из под того пользователя, у которого достаточно привелегий. sudo Или su- Поможет. Скрипт на баше, самый простой. Тут нечему ломаться.

В микротик такой скрипт млжно завернуть или только через vps?

@voknevel

voknevel commented Apr 21, 2026

Copy link
Copy Markdown

Зависает на создании контейнера и потом уходит в ошибку
Mik_err1

@NikB-HQ

NikB-HQ commented Apr 21, 2026

Copy link
Copy Markdown

Подскажите пожалуйста, как сделать так же - но наоборот? Т.е. трафик России ( geoip:ru и geosite:category-gov-ru и regexp:.*.ru) пускать напрямую, а весь остальной пускать через vless? Есть некоторые сайты, которые криво открываются, тк часть сайта лежит в другом месте - например newegg

Так куда проще. Создайте правила фаервола для IP адресов по Geo-IP и пускайте напрямую, Все остальное в vless. За 3 минуты можно сделать скрипт на баше, для формирования файла для geo-ip.

#!/bin/bash

OUTPUT_FILE="IP-Zone.rsc"
LIST_NAME="IP-Russia"
COUNTRIES="ru cn kr tw sg hk"

mkdir -p /tmp/geoblock

for country in $COUNTRIES; do
    wget -q -O "/tmp/geoblock/${country}.zone" \
        "https://www.ipdeny.com/ipblocks/data/countries/${country}.zone"
done

cat > "$OUTPUT_FILE" << EOF
/ip firewall address-list
remove [/ip firewall address-list find list="${LIST_NAME}"]
add list="${LIST_NAME}" comment="GeoIP List - ${LIST_NAME}"

EOF

for country in $COUNTRIES; do
    if [ -f "/tmp/geoblock/${country}.zone" ]; then
        echo "# Страна: ${country}" >> "$OUTPUT_FILE"
        while read -r network; do
            echo "add address=${network} comment=\"GeoIP-${country}\" list=\"${LIST_NAME}\"" >> "$OUTPUT_FILE"
        done < "/tmp/geoblock/${country}.zone"
        echo "" >> "$OUTPUT_FILE"
    fi
done

rm -rf /tmp/geoblock

echo "Файл $OUTPUT_FILE создан"

Если заморочится, то можно дергать данные из BD RIPE, что наверное даже лучше.

в чем может быть причина? запускаю скрипт, выдает ошибку expected command name (line 3 column 1)

Не хватает полномочий, что бы создать /tmp/geoblock Или поменяйте место, допустим в /home/ , только везде, либо запускайте из под того пользователя, у которого достаточно привелегий. sudo Или su- Поможет. Скрипт на баше, самый простой. Тут нечему ломаться.

В микротик такой скрипт млжно завернуть или только через vps?

Это баш скрипт, который создает адрес лист.
У микротика свои скрипты
https://help.mikrotik.com/docs/spaces/ROS/pages/47579229/Scripting

Можно адаптировать, но зачем?
Суть в том, что ipv4 сети уже давно розданы. Даже лиры не отдают PI адреса (не путаем с IP).
Выгрузка работает, изменяется крайне редко.
Теоритически нужно делать перекрестную проверку на соответствие AS и IP по странам.
Так как велика вероятность, что туда попадут префиксы других стран и теоритически можно получить доступ на input.
Это влечет за собой кое какие издержки.

Если делать проверку, то возможно схватить бан на 3 дня для Ip с которого вы будете делать такое количество запросов.
Либо получить API ключ с BD RIPE, что бы можно было проверить корректность GEOIP.
По этому тут такой простой скрипт.
Что касается микротика, в общем на микротике не нужнен этот скрипт.!
Запустите текущий в виртуалке и получите готовый адлес лист.

То, что касается VPS, вы должны понимать, что использование GEOIP на нем КРАЙНЕ!!! РЕКОМЕНДУЕТСЯ!.
Но использовать нужно другие инструменты. Например IpSet. Навешиваете листы. Фаерволом разрешаете необходимые сети, все остальное DROP. fail2ban так же нужен.
В идеале на ваш vps должны попадать сети вашего провайдера, ОПСОСОВ к которым вы подключаетесь и все.
Все остальное DROP.
Долше жить будет.
Иначе ваш слабенький VPS умрет от банального сканирование портов nmap'ом

@prosk8ership

Copy link
Copy Markdown

у вас это 192.168.89.1 адрес самого микротика ?

@liked477

liked477 commented May 17, 2026

Copy link
Copy Markdown
> Пробросил файл конфига, чтобы заработала Geo маршрутизация Mihomo. И изменил маршрутизацию через VPN для клиентов домашней сети. Всё работает: ru сервисы открываются без ошибок и предупреждений......

Вот это ты дал, теперь это бы всё переварить и понять будет ли это всё работать на 7.22.3 (stable)

@liked477

Copy link
Copy Markdown
Вот это ты дал, теперь это бы всё переварить и понять будет ли это всё работать на 7.22.3 (stable)

Делал на 7.22.2.

Супер, попробую настроить и проверить, спасибо за инфу и труды. будем тестить

@liked477

Copy link
Copy Markdown
Вот это ты дал, теперь это бы всё переварить и понять будет ли это всё работать на 7.22.3 (stable)

Делал на 7.22.2.

я бы ещё понял что ты делал именно, ты кратко описал, я понял, что конфиг ты залил на флешку, фаил конфига myconfig.yaml я не понял откуда взял или ниже его содержимое написано, так же не понял откуда взята сеть http://192.168.90.2:9090/proxies/SELECTOR/delay?ur
тебе бы видео записать настройка с нуля что ли :) я честно новичёк по настройки миротика, половина команд не понимаю что делают. но хотелось бы

@liked477

Copy link
Copy Markdown

8fm7
Проведи курс для чайников :) я на сколько понял ты модернизировал то что выложено в шапке с частичным выпиливанием мангел правила

@rfedor2

rfedor2 commented May 20, 2026

Copy link
Copy Markdown

Подскажите в чем может быть причина. Ставлю на пустой роутер hap ax2 (до этого все работало, обновил и сбросил конфиг). при распаковке контейнера пишет что не достаточно места, хотя занято 37 мб из 128мб.

@anokhinigorsergeich-eng

Copy link
Copy Markdown

Gemini упорно видит как то что я из РФ. При том используя подписку на мобильном или виндовом клиенте все нормально. Кто то сталкивался?

@nskforward

Copy link
Copy Markdown
Author

Gemini у меня работает со следующими правилами:

/ip dns static
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=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=antigravity.google
add type=FWD match-subdomain=yes address-list=to_vpn_list name=gemini.google
add type=FWD match-subdomain=yes address-list=to_vpn_list name=labs.google

@liked477

liked477 commented May 21, 2026

Copy link
Copy Markdown
Вот это ты дал, теперь это бы всё переварить и понять будет ли это всё работать на 7.22.3 (stable)

Делал на 7.22.2.

@8fm7
Очень нужна твоя помощь, подскажи как в твоей настройке реализована строка из темы поста ---(/container envs add list=mihomo key=SRV1 value="vless://...")---
у тебя просто реализован /container envs add list=MIHOMO key=CONFIG value=myconfig.yaml
но в myconfig.yaml я не нашёл value="vless://..."

Так же в этой команде /container mounts add name=mihomo-config src=/usb1-part5/config-mihomo/myconfig.yaml dst=/etc/mihomo/myconfig.yaml
но у меня жалуется что! name= нет такого параметра, есть comment=, но! так же он просит вести строку list=

на сколько я понял это просто название списка и так как у меня нету флешки я заливаю всё на сам микротик у меня данная команда должны выглядеть так - /container mounts add comment=mihomo-config list=mihomo-config src=/myconfig.yaml dst=/etc/mihomo/myconfig.yaml

@liked477

liked477 commented May 21, 2026

Copy link
Copy Markdown

@8fm7

Спасибо тебе за информацию буду пробовать сейчас, а то мне не совсем понятно было твоя инструкция как отдельно от темы шла, или как дополнение я так же понял что правила mangel нужно или тушить, или удалить, иначе по спискам не будет работать.
/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

Отключить Выборочная маршрутизация по списку доменов, чтоб можно было использовать сети в список VPN_CLIENTS:

уже не пойму это
time="2026-05-21T12:04:50.845333279+03:00" level=error msg="can't initial GeoIP: can't download GeoIP.dat: Get "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat\": dns resolve failed: couldn't find ip"
и
time="2026-05-21T12:09:55.303131999+03:00" level=fatal msg="Parse config error: rules[0] [GEOIP,PRIVATE,DIRECT] error: can't download GeoIP.dat: Get "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat\": dns resolve failed: couldn't find ip"

При этом если через браузер открывать, то я могу скачать эти файлы на пк
geox-url:
geoip: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat"
geosite: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat"
mmdb: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/country.mmdb"

@liked477

liked477 commented May 22, 2026

Copy link
Copy Markdown

Возник вопрос в ошибке, почему он обращается к
"https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat\": dns resolve failed: couldn't find ip"
хотя в доке написано
geoip: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat"
откуда он берёт \ этот знак

@liked477

Copy link
Copy Markdown

решил проблемы, была в настройках ip/firewall/raw/
Правила дроп пакетов. отключил все и получилось скачать скрипту эти 3 файла

@IlyaSAR1989

Copy link
Copy Markdown

Добрый день. Устанавливаю в память роутера, свободно 84 из 128MiB. HapAX2. Выходит ошибка "download/extract error:no space to extract layer 4/5% 15.9M. В чем может быть проблема?

@IlyaSAR1989

Copy link
Copy Markdown

Добрый день. Устанавливаю в память роутера, свободно 84 из 128MiB. HapAX2. Выходит ошибка "download/extract error:no space to extract layer 4/5% 15.9M. В чем может быть проблема?

*** rename -> /flash/rw/disk/docker failed: No such file or directory
*** error: download/extract error: no space to extract layer

@liked477

liked477 commented May 24, 2026

Copy link
Copy Markdown

Добрый день. Устанавливаю в память роутера, свободно 84 из 128MiB. HapAX2. Выходит ошибка "download/extract error:no space to extract layer 4/5% 15.9M. В чем может быть проблема?

*** rename -> /flash/rw/disk/docker failed: No such file or directory *** error: download/extract error: no space to extract layer

Так он же тебе пишет, нет места для извлечения файла :)))

*** error: download/extract error: no space to extract layer
*** ошибка: ошибка загрузки/извлечения: нет места для извлечени

@IlyaSAR1989

Copy link
Copy Markdown

Как же так полно видео, как ставят на hapAX2 (нет usb), а у меня траблы.

@liked477

Copy link
Copy Markdown

Как же так полно видео, как ставят на hapAX2 (нет usb), а у меня траблы.

Так может ставят когда памяти свободно больше чем у тебя?

@kiri3-localnetwork

Copy link
Copy Markdown

Добрый день. Устанавливаю в память роутера, свободно 84 из 128MiB. HapAX2. Выходит ошибка "download/extract error:no space to extract layer 4/5% 15.9M. В чем может быть проблема?

*** rename -> /flash/rw/disk/docker failed: No such file or directory *** error: download/extract error: no space to extract layer

Так поставь флешку, последние релизы mihomo оч жирные стали, мне на hap ax3 такая же проблема встретилась, решил просто взяв и вставив флешку ( накатил всё на неё )

@dp1251

dp1251 commented May 30, 2026

Copy link
Copy Markdown

спасибо большое все работает

@NikB-HQ

NikB-HQ commented Jun 1, 2026

Copy link
Copy Markdown

Если возникают проблемы на версии 7.23 не получается сделать repool , вываливается обшибка и т.д.
Переформатируйте флешку и сделайте repool еще раз. Работает на 7.23 без проблем.

@hitechpol-web

hitechpol-web commented Jun 2, 2026

Copy link
Copy Markdown

Для discord.com какие DNS кто то пробовал, а то по ip слишком много адресов.

@rfedor2

rfedor2 commented Jun 2, 2026

Copy link
Copy Markdown

Добрый день. Устанавливаю в память роутера, свободно 84 из 128MiB. HapAX2. Выходит ошибка "download/extract error:no space to extract layer 4/5% 15.9M. В чем может быть проблема?

*** rename -> /flash/rw/disk/docker failed: No such file or directory *** error: download/extract error: no space to extract layer

У кого не получается запулить контейнер на 128 Мб флешку, сделайте tmpfs диск и укажите его как tmp папку в container config
Пример:
/disk/add tmpfs-max-size=100M type=tmpfs
/container/config/set tmpdir=tmp1/

@Alevpi

Alevpi commented Jun 12, 2026

Copy link
Copy Markdown

Привет!

Выдает ошибку....

time="2026-06-12T07:41:03.882074936+03:00" level=warning msg="[TCP] dial GLOBAL (match Match/) mihomo --> github.com:443 error: dns resolve failed: couldn't find ip"
time="2026-06-12T07:41:03.882899908+03:00" level=error msg="Error downloading UI: can't download file: Get "https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip\": EOF"

Причем в браузере файл gh-pages.zip скачивается

@Alevpi

Alevpi commented Jun 12, 2026

Copy link
Copy Markdown

"Инструкция проверена на RouterOS версии 7.20"

RouterOS v7.20.6 не работает DNS over HTTPS (DoH)

В 21.4 вообще /certificate/settings> set builtin-trust-anchors=trusted expected end of command (line 1 column 5)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment