Freedns afraid org настройка роутера
Я использую Mikrotik в качестве домашнего и офисного маршрутизатора, и в целом система очень нравится. RouterOS имеет широкие возможности, которые покрывают 90% моих задач, если чего-то недостает, то можно «дописать» функционал с помощью внутренних скриптов. Но когда начинаешь писать более-менее вменяемый скрипт или пытаешься понять и применить чужой рецепт, становятся заметны очертания подводной части айсберга, всплывают странные особенности языка.
Я провел небольшое исследование переменных в скриптах Mikrotik, рассмотрел под лупой объявление и инициализацию.
Получилась, на мой взгляд, достойная тема для написания статьи. Итак, приступим.
Предлагаю сразу сосредоточиться на global переменных, так как их легче исследовать за счет их лучшей «наблюдаемости», а большинство выводов, думаю, можно спокойно перенести и на local.
Прежде чем мы объявим первую глобальную переменную, давайте ознакомимся с особенностями некоторых встроенных типов данных и символьных конструкций, которые можно использовать как значения переменных или аргументы операторов сравнения.
Если поработать с командной консолью в WinBox, можно заметить, что есть еще одно странное ключевое слово nothing, которое непонятно что означает, какое-то «ничего».
Ну и где тут nil? Зато полно nothing.
Исследование nil
В общем, чтобы разобраться с этими особыми типами и значениями, применим системный подход, проанализируем выдачу однотипных запросов, но с разными наборами исходных данных. А исходными данными у нас будут в начале разные «странные» константы и выражения. В результате получается такая таблица:
Тут даны результаты сравнения различных констант выражений и команд над константами между собой. Понимание свойств констант поможет при написании правых частей операторов сравнения.
На счет полей таблицы. В языке скриптов Mikrotik квадратные скобки обозначают встраивание результата команды в общее выражение, поэтому в общем смысле value != [value], это важно.
Строка 1: все варианты записи поля value синонимичны! В будущем я предлагаю использовать лаконичное []. Повторюсь, что квадратные скобки обозначают встраивание результата команды в общее выражение. Как видите, это один из способов «генерации» nil не в чистом виде, а как результат пустой команды в квадратных скобках, который как раз равен nil.
Тут все просто. Пустая строка вполне очевидная вещь. Единственные момент, что она оказывается равна массиву из ничего, но предлагаю не обращать на это особого внимание. И нельзя использовать пустую строку как команду в квадратных скобках, это единственное место, где терминал не проглотил синтаксис по исходным данным таблицы, логично.
Круглые скобки несут в себе выражение, внутри можно тоже поместить nothing, и результат от такого выражения тоже будет nothing, по сути это почти чистый nothing. Видно, что тип результата выражения (:nothing) дает nothing, а тип от обертки из командных скобок [] дает nil, по аналогии со строкой 1. Вообще после повторного осмысления написанного, я понял что это спекуляция, т.к. внутрь () можно поместить что угодно, любой бессмысленный набор символов, главное, что результат (. ) дает nothing.
Массив, который содержит ничего, на самом деле содержит 1 элемент. Тип, как и ожидалось, array, тип результата командной обертки также дает nil
Какие общие выводы можно сделать из этого странного brainfuck-а. nothing действительно существует, им можно оперировать, редкие выражения могут его возвращать, но команды в [] никогда не возвращают nothing, а только nil. Другой более важный вывод, что оператор длины значения или кол-ва элементов массива :len ведет себя очень стабильно и генерирует предсказуемый результат, поэтому его я могу однозначно рекомендовать для использования в скриптах, когда требуется проверка возвращаемых выражениями и командами значений. И что [] = [:nothing] = nil.
Таблица дает представление о том, что могут возвращать различные команды и выражения языка Mikrotik.
Исследование объявлений переменных
Теперь перейдем к более практическому объявлению переменных.
Построчные комментарии к таблице:
1. Переменная создана, но ей ничего не присвоено. Переменная как бы содержит nothing.
2. Если переменной присвоить такое выражение, то это приведет к удалению глобальной переменной из переменных окружения.
3. Стандартный способ создания пустых переменных. Переменная содержит nil.
4. Присвоение пустой строки. Тут все очевидно.
5. Получается, что такое выражение аналогично [] простому присвоению nil, как в 3. Думаю, это потому, что внутри [] несуществующая команда и результат этой команды дает nil
6, 7, 8. Присвоение фигурных скобок делает из переменной массив, хоть и пустой. Обратите внимание, что записи имеют одинаковые результаты в таблице, но это не касается свойств элементов этих массивов. Свойства элементов массивов рассмотрены ниже.
9, 10. Простые типы данных. Все довольно очевидно.
11. Массив из одного элемента, обратите внимание, что по результатам равно
12, 13, 14. В массив могут входить элементы разных типов данных. Исследование свойств элементов массива дает предсказуемые результаты.
15, 16, 17. Один из элементов массива nothing. Элементы массива обладают теми же свойствами, что и просто переменные и константы данных типов и значений. Прослеживается аналогия с пунктом 2.
18, 19. Прослеживается аналогия с пунктом 3.
Я видел несколько аналогичных скриптов, но они не понравились мне из-за разных ограничений, поэтому я решил собрать свой велосипед, который меня бы полностью устроил.
За основу я взял скрипт от LESHIYODESSA. Мне не очень понравился его алгоритм, в котором использовался файл для хранения текущих адресов записей Dynamic DNS и производился его периодический парсинг, кроме того, скрипт не поддерживает обновление разных записей, для этого предлагается размножить скрипт, но это не снимает проблему обновления записи по заданному IP-адресу. Поэтому фактически я написал свой собственный скрипт, в котором заменил работу с файлами на более надежный механизм периодического обновления (с часовым интервалом) и форсированное обновление по изменению отслеживаемых IP-адресов интерфейсов, полученных по DHCP, независимое для нескольких записей.
Объявляем вспомогательные переменные:
Массив счетчиков позволит обновлять Dynamic DNS записи независимо друг от друга.
Сначала я делаю пустое объявление переменной :global SkipCounters, такое объявление позволяет либо создать новую глобальную переменную, либо использовать уже существующую в переменных окружения и ее значение без перезаписи.
Следующие конструкции работают для только что созданных переменных, проверяется тип данных, если он не массив, то тип меняется на массив, и присваиваются значения переменных. Таким образом на выходе мы имеем проинициализированные нужными значениями переменные типа массив.
Ни и собственно сам алгоритм отслеживания-обновления.
Получаем текущий IP-адрес из dhcp-client. Дальше самое интересное.
Команда [/ip dhcp-client get [find where interface=($WANInterfaces->$i)] address] в общем случае может вернуть что угодно кроме строки, содержащей IP-адрес, поэтому она в норме обновит значение переменной CurrentIP. Возвращаемым значением может быть либо строка с IP, либо nil, или будет ошибка выполнения и команда не обновит CurrentIP. Поэтому я строкой выше ввожу явное объявление :local CurrentIP «». И после выполнения команды в CurrentIP будет либо «», либо nil, либо IP-адрес.
Как я писал выше, наибольшей устойчивостью обладает оператор :len, поэтому используем его дальше для проверки адекватности полученных данных [:len $CurrentIP] > 0. Еще отслеживаем значение счетчика, и если он >=60, принудительно отсылаем запрос в FreeDNS. Таким образом повышается устойчивость алгоритма к проблемам связи. Скрипт в шедулере у меня выполняется раз в минуту, поэтому период обязательного обновления около 1 часа, что не сильно обременяет сервис FreeDNS.
На что еще стоит обратить внимание. В URL запроса на обновление присутствует параметр «&address=».$CurrentIP, этот параметр позволяет явно указать IP-адрес для субдомена вместо автоматического (по интерфейсу с которого ушел запрос).
Привет всем столкнулся с проблемой .Никак немогу настроить Динамический DNS на OpenWrt Barrier Breaker r38943 Версия ядра 3.10.18.
Проблема в следуюшем
2.создал доменное имя(Имя хоста)
3.В настройках днс всё прописал
4.ресетнул роутер но работать Динамический DNS незахотел.
Есле с телевона(через стартовый пакет) ввести в браузер доменное имя (Имя хоста)то браузер на телефоне очень долго пытаетса открыть но вконечном итоге не открывает(неудалось подключитса).зато есле ввести свой ип адрес взятый из Статус IPv4 WAN то в течении 2 секунд браузер показывает мне мою luci .И я полностью могу путишествовать по ней.Вопрос: как настроить правельно Динамический DNS и что я делаю нетак?Файл настроек /etc/config/ddns представляю
PS:за логен и пароль непережывайте есле всё удастса настроить то я его сменю(в крайнем случае заново пройду регестрацыю она у них бесплатная) а нет знач заброшу. Глиди кому и поможет мой логен с паролем.
Dynamic DNS
Теперь необходимо в панели вашего регистратора изменить адреса dns серверов. Т.к. панели у всех регистраторов разные, я не могу точно описать как это будет выглядеть. В любом случае, думаю справитесь =) Адреса серверов:
Примерно где-то через сутки, а возможно раньше, или позже пометка в панели freedns о том что домен потерян пропадет, и можно приступать дальше.
Функцию динамического днс, предоставляет сам сервер. Т.е. там есть ссылки, кликнув по которой, изменяется ip адрес на тот, с которого она скачалась. На самом сайте, есть не мало скриптов выполняющих эту работу, но я выбрал один, и несколько модернизировал его под свои нужды.
Создаем еще нужные директории:
И так, почти все готово! Для работы, нам понадобиться еще пара утилит: curl и s2 или Lynx. Я выбрал Lynx даже сам не знаю почему.
Когда вы все распакуете и скопируете в соответствующие директории, у вас должен быть файл /etc/IPdetect/change_run.sh . В этом файле, содержится команды, выполняемые скриптом. Для того что бы все заработало, мы в панели инструментов freedns, идем по ссылке Dynamic DNS, и копируем Direct URL ссылку.
Открываем файл /etc/IPdetect/change_run.sh и пишем следующее
Т.е. выглядеть это должно примерно так:
А дальше у нас два варианта. Можно либо добавить через crontab -e выполнение этого скрипта, но я сделал по другому. Дело в том, что доступ в сеть мой провайдер осуществляет через VPN соединение и я не видел смысла в кроне, я просто допилил взятый у друга скрипт, который проверят доступно ли соединение, и если нет, то перезапускает его, и выполняет ipdetect скрипт.
Для контроля, скрипт запускается в сессии GNU Screen. Но при желании, можно немножко дописать его, и использовать как демон.
-> Raising funds for server re-infastructuring.
All premium membership benefits are doubled!
Ends Aug 25 at 12AM Up Here!
Enough has been raised for 1 1/2 servers in 1 short week. The new server will
be up soon. Additional premium memberships will still go to the 2nd additional server.
Thank you all, seriously. This is going to add further stability, and be a joy to work
with an improved infastructure.
FreeDNS FAQ
Non-d: Stealth allows you to remove your domain from all sharing mechanisms. Stealth is available to premium members in exchange for supporting the project.
Administration of these domains is done by myself on a case-by-case basis as reported to me. If someone is abusing a hostname by using it with spamming, malicious or otherwise illegal activity, the account will be investigated and locked down. The hostname will be unchangeable, and remain in a locked e so it cannot be reused ever again. All activity performed in FreeDNS IS logged, and will be provided to the proper legal ities upon request.
For example if you have:
In this example, fetching the Dynamic DNS up URL to either of host1. or host2. will up them both.
1). Domains which are sub delegated from another DNS server, instead of from a direct registration ity, or
2). The use of premium member stealth flags.
If you wish to use a FreeDNS host on IRC, you will need cooperation with your Internet service provider as they are the ones that control the ity for your IP address space.
You may also wish to use an IPv6 tunnel broker, if the IRC network you wish to connect to is also connected to the IPv6 network. Many IPv6 tunnel brokers will allow you full control of your DNS, which you can control in the IPv6 Reverse section.
Your previous configuration will be restored.
NOTE: If you want to make the domain uailable on the internet, we that you delegate DNS elsewhere first, and then delete the zone. This prevents future DNS queries from possibly being misrouted.
For new domains:
For domains that used to work:
Broken is only a internal FreeDNS flag. If a domain remains in a broken e for 365 days, it is then disabled unless DNS ity returns.
DNS by nature is a very efficient, hierarchical caching service. To answer this question, you must understand how DNS works.
Here is an example:
The expiration value is controlled by FreeDNS. In FreeDNS, the cache values (called a TTL, to live) is set to 3600 seconds by default (1 hour). With that said, you must wait a maximum of one hour for your previous cache to expire.
Once a value is propagated, there is no way to force it to expire from your ISPs nameserver unless you are the administrator of that nameserver.
You should see a black box. Inside of it, type:
There are also 3rd party DNS utilities available for windows that would even let you see how many seconds are left in the cache in your ISPs nameserver.
If you want to check if a nameserver is responding, issue a DNS query directly to that nameserver.
The official workings are as follows:
2) No subdomains created via the d domain system are visible to Google. You must own the domain itself that you are creating a subdomain off of to have it visible to Google by default.
NOTE: Older subdomains may infact be visible to Google. To make it more evident of whether or not your site is visible to Google, a blue (G) will appear next to a record in the subdomains section as an indicator.
Of course, domains that you own have none of the Google restrictions that this FAQ item is referring to.
FreeDNS Letsencrypt Up
To attempt it manually, you might use something like this:
You can get the dns_cookie by analyzing the saved cookie in your browser while logged in.
1. Ты забыл сказать что будет работать только у тех, у кого "белый" IP.2. Зачем ещё одна тема если на форуме их куча?!
Бесплатная альтернатива DynDNS.
Внешнее подключение к MD
Доступ к домашней сети через NAT провайдера
доступ из внешней сети
Как получить доступ из внешней сети?
Доступ к сайту из интернета
gps и доступ извне
не могу войти в мажор из интернета
3. Думаю что нужно не создавать отдельную тему, а писать в существующие. Потому что каждый напишет по одной теме, и количество тем на форуме будет ещё больше. А это не очень хорошо. Если бы вы прочитали внимательно то поняли что это инструкция для серых динамических ip находящихся за натом, на это указывают исполняемые скрипты, которые обновляют ваш ip на сервисе а точнее на DNS сервере сервиса который использует ваш бесплатный домен.
в итоге получается доступ к вашей системе по домену 1. Ты забыл сказать что будет работать только у тех, у кого "белый" IP.
2. Зачем ещё одна тема если на форуме их куча?!
Бесплатная альтернатива DynDNS.
Внешнее подключение к MD
Доступ к домашней сети через NAT провайдера
доступ из внешней сети
Как получить доступ из внешней сети?
Доступ к сайту из интернета
gps и доступ извне
не могу войти в мажор из интернета
3. Думаю что нужно не создавать отдельную тему, а писать в существующие. Потому что каждый напишет по одной теме, и количество тем на форуме будет ещё больше. А это не очень хорошо. Хорошо уточню, инструкция подходит для людей у которых провайдер выдает белый динамический адрес
Ну раскажу про схему которую я использую не первый год (доступ к серверу умного дома находящегося за NAT + бонусом RDP к домашним компам)
1) Регистрируем бесплатный Amazon VDS сервер (на 1 год, дальше новый email и по новой)
1.1) При желании используем DynDNS или покупаем самый дешевый домен за 5$ , и привязываем к IP VDS
1.2) Не забываем настроить встроенный фаервол амаззона в их убогой веб морде
2) Подымаем там VPN сервер
3) В моём случае на домашнем роутере Microtik подымаем клиента
4) На VDS , настраиваем проброс портов с внешнего белого IP на ваш внутренний IP VPN клиента
5) В моём случае на роутере я растусовываю в зависимости от порта на нужные IP в моей домашней сети
- сервер умного дома
- RDP к домашним компам
- файл сервер
и.т.д.
5.1) В вашем случае клиентом может выступать сам сервер Mojordomo тогда настройка потребуется только на сервере VDS
----------------------------------------
Проброс портов на Win ПРИМЕР
Пример добавления проброса порта (Windows)
netsh interface portproxy add v4tov4 listenaddress=172.31.24.53 listenport=58080 connectaddress=192.168.1.201 connectport=58080
Для просмотра существующих правил введите:
netsh interface portproxy show all
iptables -t nat -A PREROUTING -i ens18 -p tcp --dport 4080 -j DNAT --to-destination 10.233.2.2
iptables -t nat -A POSTROUTING -o ppp0 -p tcp --dport 4080 -d 10.233.2.2 -j SNAT --to-source 10.233.2.1
Когда мы просматриваем Интернет, есть много функций, элементов и инструментов, которые помогают нам и которые мы можем изменить. Сегодня мы поговорим о динамический DNS поставщики , Мы объясним, что это такое, и назовем некоторые из лучших, которые у нас есть бесплатно. По сути, мы можем сказать, что они используются для удаленного подключения к нашему оборудованию или для настройки сервера.
Что такое динамические DNS-провайдеры?
Поставщики динамического DNS также могут отображаться как DDNS или как DynDNS. Можно сказать, что ваш перевод - это динамическая система доменных имен. Его функция - помочь пересылать IP-адреса нашей домашней сети, которые постоянно меняются. Они создают постоянное доменное имя.
Этот тип услуг назначает фиксированный домен имя на сервер , например. Таким образом, мы можем подключиться из любого места, даже не зная IP-адрес, который вы используете.
Факт использования DNS-провайдеров очень интересен, чтобы иметь возможность доступа к нашему персональному компьютеру из любой точки мира, например, с помощью удаленного рабочего стола. Это также позволяет вам управлять различными операционными системами с одного компьютера, создавать контент в Streaming или получать доступ к личному почтовому серверу. Это самые популярные и частые случаи, но полезность очень широка.
Бесплатные провайдеры динамического DNS
В нашем распоряжении большое количество провайдеры динамического DNS доступный. Таким образом, мы можем выполнить то, что мы упомянули выше. Мы покажем список бесплатных, которые мы считаем наиболее интересными.
DuckDNS
Один из вариантов у нас есть DuckDNS , который поддерживается двумя разработчиками программного обеспечения, как мы видим в спецификациях на их сайте. Для многих это один из лучших бесплатных провайдеров динамических DNS. Он имеет простой дизайн. Он доступен в сети с многочисленными руководствами, чтобы узнать, как он работает в разных операционных системах.
Выход DNS
В этом случае с Выход DNS перед нами сервер, который предлагает широкий спектр дополнительных возможностей. У него есть клиенты для основных операционных систем, таких как Windows, Linux или macOS. Таким образом, мы можем постоянно обновлять наш IP-адрес. Также следует отметить, что он предлагает различные платежные функции для желающих.
DynDNS
DynDNS это еще одна альтернатива, которая позволяет нам получить удаленный доступ к нашей сети, серверу или оборудованию без необходимости запоминания IP-адреса. Это бесплатный сервис, а также различные интересные функции, которые мы можем найти на его веб-сайте.
Dynu позволяет доменам верхнего уровня и доменам третьего уровня получить поддомен со своей службой. Каждый раз, когда меняется IP, клиент будет обновляться автоматически, и нам не придется беспокоиться о синхронизации. Они позволяют нам иметь до 4 поддоменов бесплатно.
Без IP
Нет-IP это классика. Хотя в последние годы некоторые из его функций стали платными, он по-прежнему предлагает три субдомена бесплатно. Конечно, чтобы они не истекли, активность должна обновляться раз в месяц.
DNSDynamic
Если мы хотим большой выбор доменов, интересным вариантом будет DNSDynamic . Мы можем зарегистрировать неограниченное количество имен хостов. Этот клиент работает как в Windows, так и в Linux, и IP-адреса будут обновлены через бесплатный VPN услуги.
Короче говоря, это одни из лучших бесплатных провайдеров динамического DNS, которые мы можем найти сегодня.
В данной заметке я расскажу о том, как организовать удалённый доступ к своему домашнему беспроводному маршрутизатору, используя функцию DDNS, являющуюся стандартной функцией любого современного сетевого устройства.
Для чего может потребоваться удалённый доступ к домашним сетевым устройствам через сеть Интернет:
- для настройки и контроля работы домашнего маршрутизатора;
- для удалённого мониторинга системы видеонаблюдения (IP-камеры, цифровые видеорегистраторы);
- для получения материалов, хранящихся на домашнем сетевом хранилище;
- для организации прямой связи посредством IP-телефонии;
- для удалённой печати на домашнем принтере;
- для управления системой цифрового дома.
В публичной сети Интернет найти сетевое устройство и получить к нему доступ возможно только, если это устройство имеет так называемый публичный или реальный IP-адрес (что это такое, кому интересно, можете найти в Интернете, используя любимую поисковую систему).
Интернет-провайдеры, предоставляющие доступ к сети Интернет, при подключении и авторизации могут выдавать один из трёх вариантов IP-адресов:
- приватный (или внутренний);
- публичный статический;
- публичный динамический.
При первом варианте прямой удалённый доступ организовать в большинстве случаев не получится, только, в некоторых случаях, через специальный внешний сервер.
При втором варианте Вы сразу получаете постоянный адрес для удалённого доступа, но, как правило, это платная услуга операторов связи, стоимость которой обычно составляет до 200 руб. в месяц.
При третьем варианте ваш полученный реальный адрес динамически меняется в соответствии с условиями провайдера, что создаёт большие неудобства при удалённом доступе. Именно в этом случае Вам может помочь функция DDNS. Идея функции состоит в том, что ваше сетевое устройство, например, маршрутизатор, само сообщит на внешний сервер текущий реальный IP-адрес, полученный от провайдера, а сервер автоматически переадресует на этот адрес при каждой Вашей попытке открыть заранее настроенный на сервере домен (сайт).
Серверов, оказывающих услуги DDNS на платной, условно–бесплатной и бесплатной основе огромное множество в сети Интернет, как зарубежных, так и отечественных. Но далеко не каждое сетевое устройство способно работать с любым сервером. Чаще всего в устройствах имеется возможность работать с ограниченным количеством подобных ресурсов, выбираемых из выпадающего списка. Например, в современных беспроводных маршрутизаторах D-Link можно выбрать понравившийся сервер из более чем 20 доступных вариантов.
Последовательность действий для настройки функции следующая:
Для обеспечения безопасности, обязательно настройте на своём устройстве авторизацию по логину и паролю.
Если ваши сетевые устройства, к которым требуется удалённый доступ, расположены относительно сети Интернет за маршрутизатором, то настраивать функцию DDNS требуется именно на этом маршрутизаторе. При этом ещё потребуется на маршрутизаторе настроить проброс портов на эти устройства.
Если требуется доступ к настройкам самого маршрутизатора, то, как правило, на маршрутизаторе надо отдельно включить доступ к интерфейсу с WAN порта.
Читайте также: