см мой
последний пост. ver 3.3Все отлажено, работает больше недели, на моем серваке+роутере. стартует после запуска роутера и серва нормально.
Кому надо под другой девайс (роутер), напишите. Посмотрим, как подправить надо, чтобы с вашим работало.
----------------------
Беслатных сервисов становится все меньше, а
те, что еще работаю вставляют палки в кулеры, винты и другие части железа. Сам недавно столкнулся с отказом от freedns.afraid.org прописать IP от билайна в свои записи, по причине нахождения IP в блеклистах
Спамхауса. Копание CNAME меня не удовлетворили и тут я нашел
следующее великолепное решение.
Яндексу спамхаус с его блеклистами, как я понимаю, по барабану. web интерфейс Яндекса во времени стабилен.
Так что рекомендую. Мне понравилось в решении использование bash скрипта и cron. Конечно первым д надо прописать у вашего регистратора домена dns1.yandex.net dns2.yandex.net в качестве DNS адресов. Затем на
https://pdd.yandex.ru добавьте
записи типа A с произвольными IP адресами для начала для субдоменов @ и www (если последний вам тоже нужен)
Затем можете прочитать
вышеуказаную статью, в части как добыть token и id нужных записей ваших сайтов.
Мне не очень понравилось решение использовать бесконечный цикл while true do, ну и ошибочка у него есть в восьмой строке, кавычки одиночные не те поставил.
Поэтому я написал чуть исправленый вариант для двух сайтов и поддоменов www для обоих.
Свой реальный IP я заимствую с сайта
https://myexternalip.com/raw . У автора другой источник в коде.
#!/bin/sh
#сделано по статье:
#https://anikin.pw/all/besplatny-analog-dyndns-i-no-ip-ispolzuya-yandeks-dns/
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin; export PATH
TOKEN=blablatoken #токен
TOKE=blablatoken2 # еще один токе
DOMEN="vashpervij.ru" # ваш домен делегированный на яндекс
DOME="vashvtoroj.ru"
SUB="@"
SUBWWW="www" #сабдомен
RECID=12345678 # id записи
RECIDWWW=23456789
RECI=34567890 # id записи
RECIDWW=45678910
IP=`curl -s https://myexternalip.com/raw`
YAIP=`host vashpervij.ru dns1.yandex.ru | grep has | awk '{print $4}'` # ваш домен
if [ $IP != $YAIP ]
then
curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=$TOKEN&domain=$DOMEN&subdomain=$SUB&record_id=$RECID&content=$IP&ttl=1800"
curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=$TOKEN&domain=$DOMEN&subdomain=$SUBWWW&record_id=$RECIDWWW&content=$IP&ttl=21600"
curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=$TOKE&domain=$DOME&subdomain=$SUB&record_id=$RECI&content=$IP&ttl=1800"
curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=$TOKE&domain=$DOME&subdomain=$SUBWWW&record_id=$RECIDWW&content=$IP&ttl=21600"
fi
сохраняем под именем например /usr/bin/yandexDDNS и делаем его исполняемым под root
Затем sudo crontab -e
в конце добавляем
45 * * * * yandexDynDNS >> /tmp/yandexDynDNS.log 2>&1 &
получаем запуск на 45й минуте каждого часа, логами в /tmp/yandexDynDNS.log и заглушкой на выводе в syslog, чтобы лишнего не писала.
в логах (ну или если в ручную скрипт запустить) если IP на яндексе не совпадает (!) с вашим в данный момент, выдаются записи типа
......</domain><error>ok</error>....... значит сработало изменение ip адреса.
а если
<error>no_such_record</error>
или <error>not_allowed</error>, ищи ошибку в token или ID
всем удачи.