Ну, про хостинг я, конечно же, несколько преувеличил. Это были первые слова одного моего знакомого, которому я рассказал об этой услуге «Укртелекома»: «так это же можно собственный хостинг организовать».
Не так давно на официальном сайте «Укртелекома» нам объявили о введении новой дополнительной услуги для абонентов, подключенных к Интернету по технологии ADSL. Достаточно, нужно сказать, полезная услуга этот «Динамический DNS». По сути дела, эта услуга решает проблему с отсутствием выделенных IP-адресов в сети «Укртелекома» (вообще такая услуга была, но года с 2010-ого на запросы о выделении IP-адреса стали отвечать отказом): без выделенного IP-адреса не получится поднять на своем компьютере ни файловый сервер, ни почтовый узел, ни какую-нибудь там систему видеонаблюдения, поскольку вся эта красота будет работать лишь до тех пор, пока через 24 часа с момента открытия сессии она не закроется автоматически системой учета. После открытия новой сессии абоненту будет выделен новый IP-адрес, а какой ― мы не знаем и даже не можем предугадать, так что без ухищрений здесь было не обойтись. Есть, конечно, DynDNS, но это тоже не 100% гарантия, так как мне известны случаи, когда IP-адрес на сервере DynDNS обновлялся с большой задержкой из-за того, что программа, которая этим занималась, несколько тормозила, да и к тому же не во всех ADSL-модемах есть встроенный клиент DynDNS, с которым, безусловно, работать намного удобнее, чем с вышеупомянутым клиентом для ОС.
Теперь же нам достаточно лишь зайти в «Мой Укртелеком» и заказать дополнительную услугу «Динамический DNS». После этого в течение нескольких часов (надо бы перезагрузить модем через некоторое время после заказа услуги) для абонента будет объявлен субдомен в зоне ddns.ukrtel.net, в записи «A» которого будет значится тот IP-адрес, который присвоен абоненту в данный момент. То есть, грубо говоря, этот домен всегда будет ссылаться на тот IP-адрес, под которым сейчас работает абонент, при этом сам адрес нам даже знать не нужно. Есть, правда, один минус: в DynDNS данные обновляются раз в минуту, в этой же услуге обновление происходит лишь раз в пять минут, благодаря чему после изменения IP-адреса при разрыве сессии будет пятиминутная задержка, в течение которой при обращении к домену ничего не откроется.
И при чем же здесь хостинг ― спросит абонент. Теперь смотрите: регистрируем домен у регистратора, панель управления которого поддерживает правку DNS-записей, после чего объявляем для домена две записи «@.domain.example» и «www.domain.example» типа CNAME со значением, равным доменному имени, которое Вы заказали в «Моем Укртелекоме» (например, example.ddns.ukrtel.net). Через некоторое время кеш DNS обновится и если Вы введете в адресную строку своего браузера «www.domain.example», то подключитесь к своему же компьютеру, на котором уже следует разместить HTTP-сервер. На базе сервера Apache, к примеру, Вы сможете создать неограниченное количество виртуальных хостов (то есть, разместить на своем сервере столько доменных имен, сколько пожелаете), которые будут иметь свои домашние директории и свои параметры. Также советую создать виртуальный хост «example.ddns.ukrtel.net» (вместо «example» выбранный Вами субдомен), который перенаправлял бы посетителей на основное доменное имя, так как в противном случае есть вероятность того, что этот домен также попадет в поисковой индекс, а размещать в таком домене что-то, я думаю, не комильфо.
Все сделали, а ничего не работает? Тут есть еще нюансы. Во-первых, проброс портов на модеме. Если у Вас модем от D'Link, то Вам, возможно, покажется, что ничего не работает, но это не так. Для начала нужно зайти в панель управления модемом, после чего перейти в раздел расширенных настроек и объявить виртуальный сервер в настройках NAT. Для того, чтобы это сработало, нужно сначала назначить Вашему компьютеру постоянный внутренний IP-адрес. Для этого открываем свойства подключения к Интернету и в настройках IPv4-адреса выбираем настройку вручную. Указываем IP-адрес, например, 192.168.1.20, и в качестве адреса шлюза тот IP-адрес, на котором у нас работает администраторская панель модема. Без ручного указания DNS-серверов тут ничего не получится, так что указываем публичные сервера Google: 8.8.8.8 и 8.8.4.4. Сохраняем и возвращаемся к настройке модема. Здесь нам нужно указать внешние порты и внутренние. Внешний порт ― это порт, к которому придет запрос от внешнего посетителя; внутренний порт ― это порт на Вашем сервере, куда посетителя стоит направить. Так как мы работаем с HTTP-сервером, то указывать будем восьмидесятый порт, причем везде. В качестве внутреннего IP-адреса сервера следует указывать тот, который мы вводили в настройках сетевого подключения (в моем примере это 192.168.1.20). Перезагружаем модем из меню. После перезагрузки Вы, конечно же, ожидаете увидеть страничку «It works!», введя в адресной строке браузера свой домен, однако такого не будет. Дело в том, что все модемы D'Link с которыми я работал перенаправляют трафик на внутренний сервер только для внешних подключений, для пользователей, подключенных же к Интернету через этот самый модем на восьмидесятом порту всегда бедт работать панель управления модемом, а другие порты просто будут молчать. В этом нет ничего страшного, так как все кроме Вас на Вашем домене все-таки будут видеть именно то, что и задумывалось. Изменить эту ситуацию можно правкой «hosts». В Windows этот файл находится где-то в «C:\WINDOWS\System32\Drivers\Etc», пользователям же Linux разработчики жизнь особо не осложняли и разместили файл по адресу «/etc/hosts». В этот файл Вы должны записать тот самый внутренний IP-адрес, который в моем примере выглядит как 192.168.1.20, а рядом с ним домен, на котором должен работать Ваш сайт. Если доменов несколько, то повторить процедуру нужно столько раз, сколько доменов нужно заставить работать, причем каждый следует указывать с новой строки. Этот прием прекрасно годится для нормального проброса портов на модемах D'Link DSL2500U и DSL2540U, на остальных не тестировал.
Если сайт все-равно не открывается ― перезагрузите компьютер. Быть может, не вступили в силу обновления настроек сетевого подключения. Если и после перезагрузки ничего не работает, то Вам следует проверить, нет ли на Вашем компьютере фаервола, который блокировал бы внешние подключения к восьмидесятому порту. Тут уж разберитесь сами, так как о Вашем фаерволе я не знаю ничегошеньки. Могу только посоветовать не отключать его, а лишь добавить исключения для нужных портов, так как в противном случае компьютер может быть открыт для всех внешних угроз.
Надеюсь, что эта заметка окажется для кого-то полезной, так как в Интернете мне попадается достаточно большое количество жалоб на то, что в модеме не работает проброс портов, при том, что на самом деле все нормально работает, просто проверять нужно через прокси или анонимайзер типа