Веб-разработка

индекс
236,88

Связываем домен и динамический IP

Что мы имеем:
1. компьютер с осью и установленными mysql, apache, php (тут ничего писать не буду, благо мануалов хватает)
2. интернет с присваиваемым динамическим IP, роутер.

Что мы хотим:
1. Что бы люди вбивая в адресную строку браузера доменное имя второго уровня (купленное нами или полученное на каком либо сервисе), попадали на наш сайт (в независимости от того на каком IP он сейчас находиться).
2. Хотим это бесплатно.

Итак, то как это было реализовано мной в виде краткой инструкции можно прочитать под катом, быть может кому-нибудь это пригодиться или просто-напросто будет интересно. Так же, буду рад объективной критике. Спасибо за внимание, и кому интересно добро пожаловать под хабракат.



Поехали:

1. Регистрируемся на сайте dyndns (стоит заметить что бесплатная регистрация на этом ресурсе требует обязательного посещения его раз в 30 дней, иначе будет удалена, так что если для для вас это большое неудобство, альтернатив хватает, некоторые названы в комментариях, остальные легко можно найти воспользовавшись поисковиком)
2. Добавляем там хост типа Любое_Имя.dyndns.org c текущим вашим внешним IP.

Далее пункт 3.1 или 3.2 на выбор:

3.1. Скачиваем тулзу с сайта dyndns https://www.dyndns.com/support/clients/ которая каждый раз как вам будет присвоен новый айпи, будет связывать его с полученным адресом типа Любое_Имя.dyndns.org

3.2 В настройках роутера настраиваем Dynamic DNS (если данная настройка в роутере присутствует то лучше все же выбрать именно этот пункт нежели доверять работу программе)

image

4. Получаем доменное имя. *Тут кучу бесплатных решений вам поможет найти гугл, ну и если доменное имя у вас уже есть, то пропускаем этот пункт. В любом случае далее по тексту я буду называть его «Наше_Доменное_Имя.com»

5. Регистрируемся на сайте zoneedit
6. Добавляем новую зону, удаляем все настройки зоны в разделах MailForward и Mail Servers, а в разделе Aliases (CNAME) прописываем 2 перенаправления:
одно, Наше_Доменное_Имя.com < — Любое_Имя.dyndns.org
второе, www.Наше_Доменное_Имя.com < — Любое_Имя.dyndns.org

image

7. На zoneedit в разделе Viev, смотрим Nameservers, и прописываем их как NS-сервера у нашего поставщика домена.

image

8. В настройках роутера делаем переброс для 80того порта на внутренний айпи. (тут если что не понятно так же дорога в гугл, мануалов для различных роутеров так же хватает) В дополнение приведу только скриншот:
image

9. И что бы внутренний айпи был неизменным в настройках роутера (Network > LAN > Client List) привязываем его по мак адресу.

image

10. Все, ждем от пары часов до пары суток пока zoneedit и поставщик доменного имени скушают изменения и наслаждаемся результатом.

Теперь вбивая в адресную строку браузера Наше_Доменное_Имя.com, либо же www.Наше_Доменное_Имя.com, пользователь будет видеть то что поднято на apache сервере в независимости от того какой IP присвоил провайдер.
+82
9 августа 2010, 23:22
316

комментарии (117)

+1
drayv #
для кого это может быть удобно и интересно, конечно же для начинающих которые хотят без аренды серверов тренироваться в построении и написании сайтов.
+4
Kane #
Не только для этого. Например, удобно получать удалённый доступ к своей машине дома когда не знаешь её ip.
+4
drayv #
ну для этой цели хватит и одного dyndns.org или no-ip.org
+5
liaren #
В таком случае можно воспользоваться Teamviewer
+3
NeonXP #
Если с КПК, и через ssh или на веб морду торрентокачалки, то TeamViewer не поможет.
0
SabMakc #
iPhone / iPad они поддерживают ;)
А так — да, решение не столь универсально. Хотя если ты за NATом, то круг решений очень стремительно сужается.
0
NeonXP #
А андройд нет… Кстати еще как вариант можно немного раскошелиться на VPN большинство современных КПК поддерживают как минимум PPTP… Зато будет практически прямой доступ по любому протоколу, хоть RPD, хоть VNC, хоть SSH, хоть на вебморду.
+4
Droy #
Спасибо. Нужный сервис.
+1
drayv #
И вам спасибо за знак того что не зря старался.
+2
Naps #
Вы открыли для себя cname?
0
drayv #
я открыл для себя zoneedit.)
–1
osj #
5 зон на zoneedit маловато
0
drayv #
для поставленной цели достаточно ведь,
0
Plone #
Согласно их новостям, с осени — две, вроде бы.
0
LeiDruid #
Откройте для себя freedns.ws или ypdns.com
0
drayv #
спасибо, обязательно попробую.
+1
r0ster #
+ freedns.afraid.org
А про zoneedit… сервис хороший (был?), но не очень удобен, сужу по своему опыту.
(А про 2 зоны, которые будут с осени (вместо 5 прежних), можно увеличить по-моему. Если заплатить че-то там, либо просто попросить… в общем для меня это не важно. Т.к. есть, DNS регистратора, zoneedit и ypdns).
0
drayv #
freedns.afraid.org *в закладки*
а про zoneedit, сервис хороший до сих пор, ну, по своему опыту.
+1
r0ster #
Он хороший, не спорю, но становится «попсовым», взять то же ограничение вместо 5 бесплатных зон, станет 2. Пробуйте, и выбирайте лучшее :) Я свой выбор сделал :)
0
osj #
dnsы freedns.ws лежат пару дней. яб туда даже не совался…
0
LeiDruid #
с моими зонами все нормально :)
0
osj #
вчера днсы резолвили на гугловские 8.8.8.8
НЛО прилетело и опубликовало эту надпись здесь
+1
drayv #
тут вопрос как раз стоял в бесплатности, так как сайт поднимался в образовательных целях. Бедные студенты, все дела.
НЛО прилетело и опубликовало эту надпись здесь
+3
Droy #
А у нас провайдер нормально статический IP выдать не может =/
НЛО прилетело и опубликовало эту надпись здесь
0
drayv #
к примеру?
НЛО прилетело и опубликовало эту надпись здесь
0
Kane #
Не силён в вопросе, но разве TTL выставляют не для того, чтобы сказать dns серверу когда пора забыть кэшированные данные?
+1
QuickAurum #
Для этого, но есть жадные провайдеры которые экономят даже на днс-запросах и ставят пренудительно TTL до суток. И домовые сетки, и крупные адслные.
0
jonijones #
Да есть такая проблема. Особо не на пользуешься.
0
GenaB #
Наверное, у разных провайдеров разные цены. У меня он стоит 30 рублей в месяц.
0
Naps #
Дефолт-сити, Билайн (Корбина) — 130р. в месяц.
0
GenaB #
У меня нетбайнет в том же городе.
–2
EugeneBond #
в этом мире без вложений никогда ничего большого и хорошего не добъешься. рано или поздно, но прийдется вкладываться, а привыкать стартовать с «кривоватых, но зато бесплатных» решений не очень хорошая тенденция (хотя уже традиция)
0
5erg #
Да, но ведь городские провы распоряжаются адресами, как хотят. У нас, в Киеве, никто стабильно два года адрес не держит :-(
другое дело — купить дефицитный провайдеронезависимый (PI IP) адрес. Но ведь их на всех не напасешься :-(
НЛО прилетело и опубликовало эту надпись здесь
–1
5erg #
а если сайтов — больше полсотни, то сколько записей нужно менять? :-)
НЛО прилетело и опубликовало эту надпись здесь
0
ergil #
один из них прописываете, а остальным говорите, что они CNAME на него ))
и усе ))
0
freemandigger #
Если на сайтах используется почта то могут возникнуть проблемы т.к. PTR запись будет показывать на другой домен.
0
khizhaster #
Даже не знаю в каком вы Киеве :) Друг подключен к IP-Net уже четвёртый год, если не ошибаюсь, у него статика фиксированная всё время. У меня уже 2 года LocalNet, тоже самое, $12/мес — 15 Мбс, статика бесплатно.
0
drayv #
указанные провайдеры находятся по спальным районам, попробуйте найти что-нибудь подобное по ценовому решению в центре города ;)
0
mihmig #
Привязка к конкретному провайдеру — потенциальная уязвимость сервиса
+5
bondbig #
млин, по затравке подумал, что будет статья по написанию собственного сервиса динамического ДНС.
+1
TheMengzor #
Добро пожаловать в эти наши Интернеты!

По делу: для POSIX систем самый ништяковый вариант — ddclient.
0
Vitvitsky #
в убунте пользовался( ставил вордпресс), полезная штуковина,
да и честно говоря, полно статей подобной этой существует в интернете
0
TheMengzor #
Поэтому не понимаю, как статья оказалась в +54 :)
Хабрапипл не поймешь.
0
osj #
лет 5 назад помогал народу такое проворачивать, но не думал что народ про это не слышал и не умеет пользоваться
0
Vladson #
Давно пользуюсь, только довольствуюсь доменом третьего уровня предоставляемого сервисом (для серьёзного проекта использовать домашний комп это разврат, а для странички-заглушки и третий уровень сойдёт) стоит только не апач а nginx (нравится больше) и сервис юзаю не dyndns.org а no-ip.org

(адрес не даю, канал на закачку меньше мегабита, «хабрэфект» меня убьёт просто)
0
drayv #
именно из этих соображений и не светил собственный.)
+1
EzS #
Это решение хорошо для демонстрации работ над web-проектами (показать заказчику ход работ или финальный результат). А держать сайт постоянно на таком варианте, не есть гуд-)
0
drayv #
согласен на все 100% Статья и писалась ориентировочно для таких вот «домашних» целей без лишних затрат.
0
Vladson #
Для «домашних» инструкцию можно сократить (опустить танцы с доменом второго уровня, ибо не нужно оно) и больше уделить внимание тому что опущено. (в том числе и тому что сервисов подобных не мало, с разными доменами на вкус и цвет)

Следует думаю так-же пояснить что выбор между 3.1 и 3.2 чаще всего не стоит, если 3.2 доступен, то стоит им воспользоваться.
–1
EzS #
Роутеры Zyxel поддерживают почти все
0
Vladson #
Вообще почти все на сегодняшний день поддерживают, но нельзя забывать что есть люди (хоть их и не так много) которые пользуются «действительно» древним железом. (просто по принципу «работает не трогай»)
0
drayv #
думал что выбор в этом случае очевиден, но спасибо, кое-что подправил.
–19
Ueasley #
Отличная статья, открыл для себя много нового! Спасибо!
–20
Ueasley #
Да хорош плюсовать, статья говно.
+1
proshev #
не нравится, не читай. наверняка кто-то почерпнул что-то новое для себя
–2
Ueasley #
Не понравилось, не прочитал, высказал свое мнение.
0
drayv #
не прочитал и высказал мнение, гениально.)
–1
Ueasley #
Учитывая то, что мне не понравилось, ты мог бы догадаться, что немного все же прочитал.
0
iDenfnatic #
В faq еще не хватает вроде мелочи, но нужной вещи. На роутере работает DHCP(не факт, но у многих), которых динамически раздает IP-адреса. Желательно привязать компьютер с веб-сервером по mac-адресу.
0
drayv #
да, кстати да, делал такой пункт, спасибо что напомнили, иначе пересылка портов на айпи была бы бессмысленна (а вдруг он измениться). сейчас подправлю.
0
nitro80 #
А разве dhcp-сервер не должен автоматом продлевать аренду?
Я сейчас как-раз впервые настраиваю всё всерьёз и надолго, этот вопрос важен.
0
iDenfnatic #
Перезагрузил компьютер, перезагрузил роутер и кто-то быстрей подцепился получил нужный IP.
0
sasha_gud #
В большинстве даже дешевых маршрутизаторе настроить фиксированный IP серверу можно без проблемы.
–6
soloveynet #
Спасибо за инфу, не думал что на динамическом ip можно поднять веб-сервер. Плюсанул бы, да нет возможности…
+3
WandererWDR #
Традиционно.
0
drayv #
упс. простите фотографа, уж по привычке.
+2
seriyPS #
Да что уж там… Посмотрите где картинки хостятся! картинкохостинг вконтакте)))
0
Disturbed #
зато не страшен хабраэффект :D
0
seriyPS #
Кстати, интересно стало… можно ли имея домен 2-го уровня на webnames.ru, создать поддомен 3 уровня с динамическим IP, чтоб при этом второй уровень ссылался на другой статический адрес?
+1
Mithgol #
Несомненно.
0
seriyPS #
Как? Где почитать?
+4
Mithgol #
1) Регистрируемся на каком-нибудь сервисе, дающем бесплатный DNS. (Например, Zerigo.)

2) Регистрируемся на каком-нибудь сервисе, дающем динамический DNS. (Например, DynDNS.DK.) Когда динамический DNS корректно обновляется сведениями о динамическом IP, то динамическому IP будет соответствовать наше динамическоеИмя.dyndns.dk

3) В бесплатном DNS прописываем A-запись, в которой сказано, что нашеИмя.Ru соответствует нужному статическому адресу.

3) В бесплатном DNS прописываем CNAME-запись, в которой сказано, что поддомен3уровня.нашеИмя.Ru соответствует динамическоеИмя.dyndns.dk

4) Сообщаем webnames.ru, что поддержанием нашего домена занимается бесплатный DNS, указывая список его серверов (в примере с Zerigo этот список состоит из пяти серверов: a.ns.zerigo.net, b.ns.zerigo.net, c.ns.zerigo.net, d.ns.zerigo.net, e.ns.zerigo.net).

Всё, задача решена:

нашеИмя.Ru → статический IP,

поддомен3уровня.нашеИмя.Ru → динамическоеИмя.dyndns.dk → динамический IP.
+1
Malerok #
Зачем такие заморочки с динднс, есть более простой способ _http://freedns.afraid.org/ принцип тот же самый. Качаем прогу, регаем домен сразу любого уровня и готово.
+2
Mithgol #
Есть тонкий нюанс: размещая ВашеДоменноеИмя.Ru на DNS-серверах FreeDNS.Afraid.org, Вы соглашаетесь по умолчанию (оставляя ему статус «Public») с тем, что любой другой пользователь FreeDNS.Afraid.org сможет создать егоИмя.ВашеДоменноеИмя.Ru (то есть свой домен верхнего уровня в Вашем домене).

(Надеюсь, Вы читали тамошнее соглашение об услугах? Или, как всегда, согласилися не глядя?)

Обратите внимание: в тамошнем реестре десятки тысяч доменов, для некоторых из которых созданы десятки тысяч поддоменов третьими лицами.
НЛО прилетело и опубликовало эту надпись здесь
0
hox #
NAT, я так понимаю, идет лесом, т.к. провайдер не дает доступа к нему
0
sam_reaper #
пригодилось
0
Honeyman #
Спасибо. Наконец-то можно отказаться от Custom DNS :)
0
CoF #
Без обратной зоны ваш веб-сервер сгодится только для хоумпейджа.
0
WolfBespredel #
Недавно тоже заморачивался по этой теме, когда нужно было поднять онлайн радио в локале билайна, но потом выяснил, что у билайна локальные адреса статика, если только не меняется мак адрес, поэтому всё закончилось регой на ноу айпи и установкой их проги и дальнейшим удалением за ненадобностью… Просто прописали в нс мой айпи и всё…
+1
drayv #
не знаю с каким поставщиком доменного имени вы работали но у меня требовал как минимум 2 NS сервера, одним вашим айпи дело тут не обошлось бы,
0
Eugney #
Что мешало сделать 2 NS сервера на одном ip? ns.example.com, ns2.example.com. Я понимаю, что так делать нехорошо, но всё же.
+1
NeonXP #
проверяется уникальность по ip и непринадлежность к одной и той же подсети класса C.
+4
zerkms #
а как у вас получилось cname на первый уровень назначить? по регламенту управления ДНСом ведь не должно вроде, не?
0
litos #
Кстати, да, example.com нельзя прописать на CNAME, можно только www.example.com (ну или любую другу запись вместо www), по крайней мере если такую запись сделать в конфиге BIND вручную, то зона вообще не будет работать, а в случае использования других DNS-серверов, то просто запись не работает.
0
drayv #
ну как видите zoneedit сама при добавлении одного CNAME разбивает его на example.com и www.example.com
–4
Sergun #
это, кстати, будет также работать и не только для apache :)))
IIS + ASP.NET тоже взлетит, ровно как и всё остальное :)
0
Eugney #
В зависимости от роутера, возможно, также придётся добавить для фаервола правило, разрешающее трафик WAN -> LAN на 192.168.1.33:80 (в вашем случае).
0
NeonXP #
Приглядитесь внимательно к 8му пункту. Это именно оно. Там пробрассывается внешний 80 порт роутера на 80 порт компа в локалке за роутером.
0
Eugney #
В роутере Zyxel Prestige 660H-T1 мало пропросить порт, надо ещё добавить правило фаервола.
0
NeonXP #
Крайне странное решение, не находите? Ну у большинства (имхо, D-Link очень распространнен) и у моего асуса такой проблемы нет.
0
Eugney #
Меня не удивляет это решение, потому что если, например, есть локальная сеть за NATом, и надо пробросить порт, то проброска порта в какой-нибудь фряхе не избавляет от необходимости настраивать фаервол.
ПРосто в новых моделях роутеров это просто делается автоматически.
0
NeonXP #
Вот я про то и говорю, что странно, что сделали не автоматом это. Советую сделать скриншот, где это необходимо проставить и отправить автору топика, чтобы он сделал сноску.
0
drayv #
если есть фаервол.)
0
murka3000 #
Давно пытался сделать абсолютно тоже самое, но оставил эту затею, не сумев настроить на отличный от 80-го порт.
Может всё-таки есть возможность? Я так понимаю, dyndns просто по-умолчанию обращается к 80-му порту, я ошибаюсь?
0
msfs11 #
dyndns пофигу на порты. у меня стрим, 80 порт закрыт, я сделал проброс 999 на локальный 80.
domdev.ru/post/detail/2/
0
murka3000 #
Ок, протокол http по-умолчанию обращается к 80-му порту.
Это означает, что невозжможно настроить какой-либо домен, чтобы он обращался к другому порту?
+1
msfs11 #
протокол с портом ничем не связан, кроме общепринятых соглашений. можно обратиться по любому протоколу к любому порту.
в общем, сделать так, чтобы при запросе адреса без явного указания порта он открывался с другого порта — сделать невозможно.
0
SabMakc #
9. И что бы внутренний айпи был неизменным в настройках роутера (Network > LAN > Client List) привязываем его по мак адресу.
Лично я тут указал DHCP, чтобы он раздавал IP начиная с 10 адреса. При этом нужной машине просто статический адрес присвоил (из 1го десятка). В принципе, плюсы и минусы у обоих методов есть.
+2
naryl #
Предпочитаю afraid.org Его обновлять раз в месяц не нужно.

freedns.afraid.org/scripts/freedns.clients.php
0
monoxrom #
Интересно, как раз то что мне надо! спасибо!

интересно только на этом «зонеедит» только один раз надо прописать сайты, или если когда то зонеедит закроют то все перезаписи тоже пропадут?
+1
r0ster #
Если вам завяжут глаза, вы сможете видеть?
0
denlem #
Да, отличный выход, если нет статического IP
НЛО прилетело и опубликовало эту надпись здесь
0
Andrusha #
За 130 рублей можно хостинг прикупить.
0
Softovick #
Если нет статического IP — замечательный вариант… Разве что я предпочитаю пользоватся no-ip.com — в отличие от DynDNS на ихнем сайте можно найти скрипты клиентской части под любую операционку (проверено на Ubuntu, работает). А с учетом того, что у меня в модемах и роутере поддерживалась почему то нормально как раз No-IP, а DynDNS работал как то кривовато — выбор для меня очевиден… Да и интерфейс управления No-IP мне показался более понятным.
0
Rulin #
Стоит также упомянуть что dyndns с недавнего времени удаляет бесплатные аккаунты, если в течении 30 дней вы не разу в него не заходили (не авторизовались на сайте), соответственно и ваши домены тоже удаляются
–1
drayv #
да, есть такой недостаток. но к сожалению на аппаратном уровне мой роутер поддерживает только этот ресурс, по этому его и предпочитаю.
0
drayv #
P.S: добавил пару слов об этом нюансе в топик.
НЛО прилетело и опубликовало эту надпись здесь
0
drayv #

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.