Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • 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
    Скрипт DynDNS из Mikrotik Wiki (исправление)

    Скрипт DynDNS из Mikrotik Wiki (исправление)

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Скрипт DynDNS из Mikrotik Wiki (исправление), RouterOS
     
    candrian
    Guest
    #1
    0
    05.04.2020 10:58:00
    Всем привет, я новичок в Mikrotik. Только что купил HAP AC2 и сейчас настраиваю его. Я сделал этот роутер основным в своей домашней сети, которая подключается к интернету через PPPoE с модема провайдера. Также настроил Pi-Hole как локальный DNS.

    Пока искал скрипт для обновления DynDNS-домена, нашёл на официальной вики страницу со скриптом для этого: https://wiki.mikrotik.com/wiki/Dynamic_DNS_Update_Script_for_No-IP_DNS. Пробовал этот скрипт несколько раз, но без успеха. После некоторого поиска ошибок заметил, что сначала роутер не мог разрешить домен (http://dynupdate.no-ip.com/). Выяснилось, что нужно обязательно указать DNS IP-адрес в IP -> DNS -> Servers (возможно, это надо делать только если используешь локальный DNS, как я).

    Второе — переменная $previousIP в скрипте, похоже, на каждом запуске не сохраняла предыдущее значение. Тут заметил, что предложенных прав write, test, read оказалось недостаточно для установки глобальной переменной. Добавил политике ещё права — и теперь всё работает.

    Если $previousIP не установлена, скрипт при каждом запуске будет отправлять запрос на обновление IP серверу DynDNS, даже если IP не менялся (это заметно только по логам, для пользователя это никак не сказывается).

    Вот такие два совета, если хотите — можете добавить их на вашу официальную страницу вики.

    Спасибо, Haris
     
     
     
    tuxedo21
    Guest
    #2
    0
    20.02.2021 15:57:00
    Привет, я здесь новичок. У меня роутер с программным обеспечением RouterOS 4.86.1, и в разделе IP я не вижу функции «IP cloud». Я хотел бы использовать динамический сервис с dyndns. Может, кто-то подскажет, как вернуть эту функцию в раздел IP?
     
     
     
    Jotne
    Guest
    #3
    0
    23.02.2021 09:19:00
    Думаю, у тебя версия 6.48.1, и там должен быть Cloud. В Winbox (3.27) это выглядит примерно так:
     
     
     
    texmeshtexas
    Guest
    #4
    0
    02.03.2021 05:09:00
    Я заметил, что если я менял IP в своем аккаунте dyndns.org, этот скрипт его не исправлял. Чтобы это исправить, я внес следующие изменения: :local dyndnsForce :local previousIP [resolve $hostname] Теперь скрипт действительно сравнивает текущий IP маршрута с тем, что возвращает $hostname.
     
     
     
    imamic
    Guest
    #5
    0
    14.01.2022 07:53:00
    Привет, ребята! Спасибо за скрипт, он работает. Как скрыть учетные данные в лог-файле? Каждую минуту он отправляет имя пользователя, пароль и имя хоста в лог. Спасибо за помощь!
     
     
     
    Jotne
    Guest
    #6
    0
    14.01.2022 11:16:00
    Удалите одну или все эти строки: # вывести некоторую отладочную информацию
    :log info ("UpdateDynDNS: username = $username")
    :log info ("UpdateDynDNS: password = $password")
    :log info ("UpdateDynDNS: hostname = $hostname")
    :log info ("UpdateDynDNS: previousIP = $previousIP")
     
     
     
    imamic
    Guest
    #7
    0
    14.01.2022 12:23:00
    Отлично! Спасибо за твою бескорыстную помощь.
     
     
     
    knifehandz
    Guest
    #8
    0
    26.06.2022 08:55:00
    Только что наткнулся на это, и скрипт реально полезный! Хочу поделиться изменённой версией, которая использует новый API (с Client Update Key) и выдаёт предупреждение, если включено принудительное обновление — на случай, если кому-то интересно. Протестировано на RouterOS 7.2.3

    # Задаём нужные переменные  
    :local username "DYN_USER_NAME"  
    :local clientkey "DYN_CLIENT_KEY"  
    :local hostname "HOST_TO_UPDATE"  

    :global dyndnsForce  
    :global previousIP  

    # Получаем текущий IP-адрес из интернета (на случай, если двойной NAT)  
    /tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"  
    :delay 1  
    :local result [/file get dyndns.checkip.html contents]

    # Парсим текущий IP из результата  
    :local resultLen [:len $result]
    :local startLoc [:find $result ": " -1]
    :set startLoc ($startLoc + 2)  
    :local endLoc [:find $result "</body>" -1]
    :local currentIP [:pick $result $startLoc $endLoc]
    :log info "UpdateDynDNS: currentIP = $currentIP"  

    # Уберите # со следующей строки, чтобы принудительно обновлять каждый раз — полезно для отладки,  
    # но можно легко попасть в чёрный список DynDNS!  

    #:set dyndnsForce true  

    # Определяем, нужно ли обновлять dyndns  
    # Подробности по запросам обновления dyndns https://help.dyn.com/remote-access-api/perform-update/  
    :log info "UpdateDynDNS: previousIP = $previousIP"  
    :if ($dyndnsForce = true) do={ :log warning "UpdateDynDNS: Включено принудительное обновление" }  

    :if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={  
    :set dyndnsForce false  
    :set previousIP $currentIP  

    /tool fetch mode=https \  
    url="https://$username:$clientkey@members.dyndns.org/v3/update?hostname=$hostname&myip=$currentIP" \  
    dst-path="/dyndns.txt"  

    :delay 1  
    :local result [/file get dyndns.txt contents]
    :log info ("UpdateDynDNS: Нужно обновить Dyndns")  
    :log info ("UpdateDynDNS: Результат обновления Dyndns: ".$result)  
    :put ("Результат обновления Dyndns: ".$result)  
    } else={  
    :log info ("UpdateDynDNS: Обновление Dyndns не требуется")  
    }
     
     
     
    imamic
    Guest
    #9
    0
    23.11.2023 09:09:00
    Привет всем! У меня возникла проблема с роутером MikroTik после обновления прошивки до версии 7.12.1 пару дней назад. Я использую последний скрипт с ключом клиента DNS, и с момента обновления DynDNS перестал правильно обновляться. Самое странное, что роутер показывает успешное обновление с новым IP, но на сайте DynDNS этот IP не присваивается. Я уже пробовал сгенерировать новый ключ, но, к сожалению, это не помогло. Обращаюсь к сообществу — может, у кого-то еще есть похожие проблемы или кто-то знает, как это исправить? Возможно, это проблема на стороне DynDNS или что-то связано именно с обновлением MikroTik FW 7.12.1, из-за чего возникает такое расхождение? Буду признателен за любую помощь или совет. Заранее спасибо!
     
     
     
    maxb
    Guest
    #10
    0
    18.12.2023 13:49:00
    У меня такая же самая проблема.
     
     
     
    nbajkovec
    Guest
    #11
    0
    21.12.2023 07:49:00
    У меня такая же проблема, всё работало отлично до обновления до версии 7.11.2. Кто-нибудь уже нашёл решение этой проблемы?
     
     
     
    Patty
    Guest
    #12
    0
    22.12.2023 10:31:00
    Привет, извиняюсь за возможные ошибки в английском, я пользуюсь переводчиком. Вчера обновился до версии 7.13 и тоже столкнулся с проблемами при исполнении скрипта для dyndns. Мне удалось решить эту проблему, активировав в скрипте пункт «FTP». Надеюсь, у вас была похожая ситуация и это решение поможет. С уважением, Пэтти.
     
     
     
    Benqer
    Guest
    #13
    0
    23.12.2023 20:44:00
    С «ftp» скрипт тоже не работает, но только для IPv6. IPv4 работает нормально.
     
     
     
    qatar2022
    Guest
    #14
    0
    24.12.2023 04:28:00
    У меня такая же самая проблема.
     
     
     
    macobi
    Guest
    #15
    0
    26.12.2023 11:00:00
    У меня та же проблема. Есть уже какие-то решения? У меня стоит ROS 7.13 и есть аккаунт dyndns. Спасибо и всего доброго.
     
     
     
    Kobold81
    Guest
    #16
    0
    29.12.2023 18:46:00
    У меня такая же проблема, думал, что это моя ошибка в настройках. [/ip address get [find where interface=$theinterface] value-name=address] тоже не показывает мой текущий IP.
     
     
     
    rextended
    Guest
    #17
    0
    30.12.2023 11:35:00
    Интерфейс может иметь несколько адресов, так что скрипт с самого начала работает плохо…
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры