Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: DynDNS своими руками через яндекс.  (Прочитано 501 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 134
    • Просмотр профиля
Беслатных сервисов становится все меньше, а те, что еще работаю вставляют палки в кулеры, винты и другие части железа. Сам недавно столкнулся с отказом от 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

всем удачи.

Оффлайн ConnaiSSant

  • Участник
  • *
  • Сообщений: 200
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #1 : 05 Март 2017, 01:43:36 »
н

Херня какая то. Вы этим почему заморочились? Пожалели деньги на стабильного регистратора?

Пользователь добавил сообщение 05 Март 2017, 01:44:56:
ИМХО, проще купить домен и где нибудь его "зафиксировать". Много где можно это сделать, начиная от НС своего провайдера. Или я вас не понял

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 134
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #2 : 05 Март 2017, 02:46:19 »
Вы этим почему заморочились?
В смысле чтобы статичный IP не покупать у провайдера интернета.

Допустим есть у Вас домен domen.ru, и вам его надо прикрутить к домашнему серваку. а провайдер интернета ип статичный продает (иначе меняется время от времени) за деньги. в общем то не дорого, 150 руб в месяц. Но можно и не платить %), а заморочиться :)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 23284
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #3 : 05 Март 2017, 03:32:31 »
За дополнительных 300 рэ в месяц я имею два стабильных белых IP.
Пришлось пособачиться с МГТС, но… всё получилось.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 134
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #4 : 05 Март 2017, 15:43:16 »
Но можно и не платить %), а заморочиться
Собственно чего там заморачиваться, всего то 10 строк написать. Не могу сказать что задача меня напрягла сильно. Допилил за часок где то.

Оффлайн kononvaler

  • Активист
  • *
  • Сообщений: 453
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #5 : 06 Март 2017, 19:50:02 »
и вам его надо прикрутить к домашнему серваку
Какие задачи у домашнего сервака? Вам нужно попадать в него именно по доменному имени, либо достаточно было бы знать текущий фактический адрес?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 23284
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #6 : 06 Март 2017, 19:50:59 »
Вам нужно попадать
Надо, чтобы попадали другие.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн kononvaler

  • Активист
  • *
  • Сообщений: 453
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #7 : 06 Март 2017, 20:00:00 »
Вам нужно попадать
Надо, чтобы попадали другие.
Где об этом сказано?

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 134
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #8 : 06 Март 2017, 22:36:16 »
Вам нужно попадать в него именно по доменному имени, либо достаточно было бы знать текущий фактический адрес?
Чел не в теме :)
пример: сервак в Москве, ты в командировке в Питере, ип-адрес сменился (если статику не купил), а подключиться тебе к собственному серваку понадобилось в этот момент. Как адрес узнаешь? Бабушку попросишь в консоль залезть?  :2funny:

Оффлайн bezbo

  • Участник
  • *
  • Сообщений: 231
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #9 : 06 Март 2017, 23:54:11 »
ты в командировке в Питере, ип-адрес сменился (если статику не купил), а подключиться тебе к собственному серваку понадобилось в этот момент

teamviewer, не?

Оффлайн kononvaler

  • Активист
  • *
  • Сообщений: 453
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #10 : 07 Март 2017, 07:02:48 »
Чел не в теме :)
пример: сервак в Москве, ты в командировке в Питере, ип-адрес сменился (если статику не купил), а подключиться тебе к собственному серваку понадобилось в этот момент. Как адрес узнаешь? Бабушку попросишь в консоль залезть?  :2funny:
К тому и вопрос был, я например получаю адреса своего домашнего сервера посылкой из скрипта сообщения в Telegram. Если мне достаточно знать мой адрес, зачем заморачиваться с днс и регить еще для этого домен?
Второй путь - есть хостинг, туда из скрипта проверки адреса выкладываю по фтп текстовый файл с адресом. Третий - на хостинге страничка с ссылками, для ссылок присылаю тем-же скриптом .htaccess с актуальными перенаправлениями.
Так что отчасти в теме, интересовал вопрос вам реально нужно домой заходить по доменному имени или иначе есть варианты, кроме варианта с бабушкой.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 07 Март 2017, 07:23:28 от kononvaler »

Оффлайн ConnaiSSant

  • Участник
  • *
  • Сообщений: 200
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #11 : 07 Март 2017, 11:52:16 »
Скриптом можно, к примеру проверять каждый час, сравнивать с предыдущим и если IP отличается то выслать на почту.

cat check_ip
(Нажмите, чтобы показать/скрыть)

cat head_mail
(Нажмите, чтобы показать/скрыть)

ls -la
(Нажмите, чтобы показать/скрыть)

crontab -l
(Нажмите, чтобы показать/скрыть)

По крайнем мере, у меня работает это на ура


Пользователь добавил сообщение 07 Март 2017, 12:05:51:
Чел не в теме :)
пример: сервак в Москве, ты в командировке в Питере, ип-адрес сменился (если статику не купил), а подключиться тебе к собственному серваку понадобилось в этот момент. Как адрес узнаешь? Бабушку попросишь в консоль залезть?  :2funny:
К тому и вопрос был, я например получаю адреса своего домашнего сервера посылкой из скрипта сообщения в Telegram. Если мне достаточно знать мой адрес, зачем заморачиваться с днс и регить еще для этого домен?
Второй путь - есть хостинг, туда из скрипта проверки адреса выкладываю по фтп текстовый файл с адресом. Третий - на хостинге страничка с ссылками, для ссылок присылаю тем-же скриптом .htaccess с актуальными перенаправлениями.
Так что отчасти в теме, интересовал вопрос вам реально нужно домой заходить по доменному имени или иначе есть варианты, кроме варианта с бабушкой.
(Нажмите, чтобы показать/скрыть)

Поделитесь скриптом для отправки в телеграмм, интересное решение
« Последнее редактирование: 07 Март 2017, 12:05:51 от ConnaiSSant »

Оффлайн kononvaler

  • Активист
  • *
  • Сообщений: 453
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #12 : 07 Март 2017, 16:48:05 »
ConnaiSSant,
Поделитесь скриптом для отправки в телеграмм, интересное решение
Напиши мне в телеграм.

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 134
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #13 : 07 Март 2017, 21:07:29 »
интересовал вопрос вам реально нужно домой заходить по доменному имени или иначе есть варианты,
да неее, я веб-сервер обычный делаю, плюс еще бывает сам из внешки подключаюсь. Поэтому доменное имя по любому прикручиваю.
А так как доменное имя есть, требуется где то на DNS зарегиться, вот я на яндекс их прикрутил. удобно в общем.
 У меня еще DLINK файрвол на входе так что Dlink DynDNS адрес третьего уровня бесплатно могу прикрутить, но только так, свой адрес типа site.ru там не позволяют использовать. Поэтому я свои домены через яндекс настроил.

PS. Не думал, что столько вариантов люди напридумывали. Но как по мне, все ж один раз настроить и пользоваться доменным именем проще, чем каждый раз лазить в телеграмм или почту.
« Последнее редактирование: 07 Март 2017, 21:37:31 от Schneider »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 23284
    • Просмотр профиля
Re: DynDNS своими руками через яндекс.
« Ответ #14 : 07 Март 2017, 21:28:42 »
Dlink DynDNS адрес третьего уровня бесплатно могу прикрутить, но только так, свой адрес типа site.ru там не позволяют использовать.
Если уже есть любое имя, то просто сделать CNAME.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.209 секунд. Запросов: 23.