- Домашний хостинг сайтов с динамическим IP
- Что делать?
- Используем сервисы которые предоставляют нам DNS-хостинг
- Используем собственный DNS-сервер в связке с DDNS-доменом
- Вывод
- Как настроить DDNS для видеонаблюдения?
- 1 шаг: регистрируемся на сервисе NO-IP
- 2 шаг: переадресация портов маршрутизатора
- 3 шаг: настраиваем DDNS на видеорегистраторе
- 4 шаг: подключаем камеры
- Другие сервисы динамических IP адресов
Домашний хостинг сайтов с динамическим IP
У меня (как и у многих web-разработчиков) имеется с десяток сайтов которые необходимо где-то размещать (хостить).
Сайты практически не приносят прибыли, поскольку это какие-то старые работы (по разным причинам не пошедшие в продакшн), домашняя страница, сайт заведенный красивой почты и тому подобное. Но в то же время эти сайты жалко бросать, а потому приходится каждый месяц на них тратить вполне реальные деньги чтобы покупать хостинг. Деньги, прямо скажем небольшие, но тем не менее их жалко, поскольку отдачи от сайтов никакой нет.
В то-же время в наличии имеется:
- Домашний сервер на Ubuntu
- Быстрый ethernet-интернет от МТС
Но не имеется ключевого — статического IP. Если бы он был, то все было-бы намного проще и данную статью я бы точно не писал. А выдавать статический IP мой МТС абсолютно не желает (если только я не подключусь как бизнес-клиент).
Разумеется есть всем известные Dynamic DNS сервисы вроде noip.com, но они успешно решают лишь задачу удаленного доступа к нашему серверу (по SSH или FTP), но для хостинга совершенно нам не подходят, поскольку в настройках домена на DNS-сервере нам нужно обязательно прописать A-запись с реальным IP-адресом (а не ссылку на наш виртуальный домен).
Что делать?
Я не буду останавливаться на том, как настроить linux сервер (и тем более как его выбрать), поскольку предполагаю, что он у вас уже есть. Также я не буду подробно расписывать настройки nginx и Apache, поскольку опять-таки предполагаю, что вы с этим справитесь самостоятельно.
Первое с чем у меня возникли проблемы — это как перенаправить посетителей с моих доменов (у меня есть 2 домена) на мой домашний сервер. То есть чтобы клиент который набрал domain.com попал ровно на мой домашний сервер с учетом того, что на нем каждый день меняется IP-адрес.
Для решения нам нужно настроить DNS-сервер, а именно следующие записи: SOA, NS, MX, A, CNAME. Важно чтобы мы имели возможность настройкой TTL (time to live), поскольку время жизни наших записей должно быть очень небольшим, буквально 60-120 секунд. В противном случае при смене IP-адреса сервера пользователи долго не смогут попасть на наш сервер (из-за кеширования).
Итак, нам нужен DNS сервер, варианты решения:
- Используем сервисы которые предоставляют нам DNS-хостинг
- Используем собственный DNS-сервер в связке с DDNS-доменом
Рассмотрим оба варианта.
Используем сервисы которые предоставляют нам DNS-хостинг
Для этого есть ряд бесплатных сервисов, из которых самым популярным является freedns.afraid.org. На таких сервисах можно добавить свой домен(ы) и получить возможность через API обновлять у них A-запись при помощи небольшого скрипта.
Выглядит вполне неплохо, но подвох в том, что эти сервисы оставляют за собой право довешивать к вашему домену поддомены третьего уровня. То есть вы зарегистрировали у них user.ru, а они спокойно довешают свои сайты вида hello.user.ru, shop.user.ru и так далее. Разумеется от этого можно отказаться, но… за деньги. Платить деньги за такие сервисы смысла я не вижу, поскольку за сравнимые деньги вы можете купить полноценный хостинг на каком-нибудь провайдере без всяких плясок вокруг DNS настроек.
Остальные сервисы рассматривать не будем, а сосредоточимся на втором варианте.
Используем собственный DNS-сервер в связке с DDNS-доменом
Для этого варианта у нас, во-первых, должен быть DDNS-домен (который обновляется при смене IP), например, domain.ddns.net, а во-вторых, придется установить и настроить BIND на нашем сервере.
Всего необходимо сделать ровно 5 шагов. Везде под словами «domain» или «domain.ru» подразумевается ваше имя домена (короткое или полное).
1. Настроить 2 или 3 DDNS-поддомена
Почему 2 или 3? Потому, что ряд регистрантов не разрешит вам использовать домен только с одним NS-сервером. Самое обидно, что не все про это скажут — ваш домен просто не будет работать, но вы не будете понимать почему.
Тут все просто — идем на noip.com, там регистрируем аккаунт и добавляем 3 бесплатных поддомена (больше 3 не даст).
2. Настраиваем собственный DNS-сервер
Создаем зоны (по одной зоне на каждый наш домен):
и собственно файл с настройками зоны:
Примечание: обращаю внимание, что TTL устанавливаем равным 60 секунд. В файле /etc/bind/named.conf.local добавляем подключение нашей зоны:
Все, рестартуем BIND:
И глянем /var/log/syslog чтобы там не было сообщений об ошибках
3. Настроить наш домен(ы)
Идем в панель управления регистратора и там в настройках нашего домена в качестве NS-серверов указываем созданные DDNS-поддомены:
После этого возможно придется подождать несколько часов (или даже сутки) пока настройки среплицируются между всеми серверами.
4. Настроить периодическое обновление IP-адресов
Мой роутер поддерживает обновление IP-адреса на одном домене, но мне нужно это делать сразу для 3-х доменов. Плюс нам надо обновлять IP-адрес в конфиге BIND’а, поэтому напишем скрипт который будет делать:
- Определять наш внешний IP-адрес
- Проверять изменился ли IP адрес, если не изменился, то ничего делать не надо
- Обновлять IP-адрес у всех DDNS-поддоменов через API сервиса noip.com
- Прописывать новый IP адрес в конфиг BIND’а
- Перезапускать BIND
Сам скрипт пусть будет на шелле:
Скрипт нужно запускать под рутом (чтобы ему хватило прав обновлять конфиги BIND’а и рестартовать его). Добавляем в crontab рута его запуск каждую минуту:
Пару слов про определение текущего IP-адреса. В скрипте выше это делается через резолвинг DDNS-поддомена domain.ddns.net. То есть сначала наш роутер его туда прописывает, а потом мы читаем. Это не очень хороший вариант, поскольку мы завязываемся на роутер и можем потерять несколько минут пока на DDNS-поддомене обновится IP-адрес на актуальный. Все это время наш сервер будет недоступен.
Поэтому у себя я использовал улучшенный вариант, который заодно не лазит в интернет:
В данном варианте мы загружаем главную страницу роутера (через http), дальше регэкспом находим на ней текущий IP-адрес. Разумеется, этот вариант подходит далеко не всем, но на DD-WRT прошивках работает.
5. Настройка роутера
Про необходимость настроить обращение к DDNS-сервису я уже писал, но еще не забывайте про необходимость настроить форвардинг портов на вашем роутере:
- HTTP — TCP, 80-ый порт
- DNS — TCP+UDP, 53 порт
Вывод
Итак, что я получил в итоге:
- Мои сайты живут на домашнем сервере, за который я никому не плачу;
- Мои домены резолвятся через мой собственный DNS-сервер, время жизни записей 1 минута, то есть обновление происходит очень быстро;
- В качестве NS-записей указаны не реальные IP-адреса (которые у меня часто меняются), а DDNS-поддомены;
- Актуальность записей в DDNS-поддоменах и в конфиге моего DNS-сервера обеспечивается автоматически, без какого-либо вмешательства со моей стороны.
По моим замерам, когда МТС (мой провайдер) обновляет мне IP-адрес, то мои сайты начинают работать спустя где-то 2 минуты. Это вполне приемлемо для меня.
Источник
Как настроить DDNS для видеонаблюдения?
DDNS расшифровывается как динамическая система доменных имен, и может преобразовать ваш динамический IP адрес в доменное имя, которое в дальнейшем можно просто прописать в адресной строке браузера с любого устройства, подключенного к интернету, и получить доступ к изображению с камеры.
Содержание:
1 шаг: регистрируемся на сервисе NO-IP
Одним из сервисов, который предоставляет возможность бесплатного создания доменного имени для IP адреса, является Noip.com. Заходим по ссылке на сайт, и в первой строке вам сразу же предлагают ввести желаемое доменное имя. Вводим любое пришедшее на ум название, и нажимаем на зеленую кнопку.
Теперь вас перебросит на страницу с регистрацией. Прописываем имя пользователя и пароль, а также указываем адрес электронной почты, к которому вы обязательно должны иметь доступ, т. к. на него придет ссылка на активацию вашего аккаунта. После того, как все данные были прописаны, нажимаем на кнопку «Create My Free Account».
После регистрации, вы будете иметь свой собственный бесплатный домен (например, nabludaykin.hopto.org), теперь NO-IP предложит вам небольшой путеводитель по необходимым шагам:
- Шаг 1 — Создание имени хоста. (Этот шаг уже завершен);
- Шаг 2 — Загрузите клиент динамического обновления (DUC). DUC хранит имя вашего хоста, и обновляется с текущим IP-адресом. (Вам не нужно скачивать этот инструмент, так как IP-камеры и видеорегистраторы имеют встроенный DUC);
- Шаг 3 – Проброс портов маршрутизатора. На этом пункте мы остановимся поподробнее.
2 шаг: переадресация портов маршрутизатора
Теперь переходим к настройкам роутера. Переадресация портов представляет собой процесс настройки маршрутизатора, для получения доступа к видеорегистратору, камерам или любому другому сетевому устройству с компьютеров и других гаджетов, находящихся за пределами локальной сети. Переадресация портов позволяет закрепить IP-адрес и номер порта для маршрутизации сетевых запросов за конкретными устройствами.
Вам необходимо сделать проброс портов для IP-адреса сетевого видеорегистратора или IP камеры. Для примера, локальный IP-адрес видеорегистратора имеет вид 192.168.0.188, тогда вам нужно перейти к настройкам порта маршрутизатора (обычно находится на вкладке «виртуальный сервер»), и добавить правила переадресации портов. Ниже приведены интерфейсы 4-х наиболее популярных производителей. Имейте в виду, что ваш маршрутизатор может отображать другой интерфейс, но по логической структуре практически во всех устройствах путь до настроек виртуального сервера интуитивно понятен.
3 шаг: настраиваем DDNS на видеорегистраторе
Войдя в настройки вашего видеорегистратора, перейдите в меню Настройки > Сеть > DDNS Setting, установите флажок «Enable DDNS», затем выберите «No-IP» в строке «тип сервера». У каждого производителя оборудования названия пунктов могут несущественно отличаться, но принцип остается тем же.
Заполните вашу информацию об учетной записи сервиса No-IP:
- Тип сервера: No-IP
- Имя сервера: dynupdate.no-ip.com
- Порт: 80
- Имя пользователя: admin@nabludaykin.ru
- Пароль: ******
- Подтверждение: ******
- Домен: nabludaykin.hopto.org
Затем войдите в веб-интерфейс своего видеорегистратора, перейдите в раздел «Параметры сети» > «Настройки DDNS», поставьте отметку напротив строки «включить DDNS», а затем выберите «No-IP» из предоставленного списка. Заполните форму с вашим свободным доменным именем, а затем введите логин и пароль вашей учетной записи.
После завершения вышеуказанных шагов, вы можете посетить ваш NVR с бесплатным доменом с любого устройства, перейдя по указанному вами адресу, в нашем случае nabludaykin.hopto.org.
4 шаг: подключаем камеры
Для правильной настройки DDNS для видеонаблюдения необходимо убедиться, что IP-камеры и видеорегистратор подключаются к одному маршрутизатору, а также находятся в одной локальной сети. Для этого необходимо проверить настройки сети каждого устройства. Вписываем в адресной строке браузера IP адрес каждой камеры, и попадаем в сетевой интерфейс устройства. Здесь нам необходимо привести в порядок IP адреса каждой камеры и поместить их в одну подсеть с видеорегистратором.
Если видеорегистратор мы настраивали следующим образом:
- IP-адрес: 192.168.0.188;
- Маска подсети: 255.255.255.0;
- Шлюз по умолчанию: 192.168.0.1.
Тогда параметры IP камеры должны иметь примерно следующий вид:
- IP-адрес: 192.168.0.21;
- Маска подсети: 255.255.255.0;
- Шлюз по умолчанию: 192.168.0.1.
Рекомендуется отключить функцию DHCP, и вручную настроить параметры сети для каждого устройства, убедившись, что все камеры имеют уникальный IP-адрес, во избежание конфликта IP адресов.
Другие сервисы динамических IP адресов
DNSExit.com. Данный сервис предлагает бесплатный DNS хостинг для ваших собственных доменов. Если у вас нет собственного домена, вы можете также использовать их бесплатный сервис DNS с доменами типа publicvm.com и linkpc.net, после регистрации вы можете получить два бесплатных суб-домена.
DNSExit Является профессиональным поставщиком услуг DNS. Компания предлагает бесплатный динамический DNS-сервис для пользователей во всем мире, и вы можете зарегистрировать свой домен бесплатно, или использовать бесплатный домен второго уровня (суб-домен). Свободный домен второго уровня позволяет создать имя хоста, указать динамический или статический IP-адрес.
Afraid.org. Довольно старый провайдер бесплатного получения DDNS – компания осуществляет бесплатную регистрацию динамических DNS с 2001 года. До сих пор их веб-сайт по-прежнему открыт для свободной регистрации DDNS.
Dyn.com. Один из пионеров области, на сегодня является самым большим и известным поставщиком услуг DDNS. К сожалению, с 2012 года Dyn больше не предоставляют бесплатное обслуживание DDNS.
DynDNS на сегодняшний день является наиболее широко используемой службы DDNS, отчасти потому, что она встроена в прошивку многих маршрутизаторов.
Источник