Comments 94
А я в настройках DNS как раз писал имя виртуального домена (толи в A, то ли CNAME, было давно, не помню), и всё работало. Т.е. выглядело примерно так: домен.ru — DNS регистратора — tra-la-la.dyndns.com — серый_ип. Не знаю должно было так работать, или нет, но проработало пару лет, потом белый адрес появился.
То есть www.domain.com будет работать, тут проблем нет. А вот сам domain.com не будет, поскольку для него обязательно наличие A-записи с реальным IP-адресом. Редирект посредством DNS вы не настроите (на www версию), а web-редирект или rewrite rule опять-таки требуют чтобы посетители попадали на ваш domain.com, а они тут просто не попадают.
Именно чтобы исправить этот недостаток, я и поднимал свой DNS-сервер (что не помогло), а потом в итоге добавил эту злосчастную A-запись.
Bind при попытке указать домен в A-запись (вместо IP) выдаст ошибку. То есть единственный вариант — это вообще не создавать A-запись.
DNS Записи
If a CNAME RR is present at a node, no other data should be
present; this ensures that the data for a canonical name and its aliases
cannot be different. This rule also insures that a cached CNAME can be
used without checking with an authoritative server for other RR types.
RFC 1034 раздел 3.6.2
А корень домена часто имеет MX запись.
Ну, почта для домена часто встречается ;) Но юмор даже в другом. NS — тоже запись.
Для всех доменов, общий принцип. Другое дело, что это остается на совести конкретного DNS сервера. Например, потестил на bind — ругается "dns_master_load: /etc/bind/db.test.ru:13: test.ru: CNAME and other data". С другой стороны, если DNS сервер пропустит такое — то может и будет все работать. Возможно, у вас так и было, тут уже сложно гадать.
А как вы это себе представляете? Есть IP адрес провайдера. На нем сидят несколько клиентов. Допустим, несколько из них запустили web сервер на 80 порту. На какого клиента перекидывать запрос, пришедший извне?
Принцип далеко не нов, тот-же Hamachi так работает, вопрос лишь в том, чтобы задействовать это под наши нужды (хостинг).
Мне кажется, автор не полностью понимает чем отличаются между собой «белый» и «серый» IP адреса.
Белый/серый — оно же реальный/приватный — могут быть как статическими, так и динамическими.
Так что поправьте заголовок и немного текст. У вас обычная задача доступа к серверу с динамическим реальным IP, она несложная. Вот если бы вы действительно с серым (приватным) адресом сайт подняли и сделали к нему доступ из интернета…
У вас обычная задача доступа к серверу с динамическим реальным IP, она несложная. Вот если бы вы действительно с серым (приватным) адресом сайт подняли и сделали к нему доступ из интернета…
Ни в коем случае не преувеличиваю сложность задачи. :) Просто на выходных появилась такая задача, гугл никаких готовых решений не выдал. Поэтому пришлось делать самому, ну и заодно отписал, что и как сделал.
Рассматривал и вариант с VPN-тунелем, но опять-таки надо где-то иметь сервер с статическим IP.
Ни в коем случае не преувеличиваю сложность задачи. :)
С заголовком «Домашний хостинг сайтов за серым IP»? — ну да, ну да :)
Сейчас он поправлен конечно, но мы помним.
(и бинг пока ещё помнит, другие поисковики уже обновились)
гугл никаких готовых решений не выдал
Гугл и не мог выдать готовых решений — вы же искали как отдать наружу домен за серым IP
Сот сейчас статья поправлена и ничем не отличается от тысяч таких же, и при запросе «Домашний хостинг сайтов за серым IP» будет отдана разве что кешированная страничка, вводящая в заблуждение пользователей
Не удивляюсь, что громкие заголовки «делают день» многих, но удивительно, как подобные этой статьи выбираются из песочницы Хабра.
VPS — это получится некий промежуточный вариант — надо и самому с настройкой сервера возится, плюс платить за него каждый месяц.
А про почту — я в итоге пришел к решению от Яндекса — http://pdd.yandex.ru
Там, правда, довольно медленная дисковая подсистема (на vps у hetzner'a сильно быстрее было), но всё же своя железка без соседей (а производительности мне вполне хватает).
Экономические затраты у меня такие: свой домашний сервер стоит уже 5 лет, на нем хранится всяко-разно. То есть я плачу за интернет (50-100Мбит), электричество и железо при любых раскладах. Под хостинг требуются смешные несколько сотен мегабайт места, я просто на SSD-диске это место выкроил (который вообще на 30Гб и предназначен для быстрого запуска Ubuntu).
Про юридическую часть — как я писал в заметке, на этом хостинге живут мои личные сайты. Плюс домены у меня в зоне .org (а не .ru). В общем, в этом отношении я спокоен.
Если на сайте есть хотя бы страниц 500, то Вы удивитесь как часто к вам ходят поисковые роботы
Ну вот, просто ради интереса, сделал несколько тестов чтобы сравнить со своим прошлым хостингом. Использую стандартный ab из пакета Апача, делаю 1000 запросов, 100 параллельно (ab -n1000 -c100).
Сравнивал из дома, так что не обессудьте, что у домашнего сервера будет в этом плане преимущество. Позже постараюсь повторить тест извне.
Делаю 3 теста:
1. CGI-скрипт (Apache + Perl)
Сам скрипт:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "Hello world!\n";
NAS:
Requests per second: 248.15 [#/sec] (mean)
Проф. хостинг:
Time per request: 196.557 [ms] (mean)
2. PHP-скрипт (Apache)
Сам скрипт:
<? echo "Hello world" ?>
NAS:
Requests per second: 503.93 [#/sec] (mean)
Проф. хостинг:
Requests per second: 383.71 [#/sec] (mean)
3. Дергаю статику (картинку)
Картинка имеет размер 3Кб.
NAS (Apache):
Requests per second: 426.04 [#/sec] (mean)
Проф. хостинг (nginx):
Requests per second: 469.61 [#/sec] (mean)
Итог
Разумеется в реальной жизни проф. хостинг будет быстрее. Результаты выше объясняются исключительно тем, что домашний сервер находится ближе ко мне. С другой стороны, я не ожидал, что скорость будет примерно на одном уровне, думал порвут мой NAS как тузик грелку.
Там есть API, все изумительно работает и из под Linux и из под Windows.
Была на хабре пара статей на этот счет.
Даже для Microtik делали DNS апдейт при поднятии PPPoE сессии.
Правда прямо сейчас от меня висит заявка в суппорт Яндекса из-за того, что они время от времени возвращают старую запись зоны (3-х дневной давности). Так что у варианта со своим DNS-сервером есть свои плюсы.
Единственное, что для этого надо почитать доки, найти токен, найти что такое record_id, потом подумать как обрабатывать ошибки. Это все вполне потянет на небольшую статью, с примерами и скриптом обновления.
Например, на роутере с openWRT должен работать.
как, впрочем, и сервер дома держать.
Или, быть может, разработчики не могут позволить тратить 250р/мес на нормальный vps-хостинг?
В то-же время у меня есть свой сервер. Плюс задача мне была интересна и я с удовольствием ее решил на выходных.
Хороший вариант использования: NAS с OwnCloud на пару терабайт.
Автор не знает, как настраивать DynDNS'ы на большинствах роутерах…
Автор не знает, как работает DNS и поэтому лепит велосипед…
И да, экономические издержки спорны, домашний сервер — это не только его покупка, но и содержание, причем не только по администрированию, но и бесперебойному обеспечению электричеством… Я уж молчу про шум и охлаждение…
И да, экономические издержки спорны, домашний сервер — это не только его покупка, но и содержание, причем не только по администрированию, но и бесперебойному обеспечению электричеством… Я уж молчу про шум и охлаждение…
Автор уже 5 лет имеет свой сервер и покупать его надобности никакой нет. Поэтому все комментарии про расходы на покупку, содержание и шум идут мимо.
Могу провести такую аналогию — у меня в гараже стоит своя машина, так зачем мне ездить на такси?
Нравится кататься на своей машине, катайтесь, но как предложение «экономный вариант хостинга своих сайтов» не надо рассказывать…
Покупать сервер только для того, чтобы хостить на нем сайты дома — это бред. Я без понятия почему эту очевидную вещь еще должен доказывать.
В то же время, у кучи людей дома есть какой-нибудь Rapsberry (лично у меня есть odroid c1) или linux сервер на Ubuntu или FreeNAS. Почему бы его не задействовать?..
И да, экономические издержки спорны, домашний сервер — это не только его покупка, но и содержание, причем не только по администрированию, но и бесперебойному обеспечению электричеством… Я уж молчу про шум и охлаждение…
Покупка зачастую не требуется — домашний сервер собирается из старого железа после апгрейда основного компьютера.
Делать это исключительно для хостинга сайтов — да, бред. Но давайте не будет забывать, что домашний сервер может выполнять функции и NAS, торренто-качалки, htpc, git-хранилища, локального DNS, бэкапов. И вот в таком случае появляется вопрос — а может есть альтернативы хостингу, если проект не критичен и ходит на него 2,5 человека?
Опять же, его можно использовать в целях (само)обучения.
Предоставляет DynDNS с бесплатное регистрацией и со всеми необходимыми записями + IPv6 тунели
пользуюсь уже более 3 лет, никаких нареканий, 1 раз были проблемы менее 8 часов (обновляли что то)
стоит добавить, что поддерживается до 50 зон, включая возможность прописать обратные.
апишка совместима dyndns клиентом, либо пользоваться простенькими скриптами.
либо — использовать мощный ddns прокси https://www.dnsomatic.com/, который умеет многое, в т.ч. dns.he.net
Всему учить надо, никто маны не читает. Есть TSIG, есть nsupdate. На DNS-сервере ТОЛЬКО dns-сервер и всё, никаких апачей, кронов и связанных с ними костылей!
Остальные сервисы рассматривать не будем, а сосредоточимся на втором варианте.
А зря, имхо. Выше уже писали про dns.he.net. Решает все проблемы, можно добавить в консольный клиент ddns, так же присутствует во многих программных роутерах тиа PF[OPN]Sense. Только wildcard не поддерживает, приходится руками прописывать.
Выглядит вполне неплохо, но подвох в том, что эти сервисы оставляют за собой право довешивать к вашему домену поддомены третьего уровня. То есть вы зарегистрировали у них user.ru, а они спокойно довешают свои сайты вида hello.user.ru, shop.user.ru и так далее. Разумеется от этого можно отказаться, но… за деньги. Платить деньги за такие сервисы смысла я не вижу, поскольку за сравнимые деньги вы можете купить полноценный хостинг на каком-нибудь провайдере без всяких плясок вокруг DNS настроек.
А вот и нет. У freedns есть возможность добавить домен как приватный и ежели кто-то захочет создать поддомен в вашем домене user.ru, то ему придётся отправить запрос вам. А вы уже решаете — разрешать или нет.
This area is only used if you own domain(s) in the system, of which there are 3 possibilities, based on FreeDNS being a shared DNS system.
1). Shared: Public — If you add your domain as public, this queue will not be used at all, others will be permitted to create subdomains off your domain without involving you.
2). Shared: Private — If you add your domain as private, this is the area you will screen your domains of which you decide to keep, or deny. While domains are in the queue they will function. By choosing this, you agree to only deny those that you deem offensive, or slanderous.
3). Non-Shared: Invisible / Stealth — If you add your domain as stealth (premium members only), your domain will not be available for anyone else but you to use, and this queue will not be used at all. (Becoming a premium member can be done at any time, easily).
То есть если кто-то добавляет свой сабдомен на ваш домен, то вы можете найти этот запрос в очереди и отказаться. Но пока вы этого не сделали, сабдомен будет замечательно работать.
Да и формулировка меня смущает «Выбирая это, вы согласны отвергать только те домены, которые сочтете оскорбительными или клеветническими».
Чтобы такого не было — платите деньги за 3-ий вариант.
Кроме экономической стороны вопроса (о чем не раз упоминали выше) у таких вот «кухонных» серверов есть еще один аспект — безопасность. Лично для меня это все равно, как если б вход в подъезд проходил через мою квартиру. Поэтому я не советовал бы такое пробовать тем, кто не достаточно хорошо продвинут в системном администрировании именно с этой точки зрения.
[/offtop]
Если же на этих сайтах нет трафика — то зачем они в интернете? Сделайте их доступными локально, включил комп — пользуешься. А раз уж трафик есть — можно и монетизировать, а тут уж и на хостинг хватит.
Иметь деньги на свой домен ПЕРВОГО уровня и при этом использовать бесплатные планы на хероках?
Да вы — миллиардер-оригинал.
http://ai/
http://offshore.ai/vince/
Не реклама, а просто личный опыт, т.к. сам пользуюсь ими уже порядка года. Под личные нужды минимального тарифа хватает «с головой». Под небольшой проект с реальными пользователями можно взять 2-3 сервера в разных местах и разнести сайт (почту, или любое другое приложение) по ним (на случай, если важен аптайм).
https://support.google.com/domains/answer/6147083?hl=en
Тоже в итоге перешёл на pdd.yandex.ru — Яндекс надёжен и разрешает 90 секунд TTL.
Написал для этих целей генератор и сервер DDNS-ссылок — secq.ru/ddns (код на GitHub)
Достаточно после смены IP-адреса зайти по сгенерированной ссылке и получить 200 OK.
Для Mikrotik-ов, например: tool fetch url=$ddnsLINK keep-result=no
И не нужно делать костыли.
Я просто хотел дать готовую инструкцию для тех, кто хочет сделать именно так (с DDNS и своим DNS).
Для тех кто хочет сделать иначе (через тот-же Яндекс ПДД), я постараюсь написать отдельную инструкцию, по тому-же принципу — вот вам 5 шагов и радуемся.
https://support.cloudflare.com/hc/en-us/articles/200168816-Does-CloudFlare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely-
https://www.cloudflare.com/technical-resources/#ddclient
Вот собственно и все. ddclient висит себе, когда адрес меняется сообщает его ДНСу. Нет двухметровых простыней ваших костылей, нет подпорок велосипеду и прочего.
Все работает само.
Когда-то я так создал свою файлопомойку. Но теперь я разочаровался в этом подходе.
Первое — это то что канал связи узкий, динамический белый IP тоже надо поискать, домашние постоянно будут норовить вырубить из сети устройство на котором висит сайт, DDOS сложит такой сайт даже не парясь — просто забьют ваш и так ограниченный канал для которого 1,5 пользователя уже DDOS, со светом бывают перебои.
Раньше, когда хостинг был проблемой — то да такой подход имел место, я так диплом сдавал лет шесть назад.
Но блин теперь когда интернет пестрит возможностями для того чтобы разместить свой проект где угодно.
Куча хостеров дают лимитированные бесплатные или почти бесплатные VDS, даже тот же самый Amazone, для типовых проектов есть шаред хостинги, для OpenSource тоже есть варианты.
Так что у меня закономерный вопрос — зачем это сейчас?
Даже такой нищеброд как я может позволить себе аренду сервачка виртуализации у того же hetzner чтобы держать там несколько сайтиков, owncloud, gitlab, vpn и еще пару полезных вещей.
Какой смысл делать все это вручную, если даже старый D-Link может автоматом все это настроить прямо из веб-панели? потом просто пробросить порт на 80 порт своего устройства.
Извиняюсь, что именно позволяет делать старый D-Link? Если что, у меня был D-Link T500 (с родной и кастомной прошивками), но не могу догадаться как он поможет мне хостить сайты.
Первое — это то что канал связи узкий
ADSL да, Ethernet (или оптоволокно) нет.
Куча хостеров дают лимитированные бесплатные или почти бесплатные VDS, даже тот же самый Amazone, для типовых проектов есть шаред хостинги, для OpenSource тоже есть варианты.
Если можно, чуть больше конкретики. Вот мол, такой-то сервис, заходим туда-та, получаем то-то.
Извиняюсь, что именно позволяет делать старый D-Link? Если что, у меня был D-Link T500 (с родной и кастомной прошивками), но не могу догадаться как он поможет мне хостить сайты.
У большиснтва роутеров серии D-link есть вкладва DDNS — которая позволяет автоматом привязать домен к роутеру, что и делает в ручную автор статьи. Точную модель роутера я не скажу, так как я отдал его уже года 2 назад.
ADSL да, Ethernet (или оптоволокно) нет.
Хорошо — тут вы меня уделали, у меня до сих про ADSL
Если можно, чуть больше конкретики. Вот мол, такой-то сервис, заходим туда-та, получаем то-то.
Берем AWS micro инстанс — он будет стоить первый год почти ничего
Мелкомягкие тоже дают облако попробовать https://azure.microsoft.com/en-us/free/?b=16.43
OpenShift дает машины пока у них preview https://www.openshift.com/devpreview/register.html
Стоит ввести free vds в гугл — увидим кучу ресурсов, которые их предоставляют.
@ IN NS domain.ddns.net.
@ IN NS domain.ddnsking.com.
@ IN NS domain.myftp.biz.
То есть обработка запроса выглядит примерно так:
- Некий человек открыл свой браузер и ввел там имя forums.domain.ru
- Данный запрос будет обрабатываться с конца, то есть сначала будет произведен поиск DNS-сервера который обрабатывает .ru домены
- Потом будет найден DNS-сервер который обрабатывает domain.ru домен (это как раз и будет наш собственный сервер)
- И вот уже на наш DNS-сервер придет запрос, мол «что за forums.domain.ru»?
Спасибо. Статья интересно написана и содержит полезную информацию. В комментариях от 2016 года много вопросов про затраты на электроэнергию, но сейчас 2024 и возможность поднять веб сервер на одноплатнике на arm, я думаю, решает вопрос с ценой электроэнергии. Ведь они потребляют около 10 ватт плюс минус. Это совсем мало.
А вот вопрос того, что у beeline, например, на домашнем интернете мы все сидим за NAT, наверное, остается. И порты 80 и 443 без сложностей не открыть, они же тоже за NAT скрыты.
А есть точно такая, но актуальная инструкция, с учетом нынешних реалий?
Домашний хостинг сайтов с динамическим IP