Вы можете разместить сайт в домашней системе, если хотите. Однако есть одна оговорка. Некоторые интернет-провайдеры не разрешают своим клиентам размещать свои собственные серверы, в то время как другие разрешают вам делать это. Интернет-провайдер, который не позволяет домашним пользователям размещать свои собственные серверы, может блокировать трафик на портах, обычно используемых серверами. Например, он может помешать кому-либо запускать собственный почтовый сервер, блокируя соединения из Интернета с портом 25 на IP-адресах, которые он назначает домашним пользователям. Аналогичным образом это может помешать кому-либо разместить свой собственный веб-сервер, заблокировав порт по умолчанию, используемый для HTTP , порт 80 и порт по умолчанию, используемый для HTTPS., порт 443. Кто-то может обойти такой блок, запустив веб-сервер на нестандартном порту. Например, если веб-сервер был настроен на прослушивание HTTP-подключений через порт 7080, если бы вы могли предоставить этот номер всем, кто может посетить ваш сайт, они все равно могут получить доступ к серверу. Например, вместо использования http://www.example.com/sompage.html или http://10.0.0.5/somepage.html посетители веб-сайта могут использовать http://www.example.com:7080/. somepage.html или http://10.0.0.5/sompage.html . Хотя даже этот трафик может быть заблокирован провайдером.
Это решение может сработать, если вы ожидаете, что ваш сайт будет посещать всего несколько друзей, но может оказаться более проблематичным, если вы надеетесь иметь всемирную интернет-аудиторию для вашего сайта, так как большинство людей не привыкли включать номер порта при посещении сайт. Однако, если вы ссылаетесь на свой сайт с других сайтов, при условии, что номер порта указан, ссылка будет работать.
Но предположим, что провайдер не помешает вам разместить свой собственный веб-сервер. Вам потребуется настроить маршрутизатор для пересылки трафика, предназначенного для порта HTTP по умолчанию, и, возможно, HTTPS, если вы также будете использовать этот протокол, на внутренний частный IP-адрес веб-сервера в вашей локальной сети (LAN) . Это необходимо, потому что у большинства домашних пользователей есть маршрутизатор, выполняющий преобразование сетевых адресов для связи между системами за маршрутизатором на стороне локальной сети и системами на внешней стороне, обращенной к Интернету, маршрутизатора, то есть глобальной сети (WAN). ) . Т.е. у них есть один внешний публичный IP-адрес для маршрутизатора, но может быть несколько частных IP-адресовдля систем за маршрутизатором. Например, у вас может быть ноутбук с адресом 192.168.0.4 и настольная система с IP-адресом 192.168.0.5 за маршрутизатором. Эти частные IP-адреса не маршрутизируются через Интернет. Домашний маршрутизатор обычно выполняет NAT, чтобы позволить внешним системам, которые видят только один публичный IP-адрес, обмениваться данными с системами за маршрутизатором с частными IP-адресами.
Большинство домашних маршрутизаторов предоставляют возможность выполнять преобразование сетевых адресов и адресов портов, и обычно это довольно просто настроить, вам просто нужно знать, что вы должны это сделать. Некоторые маршрутизаторы могут иметь настройку демилитаризованной зоны (DMZ), которая позволяет вам указать, что любые подключения, исходящие из-за пределов маршрутизатора, идут к определенной системе внутри маршрутизатора. Если вы хотите, чтобы ваш домашний сервер был доступен через NAT / PAT, вам, вероятно, потребуется назначить ему статический IP-адрес, а не тот, который может измениться, поскольку он назначен через протокол динамической конфигурации хоста (DHCP) , поэтому маршрутизатор всегда может маршрутизировать входящие соединения в нужную систему.
В дополнение к возможному изменению IP-адреса систем на внутренней стороне вашего маршрутизатора, если вы используете подключение к домашней сети, ваш интернет-провайдер, вероятно, также назначит внешний IP-адрес маршрутизатора через DHCP. Допустим, это xxx.xxx.10.250. Завтра это может быть xxx.xxx.10.251. Это зависит от «времени аренды», которое поставщик услуг Интернета использует для назначения IP-адресов через DHCP своим клиентам. Время аренды может составлять несколько часов, несколько дней, месяц и т. Д. Итак, если вы сообщаете людям, что ваш веб-сервер доступен по адресу xxx.xxx.10.250, при каждом его изменении вам нужно будет сообщить им новый адрес. Хотя для некоторых систем, даже если ваш интернет-провайдер может не предоставить вам статический IP-адрес, а вместо этого предоставить динамический, он может остаться прежним, пока вы не замените маршрутизатор. Например, для моего домашнего интернет-сервиса я неMedia Access Control адрес от нового маршрутизатора.
Даже если ваш IP-адрес часто меняется, вы можете приобрести статический IP-адрес у интернет-провайдера. Некоторые будут продавать статический IP-адрес домашним пользователям за ежемесячную плату, а многие - нет.
Но решение, которое я использую, когда мне нужно иметь возможность подключиться к системе домашнего пользователя для устранения неполадок или настроить домашний сервер, заключается в использовании динамической системы доменных имен . Это позволяет вам получить доступ к домашнему серверу, используя полное доменное имя (FQDN) , например martijn.example.com, даже если внешний IP-адрес маршрутизатора меняется. Я пользуюсь No-IP.com , но есть и другие сервисы DDNS. Принцип работы DDNS заключается в том, что вы устанавливаете программное обеспечение в системе на внутренней стороне локальной сети маршрутизатора, который периодически обменивается данными с системой провайдера услуг DDNS, чтобы поставщик DDNS знал текущий внешний IP-адрес, с которого система обменивается данными. , Затем провайдер DDNS обновляет свою систему доменных имен (DNS)серверы, которые являются серверами, которые преобразуют полные доменные имена, такие как martijn.example.com, в IP-адреса, чтобы отобразить текущий внешний IP-адрес для вашего маршрутизатора. Поэтому любой, кто разместит martijn.example.com в своем браузере, будет направлен на правильный IP-адрес. Некоторые маршрутизаторы имеют опцию конфигурации, которая позволяет вам указывать поставщика услуг DDNS, поэтому вам может даже не потребоваться устанавливать какое-либо программное обеспечение в домашней системе для его работы; вам просто нужно иметь учетную запись у провайдера DDNS.
Поставщики DDNS будут взимать с вас плату за использование вашего собственного доменного имени, например martijn.com, если вы хотите приобрести собственное доменное имя. Но вы даже можете использовать службу DDNS бесплатно, например, No-IP предоставляет бесплатную услугу , если вы хотите использовать доменное имя, предоставленное поставщиком DDNS. Например, если провайдеру принадлежит example.com, вы можете бесплатно пользоваться martijn.example.com, хотя вам придется заплатить за martijn.com. Т.е. вы можете указать конкретное имя хоста, например martijn, для использования с одним из их доменных имен.
Я использовал такую конфигурацию для домашнего веб-сайта в течение многих лет. Если у вас достаточно надежное интернет-соединение, и ваш интернет-провайдер не блокирует доступ к домашним серверам, он может действительно работать достаточно хорошо для сайтов с низким трафиком. Например, если вы не ожидаете, что на ваш сайт будет приходить более нескольких сотен посетителей каждый день, и вы еще не насыщаете свою доступную пропускную способность. Но есть некоторые соображения, о которых вы должны знать, т. Е. Те, о которых я упоминал выше, при настройке домашнего сервера, что может побудить некоторых рекомендовать использовать хостинг.
Хотя такую конфигурацию можно использовать даже для малого или домашнего бизнеса, я не рекомендовал бы ее для малого или домашнего бизнеса, если доступ к вашему веб-сайту имеет решающее значение, если ваш внешний IP-адрес может часто меняться, так как когда кто-то при посещении вашего сайта их система будет кэшировать ваш IP-адрес, чтобы в следующий раз, когда они посещают сайт, система не должна снова искать IP-адрес, соответствующий имени. Есть время жить (TTL)значение для таких кэшированных записей DNS, поэтому срок их действия истекает, и система снова ищет IP-адрес, но они могут оставаться в системе в течение многих минут или даже часов. И другие DNS-серверы также кешируют записи. Например, предположим, что Мэри является клиентом Comcast, чья система подключается к martijn.example.com. Ее система может запросить DNS-серверы Comcast, чтобы получить IP-адрес для веб-сайта. Итак, теперь серверы Comcast знают IP-адрес, который соответствует FQDN. Другой клиент Comcast, Билл, также хочет посетить ваш сайт. Он никогда не посещал ваш сайт раньше, поэтому его система не кэшировала трансляцию между martijn.example.com и его IP-адресом, но когда его система запрашивает сервер Comcast DNS, если этот сервер уже знает адрес, связанный с Полное доменное имя, оно предоставит ответ из своего кэша.
Таким образом, если ваш IP-адрес изменится, даже если ваш сервер или маршрутизатор в течение одной минуты могут обновить DNS-серверы провайдера DDNS, другие все равно могут получить старый IP-адрес, и поэтому ваш веб-сайт будет недоступен для них до тех пор, пока их система или DNS-серверы их провайдера получает новый, текущий IP-адрес. Из-за кэширования и в зависимости от настроек TTL некоторые системы могут попытаться подключиться к старому IP-адресу через много часов или, возможно, даже на следующий день. Это может не быть серьезной проблемой, если вы просто хотите сделать свой сайт доступным для семьи и друзей, но если вы занимаетесь бизнесом, это, скорее всего, неприемлемая проблема.
Обновление по адресу комментарий:
когда вы покупаете доменное имя у регистратора доменных имен , у вас часто есть возможность указать IP-адрес или адреса для систем, которые должны быть доступны через доменное имя по этим адресам, или вы можете временно «припарковать» имя, чтобы оно указывало к системам, принадлежащим регистратору. Когда вы готовы указать свой собственный IP-адрес, регистраторы обычно предлагают службы DNS, которые позволяют вам изменять IP-адреса, связанные с доменными именами, когда вам угодно. Многие из них также позволяют вам через свою службу DNS корректировать значение TTL, т. Е. Время, в течение которого система должна кэшировать IP-адрес, который соответствует полному доменному имени., Итак, если вы думаете, что вам может потребоваться часто менять IP-адрес, вы должны указать более короткий TTL. Регистратор может иметь минимальный TTL, который вы можете указать, например, 5 минут или 30 минут. Значение обычно указывается в секундах, поэтому значение TTL в 5 минут будет равно 300.
Таким образом, если вы используете службу DNS регистратора, вам нужно будет входить в свою учетную запись с регистратором и изменять IP-адрес или адреса, связанные с вашим доменным именем, каждый раз, когда происходит изменение. Или, в качестве альтернативы, вы можете использовать поставщика услуг DDNS, чтобы изменение в переводе с полного доменного имени на IP-адрес происходило автоматически. Вы можете либо приобрести доменное имя через поставщика услуг DDNS и, таким образом, использовать его DNS-серверы по умолчанию, либо приобрести доменное имя у другого регистратора и указать IP-адреса для серверов имен поставщика DDNS на странице конфигурации вашего веб-сайта, предоставленной доменом. регистратор имен
Другой вариант - запустить собственный DNS-сервер. Когда вы покупаете доменное имя, вы можете указать серверы имен, которые должны использоваться с ним, либо серверы имен регистратора, либо некоторые другие серверы имен. Например, у вас может быть та же система, что и веб-сервер, и DNS-сервер. Вы должны убедиться, что сервер будет доступен через порт 53, который является портом по умолчанию для DNS, для протоколов UDP и TCP IP. Затем вы можете создать скрипт / программу на вашем сервере, которая периодически проверяет, какой внешний IP-адрес назначен вашему маршрутизатору, и обновляет файл зоны.для вашего доменного имени на вашем DNS-сервере. Однако настроить DNS-сервер намного сложнее, чем полагаться на поставщика DDNS. Вы можете найти учебники по настройке DNS-сервера в сети, если вы хотите пойти по этому более сложному маршруту. BIND обычно используется для службы DNS в системах Linux. Серверные версии Microsoft для Windows, например Windows Server 2012, имеют службу DNS, предоставляемую Microsoftэто также может быть использовано. Я бы посоветовал начать с DNS-службы регистратора, которая обычно бесплатна, когда вы приобрели доменное имя у регистратора, хотя, даже если вы подумали, что, возможно, захотите встать на более сложный путь работы собственного DNS-сервера. Если кто-то не хочет узнать, как работают основы Интернета, такие как DNS-серверы, придерживаться регистратора или DNS-серверов поставщика услуг DDNS, вероятно, лучший курс для большинства людей. Вы также можете получить услугу DNS через компании, которые специализируются на услугах DNS, таких как OpenDNS .
Имейте в виду, однако, что даже если вы укажете короткое значение TTL и у вас будут автоматические обновления, существует вероятность большей задержки, чем TTL, между моментом, когда вы получаете новый IP-адрес, и временем, когда все системы в Интернете перестают использовать старый IP-адрес и использовать новый. Например, см. Статью GoDaddy, Какие факторы влияют на время распространения DNS? (GoDaddy является регистратором доменных имен), что объясняет, почему может потребоваться до 48 часов, прежде чем новый адрес станет доступным для всех систем в Интернете. Например, в статье говорится: «Некоторые интернет-провайдеры игнорируют настройки TTL и обновляют свои кэшированные записи только каждые два-три дня».