Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Контейнер "Traefik" (на RB5009)

    Контейнер "Traefik" (на RB5009)

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Контейнер "Traefik" (на RB5009), RouterOS
     
    jvanhambelgium
    Guest
    #1
    0
    09.04.2023 09:26:00
    Кто-нибудь здесь реально использует контейнер типа «Traefik» (работающий в качестве реверс-прокси)? Я импортировал его и могу запустить, но, например, панель управления не работает. И что насчёт его конфигурационного файла «traefik.yml»? Я зашёл внутрь контейнера, но не могу найти никакой конфигурации... ещё и с логированием, похоже, полный ноль... https://hub.docker.com/_/traefik
     
     
     
    DyadyaGenya
    Guest
    #2
    0
    23.01.2025 01:16:00
    Я только начинаю осваивать Traefik. Благодаря твоим советам, я тоже установил его на свой Mikrotik. Пока не всё понял, но первое, что меня напрягает — не могу настроить контейнер/Mikrotik так, чтобы иметь доступ к веб-интерфейсу Traefik на порту 80. Сейчас доступ возможен только через 8080, а это не очень удобно. Пока что Traefik нужен мне только в локалке для экспериментов. И даже если понадобится для более серьёзных задач, вряд ли захочу разделять доступ по порту 8080. В чём может быть проблема — в правилах NAT или в настройках traefik.yaml? Сейчас у меня минимальная конфигурация traefik.yaml с логом:  
    level: DEBUG

    api:  
     dashboard: true  
     insecure: true

    entryPoints:  
     web:  
       address: ":80"  
     websecure:  
       address: ":443"  
     traefik:  
       address: ":8080"

    providers:  
     file:  
       directory: "/etc/traefik"  
       watch: true
     
     
     
    DyadyaGenya
    Guest
    #3
    0
    24.01.2025 11:54:00
    Почти разобрался. Чтобы напрямую зайти на панель управления, нам нужно вот что:

    api:  
     dashboard: true  
     insecure: true  

    entryPoints:  
     traefik:  
       address: ":80"  

    Нужна чёткая привязка entry point с именем «traefik». Но мне бы хотелось ещё настроить авторизацию и другие приятные штуки. Если я правильно понял, то маршруты надо прописывать в каталоге «/etc/traefik». Что-то вроде этого:

    # DYNAMIC CONFIG (dashboard.yaml)  
    http:  
     routers:  
       traefik-dashboard:  
         rule: "Host(`traefik.local`)"  
         service: api@internal  
         entryPoints:  
           - "web"  

    А в traefik.yaml указать следующее:  

    providers:  
     file:  
       directory: /etc/traefik  
       watch: true  

    Но у меня это не работает. Хотя я зарегистрировал имя в своём локальном DNS — оно пингуется. Но зайти по имени или адресу не могу.
     
     
     
    Amm0
    Guest
    #4
    0
    21.09.2023 01:17:00
    Не знаю, кому это поможет, но мне удалось запустить Traefik на RB1100 (который на самом деле ARM32) с использованием этого образа: https://hub.docker.com/_/traefik. Удалось настроить его как CORS-прокси для RouterOS (похоже на NGNIX, который у меня был, только Traefik кажется «более современным» и гибким).

    Хотя Traefik запускается легко, его UI показывает только статус, а не конфигурацию, поэтому чтобы что-то сделать — нужно загрузить «статическую конфигурацию» (по терминологии Traefik). Эту конфигурацию можно передать через traefik.yaml файл в /container/mount, через опцию «cmd» или через переменные окружения.

    Но чтобы реально что-то полезное сделать, придётся либо кучу переменных окружения задать, либо один очень длинный и непросматриваемый cmd в конфигурации контейнера. Подход с переменными окружения полезен, если хотите управлять конфигурацией прямо внутри RouterOS без ПК и вообще без монтирования (см. https://doc.traefik.io/traefik/reference/static-configuration/env/). Можно ещё создать новый образ на базе traefik, просто включив в него traefik.yaml.

    Ниже я объясню способ с монтированием. Чтобы создать контейнер с конфигурацией (подправьте по необходимости):

    :global rootdisk "raid1-part1"
    /interface/veth/add name=veth-traefik address=172.18.18.18/24 gateway=172.18.18.1
    /ip/address/add interface=veth-traefik address=172.18.18.1/24
    /container add interface=veth-traefik logging=yes mounts=TRAEFIK_ETC root-dir="$rootdisk/traefik-etc"
    /container add root-dir="$rootdisk/traefik-root" remote-image=library/traefik:v2.10 logging=yes interface=veth-traefik mounts=TRAEFIK_ETC
    /container start

    Теперь, чтобы использовать контейнер, нужна конфигурация. Ваши настройки могут отличаться, но в моём примере всё, что приходит, перенаправляется на веб-серверы Mikrotik с добавлением ACME Let’s Encrypt и CORS-заголовков, а также с редиректом с HTTP на HTTPS. Эта часть зависит от вас, так как правила файрвола сильно различаются.

    Но вот пример конфигурации, которая перенаправляет все входящие запросы на порты 80/443 к веб-серверу Traefik, который потом проксирует их на webfig, REST и прочее Mikrotik:

    /ip firewall nat add comment="Порт 80 LAN на прокси Traefik" action=dst-nat chain=dstnat dst-port=8080 protocol=tcp src-address-list=LAN to-addresses=172.18.18.18 to-ports=8080
    /ip firewall nat add comment="Все (кроме Traefik) порт 80 на прокси Traefik" action=dst-nat chain=dstnat dst-port=443 protocol=tcp to-addresses=172.18.18.18 from-address=!172.18.18.0/24 to-ports=443
    /ip firewall nat add comment="Все (кроме Traefik) порт 443 на прокси Traefik" action=dst-nat chain=dstnat dst-port=80 protocol=tcp to-addresses=172.18.18.18 from-address=!172.18.18.0/24 to-ports=80

    Поскольку правила NAT обрабатываются первыми, перенаправить веб-трафик на Traefik довольно просто. Возможно, придётся добавить или убрать правила в /ip/firewall/filter по желанию — это просто пример.

    В конце, после редактирования конфигурации на вашем ПК, её нужно загрузить. Можно использовать мой traefik.yaml как шаблон. Главное — файл должен называться «traefik.yaml» (и быть валидным) и копироваться в примонтированную папку TRAEFIK_ETC. Можно подключить ROSE/SMB для монтирования или использовать FTP/SCP и т.п., но валидный traefik.yaml должен оказаться в монтируемой директории, которая потом отображается в /etc/traefik.

    Вот моя рабочая конфигурация, которая проксирует RouterOS по 80/443 через адрес шлюза контейнера (при этом /ip/services/http слушает порты 80/443 тоже):

    log:
     level: debug
    providers:
     file:
       directory: /etc/traefik
       watch: true
    api:
     insecure: true
    entryPoints:
     web:
       address: ":80"
     websecure:
       address: ":443"
    certificatesResolvers:
     lets-encrypt:
       acme:
         email: REPLACE_WITH_VALID_EMAIL=me@example.com
         storage: acme.json
         #caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"
         httpChallenge:
           entryPoint: web
    serversTransport:
     insecureSkipVerify: true
    http:
     routers:
       bigdude-redirect-http:
         rule: "Host(`REPLACE_ME_WITH_IP_CLOUD_NAME_OR_YOUR_OWN=snXXXXXXX.mynetname.net`)"
         service: routeros-web
         entryPoints:
           - web
         middlewares:
           - redirect-https
       bigdude-https:
         rule: "Host(`REPLACE_ME_WITH_SAME_AS_ABOVE`)"
         service: routeros-web
         entryPoints:
           - websecure
         middlewares:
           - cors-routeros
         tls:
           certResolver: "lets-encrypt"
     services:
       routeros-web:
         loadBalancer:
           passHostHeader: false
           servers:
             - url: "http://172.18.18.1"
     middlewares:
       redirect-https:
         redirectScheme:
           scheme: https
           permanent: true
       cors-routeros:
         headers:
           accessControlAllowCredentials: true
           accessControlAllowMethods:
             - GET
             - OPTIONS
             - PUT
             - POST
             - PATCH
             - DELETE
           accessControlAllowHeaders: "*"
           accessControlAllowOriginList:
             - https://localhost:3000
             - https://REPLACE_ME_WITH_SAME_AS_ABOVE=snXXXXXX.mynetname.net
           accessControlMaxAge: 100
           addVaryHeader: true

    Обратите внимание на места с REPLACE — их нужно заменить. В документации Traefik есть больше примеров — выше использован конфиг в формате «File (YAML)», как описано здесь: https://doc.traefik.io/traefik/getting-started/concepts/.

    Ещё учтите, что сертификаты Let’s Encrypt проверяются/создаются только при старте, поэтому после загрузки конфигурации сервис надо остановить и запустить заново. Все остальные изменения в traefik.yaml происходят в реальном времени благодаря включённому «file provider» и опции watch: true.

    В общем, мне конфигурация Traefik понравилась больше, чем у NGINX. Насчёт производительности и стабильности ничего сказать не могу — пока это просто эксперимент. HAProxy всё ещё кажется лучшим вариантом для серьёзных задач, но Traefik выглядит более подходящим для контейнера под Mikrotik.
     
     
     
    Amm0
    Guest
    #5
    0
    30.05.2024 04:45:00
    Если хотите получить красиво отформатированные цветные логи из контейнера Traefik, помогает такая сложная команда:  
    /log print proplist=message as-value where topics~"container" [:if ($message~"(ERR|INF|DBG|WRN)") do={:put [:pick "$message\1B[0K" 25 999]}]
    Можно добавить «follow-only» после «print», чтобы смотреть логи в режиме tail во время работы.  

    Это даст вот такой результат:  
     

    Вместо вот такого:  
     

    Чтобы избавиться от ANSI-цветов (что иногда удобно), если используете /container/env для статической конфигурации, добавьте  
    /container/env add key=TRAEFIK_LOG_NOCOLOR name=traefik-proxy value=true  
    или в статическом файле /etc/traefik/traefik.yaml пропишите:  
    log:  
     nocolor: true  

    А с «nocolor: true» команда для tail немного меняется (поскольку убирается временная метка, и так как нет ANSI-кодов, нужно, чтобы :pick начинал с позиции «20»):  
    /log print proplist=message as-value follow-only where topics~"container" [:if ($message~"(ERR|INF|DBG|WRN)") do={:put [:pick "$message" 20 999]}]
     
     
     
    rskmikc
    Guest
    #6
    0
    18.06.2024 12:19:00
    @propio3r Доброе утро! Подскажите, пожалуйста, как вы устанавливали контейнер nproxy manager? У меня роутеры версии 7.15, и я бы хотел его поставить, но нигде не могу найти инструкций. Заранее огромное спасибо!
     
     
     
    own3r1138
    Guest
    #7
    0
    19.06.2024 06:51:00
    Всё, что нужно, есть в этих трёх ссылках.  
    https://help.mikrotik.com/docs/display/ROS/Container  
    https://hub.docker.com/r/jc21/nginx-proxy-manager  
    https://nginxproxymanager.com/guide/#quick-setup
     
     
     
    Lokamaya
    Guest
    #8
    0
    28.10.2024 09:26:00
    Обязательно нужно это попробовать. Спасибо, Amm0!
     
     
     
    Amm0
    Guest
    #9
    0
    28.10.2024 20:51:00
    Да, это точно работает на RB1100AHx4 и RB5009. Я использую это для CORS и автоматического обновления сертификатов Let's Encrypt. Надо бы написать пост про Traefik, ведь я им пользуюсь...

    Но для справки — можно использовать /container/env, чтобы задать некоторые «статические настройки конфигурации» Traefik. Это особенно полезно, если у вас динамическая конфигурация не из файла, но иногда работать с переменными окружения в контейнерах RouterOS проще, чем возиться с файлами: http://forum.mikrotik.com/t/project-mikrotik-proxy-manager/179387/1

    Если вы используете «file» как «провайдер конфигурации», как показано выше, то можно задать и «статические» настройки (например, порт), и «динамические» (URL, которые проксируются) в одном месте. Либо можно комбинировать: переменные окружения для «статической» конфигурации и файл — для «динамической». Traefik достаточно гибкий в настройках, что иногда делает первоначальную конфигурацию немного сложной.

    Веб-страница на порту :8080 позволит видеть все изменения конфигурации — очень удобно.

    Также, по крайней мере один способ настройки фаервола для Traefik описан здесь: http://forum.mikrotik.com/t/traefik-reverse-proxy/177309/1
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры