Домашний веб-сервер и ДНС Яндекса

Обсуждаем сайт и форум.

Модератор: f0s

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2012-02-09 0:55:29

До публикации данной статьи предлагаю вашему вниманию черновик:

Домен второго уровня для домашнего хостинга или DNS от Яндекса без использования службы DDNS на примере 1cru.ru

В данной статье рассматривается один из способов организации доступа к вашему домашнему веб-серверу из сети интернет с использованием любого технически возможного доменного имени.
Суть проблемы заключается в том, что большинство крупных провайдеров выделяют по стандартным тарифам динамические публичные адреса. Что делает невозможным классическое использование привязки доменного имени к конкретному адресу без использовании стороннего DNS-сервера. Проблему можно решить с помощью денежных вливаний или с помощью бюджетных способов.
Можно купить у провайдера статический публичный адрес. Стоимость в среднем 150 рублей в месяц. И воспользоваться услугой DNS-хостинга от 50 руб в месяц. Т.е. в месяц надо выделять по 200 рублей.
Но, есть жаба которая душит и говорит, что один из московских провайдеров предлагает всего за 150 рублей в месяц безлимитный интернет на скорости 12 Мбит/сек, а так же локальную сеть и т.д. Достаточно ли такой скорости для веб-сервера? Это тема для другой статьи, но цена за интернет доступ заметно дешевле чем дополнительные услуги по обеспечению доступности веб сервера из вне.
Рассмотрим бюджетные варианты. Есть хорошо известные службы такие как dyndns.org, no-ip.com и др. С помощью таких служб и специального ПО мы получаем постоянный доступ к серверу по доменному имени, но получаем домен третьего уровня и из списка тех которые предлагают данные службы.
А, что если есть необходимость в использование короткого домена второго уровня? Например, 1cru.ru. Опять платить за DNS-сервер?
С появлением бесплатного DNS-хостинга от Яндекса https://pdd.yandex.ru/help/section9/ появилась возможность прозрачного использования стандартного интернет подключения при условиях применения публичных динамических адресов и отсутствие фильтрации трафика у провайдера. И, что самое приятное нет необходимости в dyndns.org.
Если у вас нет почты от Яндекса, то зарегистрируйтесь т.к. большинство сервисов русского гугла такие как: Яндекс деньги, маркет, работа, вебмастер, директ и многое другое включая DNS-хостинг используют одну учетную запись.

http://passport.yandex.ru/passport?mode=register

В этой статье предполагается, что вы знакомы с системой регистрации и работы с доменными именами, а так же у вас уже есть как минимум один оплаченный домен. В качестве примера в этой статье используется мой сервер 1cru.ru и вся служебная информация такая как методы API DNS – не забываете менять данные на свои!

Авторизуемся на Яндексе и идем по адресу добавления домена.

https://pdd.yandex.ru/domains_add/

Вводим название Вашего домена и нажимаем кнопку подключить.

Далее нам надо сделать подтверждение владение доменом. Предлагается три способа. Для меня самый удобный способ, это подтверждение с помощью email:

Код: Выделить всё

Укажите адрес allseen+1a2b3c4d5f6e@yandex.ru в качестве контактного почтового адреса для вашего домена (если этот адрес ваш регистратор не принимает, то укажите вместо него 1a2b3c4d5f6e@yandex.ru). Эта операция производится при помощи инструментов вашего регистратора доменов. 
По рекомендациям Яндекса идем в кабинет у регистратора в моем случае это http://www.nic.ru
В кабинете изменяем контактный email на указанный Яндексом allseen+1a2b3c4d5f6e@yandex.ru, несмотря на формат почта на данный ящик будет приходить без проблем. Более того, после процедуры подтверждения контактный email можно будет сменить, таким образом есть возможность переноса нескольких доменов.
Далее в кабинете регистратора делегируем домен серверам Яндекса:

Код: Выделить всё

dns1.yandex.ru
dns2.yandex.ru
Внимание ip-адреса для серверов указывать не надо! Процесс делегирования может занять до нескольких часов.
После делегирования в кабинете Яндекса в разделе «Мои домены» запись 1cru.ru из чёрного цвета окрашена в зеленый цвет – это говорит о том что домен проверен и можно перейди в удобный редактор DNS.
В моем случае достаточно добавить только запись типа А и указать в ней мой адрес 95.24.3.162.
После сохранения записи в редакторе идем в консоль FreeBSD проверяем:

Код: Выделить всё

www# host 1cru.ru
1cru.ru has address 95.24.3.162
1cru.ru mail is handled by 10 mx.yandex.ru.
Как видно наша запись добавилась (обновилась) моментально.
Встает резонный вопрос: Как обновлять эту запись автоматически? Тут помогут методы API DNS Яндекса, список которых можно посмотреть тут http://api.yandex.ru/pdd/doc/api-dns/re ... pi-dns.xml
В нашем случае наибольший интерес представляет метод edit_a_record позволяющий изменять запись типа А
Синтаксис запроса

Код: Выделить всё

https://pddimp.yandex.ru/nsapi/edit_a_record.xml ? 
token=<токен пользователя>
& domain=<имя домена>
& record_id=<id записи>
& content=<содержимое записи>
token - Авторизационный токен пользователя API.
domain - Имя домена, для которого добавляется или меняется DNS-запись.
record_id - Идентификатор (id) изменяемой записи. Берется из аттрибута id. id можно получить можно с помощью метода get_domain_records (чтение записей зоны домена).
content - Cодержимое DNS-записи.

Форма ответа на удачно выполненный запрос

Код: Выделить всё

<page>
  <domains>
    <domain>
      <name>...</name>
    </domain>
    <error>ok|...</error> 
  </domains>
</page>
Остается решить две задачи по автоматизации процессов:
1. Получение в реальном в времени информации о нашем настоящем адресе
2. Отправка этого адреса на DNS-сервер Яндекса.

1. Задача решается легко если ваш сервер напрямую подключен к кабелю - в данном случае поможет команда ifconfig в связке с grep и awk. Но, в моем случае сервер подключен через роутер. Можно запросить адрес и у роутера, но роутеры все разные и методы будут не универсальны.
Можно узнать свой адрес в интернете например по адресу http://www.2ip.ru. Но, страница там слишком весомая, придётся много парсить, да и трафика может много уходить в зависимости от частоты проверок. Поэтому мною был найден сайт с возможностью отображения только ip в текстовом формате:

http://www.showmyip.com/simple

2. Чтобы взаимодействовать с Яндексом, в частности менять записи типа А для начала необходимо получить секретный код «token». Для этого открываем любимый браузер, авторизируемся на Яндексе и вводим в адресную строку:

Код: Выделить всё

https://pddimp.yandex.ru/get_token.xml?domain_name=1cru.ru
где 1cru.ru – ваш домен

Необходимо просмотреть исходный код страницы где, собственно и будет спрятан наш token:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<page><ok xmlns:x="http://www.yandex.ru/xscript" xmlns:xi="http://www.w3.org/2001/XInclude" token="1a2b3c4d5e6f7a8b9c10d11l12f13a14b15c"/></page>
Замечу, что токен нужно получить всего один раз.
Также нам необходимо получить id записи типа А.
С помощью браузера получаем все записи нашей зоны:

Код: Выделить всё

https://pddimp.yandex.ru/nsapi/get_domain_records.xml?token=1a2b3c4d5e6f7a8b9c10d11l12f13a14b15c&domain=1cru.ru
Не забываем заменить ваш токен и домен!

Получаем ответ:

Код: Выделить всё

1cru.ru95.24.3.162dns1.yandex.ru.v=spf1 redirect=_spf.yandex.rudomain.mail.yandex.net.domain-xmpp.ya.ru.domain-xmpp.ya.ru.domain-xmpp.ya.ru.domain-xmpp.ya.ru.dns1.yandex.ru.dns2.yandex.ru.mx.yandex.ru.ok
При просмотре программного кода страницы по нашему ip 95.24.3.162 находим id=5099342 записи типа А

Код: Выделить всё

<?xml version="1.0" encoding="windows-1251"?>
<page>
    <domains><domain><name>1cru.ru</name><response><record domain="1cru.ru" priority="" ttl="21600" subdomain="@" type="A" id="5099342">95.24.3.162</record><record domain="1cru.ru" priority="" ttl="21600" subdomain="@" type="SOA" id="5099109" refresh="14400" retry="900" 
.........
.........
</page>
Этой информации достаточно для автоматизации процессов.
Приступаем к написанию скрипта на шелле с применением клиентской программы умеющей работать с URL такой как fetch, wget или curl. Остановлюсь на curl, который в минимальной установке BSD не предусмотрен поэтому выполняем:

Код: Выделить всё

www# cd /usr/ports/ftp/curl
www# make install
А вот и сам скрипт:

Код: Выделить всё

www# cd /usr/local/etc/rc.d
www# vi ip.sh

#!/bin/sh
MYIP=`curl -s http://212.117.175.194/simple/`
NSIP=`host 1cru.ru | grep address | awk '{print $4}'`
if [ $MYIP == $NSIP ]
    then
        exit 1
    else
        curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=1a2b3c4d5e6f7a8b9c10d11l12f13a14b15c&domain=1cru.ru&record_id=5099342&content=$MYIP"
fi
Не забываем заменить 1cru.ru – на свой домен, а так же
token= a2b3c4d5e6f7a8b9c10d11l12f13a14b15c
record_id=5099342

Делаем созданный файл исполняемым, что бы он выполнялся при загрузке в случае системных сбоев

Код: Выделить всё

www# chmod 555 ip.sh
Добавляем запись в планировщик с запуском каждые 10 минут:

Код: Выделить всё

www# crontab –e

# my public ip address send to yandex.ru every 10 min
*/10    *       *       *       *	/usr/local/etc/rc.d/ip.sh
Как показывает практика частоту обновления можно выставить большую, например 30 минут и более, т.к. при постоянном подключении публичный адрес может не меняться и неделю.

Прошу прощения за возможные ошибки – это моя первая статья. Жду ваши отзывы, предложения, пожелания.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение Bayerische » 2012-02-09 6:41:48

Процесс оперативной смены IP для виртуальных хостов nginx или Apache так же интересен.

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2012-02-09 10:22:58

Bayerische писал(а):Процесс оперативной смены IP для виртуальных хостов nginx или Apache так же интересен.
Если я правильно понял вопрос: Будет ли оперативно меняться ip адрес для виртуальных хостов?
Ответ – да, если адрес один для всех виртуальных хостов.
Если адресов для виртуальных хостов несколько, то можно модифицировать скрипт.
В моем случае 1cru.ru это реально работающий на домашнем сервере домен на апаче в качестве виртуального хоста. Насколько я знаю на одном ip можно завести очень большое кол-во виртуал хостов.

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение Bayerische » 2012-02-09 10:35:51

Я про то, что в файле vhosts.conf содержатся записи вида

Код: Выделить всё

server {
    listen ххх.ххх.ххх.ххх:80;
    server_name сайт.ru
для каждого домена. Это надо скрипт придумать, чтобы IP в файле и перезапускал сервер.

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2012-02-09 11:05:48

Bayerische писал(а):Я про то, что в файле vhosts.conf содержатся записи вида

Код: Выделить всё

server {
    listen ххх.ххх.ххх.ххх:80;
    server_name сайт.ru
для каждого домена. Это надо скрипт придумать, чтобы IP в файле и перезапускал сервер.
А зачем там указывать ip – можно обойтись и без него – вот моя запись:

Код: Выделить всё

<VirtualHost *:80>
    ServerAdmin allseen@gmail.com
    DocumentRoot "/home/1cru.ru/www/"
    ServerName 1cru.ru
    ServerAlias www.1cru.ru
    ErrorLog "/var/log/www.1cru.ru-error_log"
    CustomLog "/var/log/www.1cru.ru-access_log" common
</VirtualHost>
Более того я сей час поднял таким макаром и второй домен 1SRU.RU

Код: Выделить всё

<VirtualHost *:80>
    ServerName 1sru.ru
    ServerAlias www.1sru.ru
    ServerAdmin allseen@gmail.com
   DocumentRoot /home/1sru.ru/www/
    ErrorLog "/var/log/www.1sru.ru-error_log"
    CustomLog "/var/log/www.1sru.ru-access_log" common
</VirtualHost>
Т.е. два виртуал хоста работают замечательно на одном ай-пи без указывания адресса в настройках виртуал хоста.
Единственная модификация в скрипте – добовляются строчки обновления второго, третьего и т.д. доменов на яндексе.

Код: Выделить всё

www# cd /usr/local/etc/rc.d
www# vi ip.sh

#!/bin/sh
MYIP=`curl -s http://212.117.175.194/simple/`
NSIP=`host 1cru.ru | grep address | awk '{print $4}'`
if [ $MYIP == $NSIP ]
    then
        exit 1
    else
        curl -s https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=1a2b3c4d5e6f7a8b9c10d11l12f13a14b15c&domain=1cru.ru&record_id=5099342&content=$MYIP
       curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=2a2b3c4d5e6f7a8b9c10d11l12f13a14b15c&domain=1sru.ru&record_id=7099342&content=$MYIP"
fi

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2012-02-10 11:19:32

Обновленный скрипт:

Код: Выделить всё

#!/bin/sh
MYIP=`/usr/local/bin/curl -s http://212.117.175.194/simple/`
NSIP=`/usr/bin/host 1cru.ru | grep address | awk '{print $4}'`
if [ $MYIP == $NSIP ]
then
exit 0
else
/usr/local/bin/curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token= 1a2b3c4d5e6f7a8b9c10d11l12f13a14b15c&domain=1cru.ru&record_id=5099342&content=$MYIP"
/usr/local/bin/curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token= 1a2b3c4d5e6f7a8b9c10d11l12f13a14b15c&domain=1cru.ru&subdomain=www&record_id=5105256&content=$MYIP"
/usr/local/bin/curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token= 2a2b3c4d5e6f7a8b9c10d11l12f13a14b15c&domain=1sru.ru&record_id=5099342&content=$MYIP"
/usr/local/bin/curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token= 2a2b3c4d5e6f7a8b9c10d11l12f13a14b15c&domain=1sru.ru&subdomain=www&record_id=5105238&content=$MYIP"
fi
Исправления:
1. Указан полный путь к программам
2. Обновление происходит по двум доменам 1cru.ru и 1sru.ru
3. Добавлены записи для обновления сyбдоменов "www", чтобы сайты открывались не только по адресам вида http://1cru.ru, но и по http://www.1cru.ru

Аватара пользователя
escence
проходил мимо
Сообщения: 2
Зарегистрирован: 2012-04-05 13:39:17
Откуда: korolev
Контактная информация:

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение escence » 2012-05-16 12:05:27

простите за подъем, но никак не получается пройти проверку яндекса на владение доменом... пытаюсь это сделать по мануалу яндекса также по третьему способу через почту на яндексе, но автоматически сгенерированная яндексом и вставленная в контактный ящик в регистраторе в whois не проходит наверно ... причем не длинная, не короткая версия адреса почты ... ((((( при указании обычной рабочей почты все норм, обмен сообщениями идет... а как еще подключить домен - даже не знаю ... (( полный новичок, а сервер домашний с динамическим ip через роутер .. регистратор - nic.ru . домен в .ru зоне
in metall we trust !

Аватара пользователя
escence
проходил мимо
Сообщения: 2
Зарегистрирован: 2012-04-05 13:39:17
Откуда: korolev
Контактная информация:

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение escence » 2012-05-23 15:05:26

Ответ чемберлена! (спустя несколько дней)
========================

Здравствуйте!

Прошу прощения за задержку с ответом.

На данный момент из-за введения новых правил для доменов в зонах RU и РФ регистраторы скрывают контактный адрес электронной почты, поэтому подтверждение через контактные данные Whois для таких доменов не работает. Попробуйте указать уникальный контактный адрес в поле «description», если в панели управления регистратора есть такая возможность. Мы запустили проверку владения доменом по этому полю тоже. После внесения информации в «description» нужно подождать некоторое время.
Если в панели управления регистратора домена нет возможности заполнить поле «description», могу предложить Вам выполнить следующее:
1) отключите домен от Яндекс.Почты полностью;
2) снимите домен с делегирования на сайте регистратора домена и подождите пару часов, чтобы информация распространилась по сети;
3) подключите домен к Яндекс.Почте заново;
4) делегируйте домен на DNS серверы Яндекса: dns1.yandex.ru и dns2.yandex.ru.

Через несколько часов домен должен перейти в рабочее состояние. Если этого не произойдёт в течение суток после повторного подключения, сообщите нам, пожалуйста! Мы обязательно разберёмся в причинах.

--

Служба поддержки Яндекса
===============================

в общем-то, к времени ответа поддержки я дотумкал это сам и все получилось.
мануал яндексовский немного странный (для меня) оказался, в итоге шаги такие - сначала прописать днс-ы яндекса в регистраторе, потом в описание whois вписать уникальную почту данную яндексом,все. вчером вписал - утром к 10 все сделегировалось. ввел в а-запись нужный ip, прописал в фря скриптик и к следующему утру вуаля, все пашет и почта яндекса готова к новым ящикам ***@вашдомен.ru
всем спасибо.
з.ы. немонятная штука с тем, что несколько дней мой динмаический ip одинаков ... )
удачи всем в использовании яндекс днс ! )
in metall we trust !


Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение Alex Keda » 2012-05-27 22:40:40

ДНС - тоже =)
Убей их всех! Бог потом рассортирует...

egoroo
проходил мимо
Сообщения: 1
Зарегистрирован: 2013-02-20 18:56:46

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение egoroo » 2013-02-20 19:11:01

Подскажи ты устанавливал на винду если да то уточни как прописывать на шеле ( куда захотить и т.д. подробнее) спасибо. Игорь

greybax
проходил мимо
Сообщения: 1
Зарегистрирован: 2013-04-06 17:05:14

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение greybax » 2013-04-06 17:07:44

на этот http://www.showmyip.com/simple у меня лично не заходит, я сам пользуюсь вот этим http://dns-ip.ru/home/simple

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2013-07-22 12:30:25

egoroo писал(а):Подскажи ты устанавливал на винду если да то уточни как прописывать на шеле ( куда захотить и т.д. подробнее) спасибо. Игорь
Нет не на винду. FreeBSD.

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2013-07-22 12:40:40

greybax писал(а):на этот http://www.showmyip.com/simple у меня лично не заходит, я сам пользуюсь вот этим http://dns-ip.ru/home/simple
На http://www.showmyip.com/simple можно по ip пробовать http://212.117.175.194/simple.
http://dns-ip.ru/home/simple - тоже вариант, но надо парсить (понятно, что и парсить то нечего достаточно одной инструкции, но сам факт) и опять же трафик и вычислительная нагрузка )
Поэтому сделал вот этот полностью текстовый вариант http://pilo.tk/ip

Собираюсь в ближайшее время обновить статью: добавить кое какие возможности.

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2013-07-27 23:34:55

Свершилось, опубликовал новую статью:
http://www.lissyara.su/?id=2242

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение snorlov » 2013-07-28 10:15:04

А где там обратная зона?

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2013-07-28 11:02:51

snorlov писал(а):А где там обратная зона?
Возможности отредактировать файл обратной зоны у яндекса нет. но записи в нем должны быть. т.к. вебадрес открывается прямой. почта с сервера тоже уходит. вот правда на сам сервер почту не пробовал отправлять, пока у меня mx.yandexa

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение snorlov » 2013-07-28 11:11:58

allseen писал(а):
snorlov писал(а):А где там обратная зона?
Возможности отредактировать файл обратной зоны у яндекса нет. но записи в нем должны быть. т.к. вебадрес открывается прямой. почта с сервера тоже уходит. вот правда на сам сервер почту не пробовал отправлять, пока у меня mx.yandexa
Я в том смысле, что обратная зона, это зона ответственности того, кто выдал постоянный ip, а не яндекса, у меня к пирмеру почтовик проверяет есть отправитель в обратной зоне если нет, то это спам, для веба это конечно не актуально...

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2013-07-28 11:36:45

Я в том смысле, что обратная зона, это зона ответственности того, кто выдал постоянный ip, а не яндекса, у меня к пирмеру почтовик проверяет есть отправитель в обратной зоне если нет, то это спам, для веба это конечно не актуально...
Спасибо, за замечание, в ближайшее время попробую настроить почту и поменять mx запись.

Antoxa
проходил мимо

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение Antoxa » 2013-08-07 16:28:45

запилил на сайте тулзу http://dns-ip.ru/Home/DynDns которая меняет А-запись домена делегированного на Яндекс DNS. Работает под винду, код есть на githab'е.

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2013-08-07 18:02:37

Antoxa писал(а):запилил на сайте тулзу http://dns-ip.ru/Home/DynDns которая меняет А-запись домена делегированного на Яндекс DNS. Работает под винду, код есть на githab'е.
А вот и ответ на вопрос:
egoroo писал(а):Подскажи ты устанавливал на винду если да то уточни как прописывать на шеле ( куда захотить и т.д. подробнее) спасибо. Игорь
Спасибо, Antoxa за работу, но винда не совсем правильная ось для сервера ИМХО.

Александр
проходил мимо
Сообщения: 3
Зарегистрирован: 2013-10-17 22:48:51

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение Александр » 2013-10-17 23:26:55

Хорошая статья, у меня было сначала на яше, mydomain.ru cname blabla.noip.com, потом яша что-то натворил, а супорт сказал, что такие записи не есть гуд. Так как я видел апи днс, думал может кто уже зашарашил скрипт смены А записи. и о чудо))) он тут.

Запустил в скрине, с внешним сайтом.

Но мучают сомнения о правильности такого решения под убунту.
в ней есть папка из которой запускаются скрипты, при падение, поднятие линка итд ситуациях на интерфейсе.

Так как я совершенный дуб в шеле, есть пару вопросов по модификации скрипта, хотя и понимаю что надо осваивать его.

1. как заставить скрипт выполнятся 1 раз. убирал fi, done переставлял местами, не чо не помогает((((

2. не хотелось бы зависеть от внешних ресурсов по определению ип, а команда

Код: Выделить всё

ifconfig $NET | grep "inet addr:" |awk '{print $2} 2>>$LOG'
не к чему хорошему не приводит.
Выполнял в командной строке

Код: Выделить всё

ifconfig eth0 | grep "inet addr:" |awk '{print $2} 2>> /home/my/log
выводится ">" выход по ктр+с, и я так понимаю ее нужно "загнать" в переменую MYIP а тут вообще ахтунг((((

ну а так выглядит

ifconfig eth0

Код: Выделить всё

eth0      Link encap:Ethernet  HWaddr 00:02:e5:aa:aa:bb
          inet addr:00.00.00.00  Bcast:00.00.00.255  Mask:255.255.224.0
          inet6 addr: me85::969h:37ff:fed5:a51c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:205188673 errors:0 dropped:0 overruns:0 frame:0
          TX packets:99925947 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:60323327516 (60.3 GB)  TX bytes:61739405730 (61.7 GB)
          Interrupt:41 Base address:0xe000


помогите люди добрые, сами мы не местные, с убунту)))

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2013-10-18 16:44:59

Александр писал(а):Хорошая статья, у меня было сначала на яше, mydomain.ru cname blabla.noip.com, потом яша что-то натворил, а супорт сказал, что такие записи не есть гуд. Так как я видел апи днс, думал может кто уже зашарашил скрипт смены А записи. и о чудо))) он тут.
Приветствую, Александр.
Рад, что статья чем-то сможет помочь.

Отвечаю по порядку:
Александр писал(а): 1. как заставить скрипт выполнятся 1 раз. убирал fi, done переставлял местами, не чо не помогает((((
1.Скрипт выполняется циклом while, что бы скрипт выполнялся один раз необходимо закоментировать (или убрать) следующие строки:

Код: Выделить всё

while :
do
done
Сам скрипт можно поместить в любой удобной папке например /usr/local/sbin/ip.sh, сделать скрипт исполняемым chmod 750 /usr/local/sbin/ip.sh, и поместить скрипт в автозагрузку — в убунте это делается с помощью файла /etc/rc.local
строку

Код: Выделить всё

/usr/local/sbin/ip.sh
в rc.local помещаем до exit 0
Александр писал(а): 2. не хотелось бы зависеть от внешних ресурсов по определению ип, а команда

Код: Выделить всё

ifconfig $NET | grep "inet addr:" |awk '{print $2} 2>>$LOG'
не к чему хорошему не приводит.
Выполнял в командной строке

Код: Выделить всё

ifconfig eth0 | grep "inet addr:" |awk '{print $2} 2>> /home/my/log
выводится ">" выход по ктр+с, и я так понимаю ее нужно "загнать" в переменую MYIP а тут вообще ахтунг((((
2.На убунту будет работать команда:

Код: Выделить всё

ifconfig eth0 |grep "inet addr:" |sed 's/addr://g'| awk '{print $2}'
именно такую команду нужно помесить в скрипт, т. к. вывод в linux отличается от bsd. Более того конец команды 2 » /home/my/log вывод ошибок в лог, его можно опустить.
Если чего не ясно — жду вопросы.

Александр
проходил мимо
Сообщения: 3
Зарегистрирован: 2013-10-17 22:48:51

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение Александр » 2013-10-30 17:53:44

Спасибо, все более чем понятно. Отличная работа с dns api yandex.
Как говорится счастье только снится, я как понял, есть возможность запускать скрипт по событию dhcp.
Не задавались этим вопросом?

allseen
рядовой
Сообщения: 12
Зарегистрирован: 2012-02-08 17:34:26

Re: Домашний веб-сервер и ДНС Яндекса

Непрочитанное сообщение allseen » 2013-10-30 19:45:07

Александр писал(а):Спасибо, все более чем понятно. Отличная работа с dns api yandex.
Как говорится счастье только снится, я как понял, есть возможность запускать скрипт по событию dhcp.
Не задавались этим вопросом?
Событие dhcp — не совсем корректно.
Я бы сказал просто «факт смены адреса».
Dhcp сервер провайдара может не только менять адрес, но выдать другую информацию, например адрес шлюза, днс и wins сервера и др.
Каждые N секунд скрипт проверяет соответсвует ли твой ай-пи твоему домену, если факт смены есть, то меняются записи днс-сервера яндекса. Если факта нет, то ничего не делает.