{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Аникин: заметки с тегом pdd.yandex.ru",
    "_rss_description": "Блог об администрировании Linux, BSD и не только",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/anikin.pw\/tags\/pdd-yandex-ru\/",
    "feed_url": "https:\/\/anikin.pw\/tags\/pdd-yandex-ru\/json\/",
    "icon": "https:\/\/anikin.pw\/pictures\/userpic\/userpic@2x.jpg?1478690884",
    "authors": [
        {
            "name": "Петр Аникин",
            "url": "https:\/\/anikin.pw\/",
            "avatar": "https:\/\/anikin.pw\/pictures\/userpic\/userpic@2x.jpg?1478690884"
        }
    ],
    "items": [
        {
            "id": "24",
            "url": "https:\/\/anikin.pw\/all\/besplatny-analog-dyndns-i-no-ip-ispolzuya-yandeks-dns\/",
            "title": "Бесплатный аналог dyndns и no-ip используя Яндекс DNS.",
            "content_html": "<p><b>Статья более не актуальна. Яндекс всех поголовно переводит на Яндекс.Коннект. В API Коннекта на данный момент отсутствует возможность управлять DNS-записями. API pdd.yandex уже не работает.<\/b><br \/>\n<b>Можно использовать api Telegram для получения динамических ip. Инструкция <a href=\"https:\/\/anikin.pw\/all\/dyndns-cherez-telegramm\/\">здесь.<\/a><\/b><\/p>\n<p>Я давно пользовался услугами dyndns для подключения из вне к домашней файлопомойке-торрентокачалке на фряхе, у которой динамический ip от провайдера. Хотя уже давно у dyndns эта услуга платная для вновь зарегистрировавшихся пользователей, но я пользовался бесплатно, т.к зарегистрировался ещё до того как они стали за это просить денег. Но на днях мне пришло письмо что они не могут больше предоставлять эту услугу мне бесплатно и со следующего месяца я должен буду за неё платить. Меня это не устроило и я стал искать выход из текущего положения.<\/p>\n<p>Т. к. домены у меня делегированы на Яндекс DNS я стал читать мануалы для их API и выход был найден. Расскажу о нём ниже.<\/p>\n<p>Чтобы использовать яндекс api нам нужно получить токен. Получить его довольно просто, в браузере вводим.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">https:\/\/pddimp.yandex.ru\/get_token.xml?domain_name=domen.ru<\/code><\/pre><p><d><\/p>\n<p>Где domen.ru — ваш домен делегированный на яндекс. Вводим капчу и в выводе ищем:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">token=&quot;XXXXXX&quot;<\/code><\/pre><p><d><\/p>\n<p>В кавычках будет ваш токен. Копируем его куда-нибудь, он нам потребуется чуть позже.<br \/>\nТеперь нам нужно добавить к нашему домену сабдомен, который будет ссылаться на машину с динамическим ip. Переходим на <a href=\"https:\/\/pdd.yandex.ru\">https:\/\/pdd.yandex.ru<\/a>, выбираем домен и кликаем «Редактор DNS» там добавляем А-запись для домена:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-04-12-15:22:31.png\" width=\"390\" height=\"143\" alt=\"\" \/>\n<\/div>\n<p>В поле «Хост» вводите сабдомен, а в поле «Значение записи» пишете любой ip(в последствии он будет меняться, когда будет изменятся ip вашей тачки).<\/p>\n<p>Теперь нам нужно получить id нашей записи. Для этого в браузере вводим:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">https:\/\/pddimp.yandex.ru\/nsapi\/get_domain_records.xml?token=XXXXXX&amp;domain=domen.ru<\/code><\/pre><p><d><\/p>\n<p>Где ХХХХХХ-ваш токен, а domen.ru — ваш домен делегированный на яндекс.<\/p>\n<p>В выводе ищем строку с нашей записью myhome.domen.ru и в этой строке находим:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">id=&quot;1234567&quot;<\/code><\/pre><p><d><\/p>\n<p>В кавычках id записи, так же копируем его куда-нибудь.<\/p>\n<p>Теперь пишем скрипт на тачке на которой динамический ip. Скрипт будет проверять внешний ip тачки раз в пол часа и если он изменился, то будет изменять А-запись на Яндекс DNS.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># ee \/usr\/local\/bin\/dyndns.sh<\/code><\/pre><p><d><\/p>\n<p>Содержание скрипта:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/sh\nPATH=\/sbin:\/bin:\/usr\/sbin:\/usr\/bin:\/usr\/local\/sbin:\/usr\/local\/bin; export PATH\nDOMEN=&quot;domen.ru&quot; # ваш домен делегированный на яндекс\nSUB=myhome # сабдомен\nTOKEN=XXXXXX # токен\nRECID=1234567 # id записи\nwhile true; do\nIP='curl -s http:\/\/ip.anikin.pw\/'\nYAIP=`host myhome.domen.ru dns1.yandex.ru | grep has | awk '{print $4}'` # замените myhome.domen.ru на ваш сабдомен\nif [ $IP != $YAIP ]\nthen\ncurl -s &quot;https:\/\/pddimp.yandex.ru\/nsapi\/edit_a_record.xml?token=$TOKEN&amp;domain=$DOMEN&amp;subdomain=$SUB&amp;record_id=$RECID&amp;content=$IP&amp;ttl=1800&quot;\nfi\nsleep 1800; done;<\/code><\/pre><p><d><\/p>\n<p>Значения переменных измените в соответствии с комментариями.<\/p>\n<p>Делаем скрипт исполняемым:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># chmod +x \/usr\/local\/bin\/dyndns.sh<\/code><\/pre><p><d><\/p>\n<p>И добавляем соответствующую запись в крон:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># crontab -e<\/code><\/pre><p><d><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">@reboot \/usr\/local\/bin\/dyndns.sh<\/code><\/pre><p><d><\/p>\n<p>Всё, теперь после перезагрузки скрипт будет автоматически запускаться. Перезагружаемся или запускаем скрипт вручную и проверяем на <a href=\"https:\/\/pdd.yandex.ru\">https:\/\/pdd.yandex.ru<\/a> изменилось ли значение записи для нашего сабдомена.<\/p>\n<p><b>P.S. Чтобы было совсем все бесплатно, можно не покупать домен а использовать бесплатный домен в зоне .tk. Получить его можно на сайте www.dot.tk<\/b><\/p>\n",
            "date_published": "2014-04-12T16:47:17+03:00",
            "date_modified": "2019-03-05T14:10:28+03:00",
            "tags": [
                "api",
                "dyndns",
                "pdd.yandex.ru"
            ],
            "_date_published_rfc2822": "Sat, 12 Apr 2014 16:47:17 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "24",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}