3

Я установил HTTP-сервер Apache на своем Macbook, чтобы у меня был доступ ко всем функциям PHP во время изучения языка. У меня нет зарегистрированного доменного имени или постоянного доступа к сети, поэтому идея размещения реального сайта на этом сервере неосуществима; Я просто делаю это в учебных целях.

Во всяком случае, мне было что-то интересно. Я заметил, что когда я ввожу свой частный IP-адрес в веб-браузер (не адрес обратной связи, а фактический адрес, назначенный DHCP), я могу получить доступ к веб-страницам, размещенным на моем сервере, что, я думаю, означает, что я могу получить к нему доступ со стороны компьютера , Однако, когда я ввожу свой публичный IP-адрес, я получаю сетевое время ожидания, которое, как я предполагаю, означает, что я не могу получить доступ к своему веб-серверу из-за пределов локальной сети (если только соединение не очень медленное).

Мне интересно, почему это так. Существует ли уровень безопасности, который не позволяет людям получать доступ к компьютерам внутри локальной сети извне?

2 ответа2

4

На линии может быть три блокирующих прыжка, начиная с вашего компьютера:

  • ваша ОС может иметь настроенный брандмауэр и блокировать входящие запросы. Вы можете проверить это, используя другой компьютер в той же подсети / другой подсети, но все еще за вашим домашним маршрутизатором. Я не знаком с MAC OS, поэтому не могу рассказать, как настроить брандмауэр.

  • Ваш домашний маршрутизатор (или большинство маршрутизаторов Wi-Fi), к которому вы подключаетесь, использует NAT, чтобы "спрятать" подсеть за ней и позволить вашим нескольким устройствам обмениваться данными по единому глобальному IP-адресу, который вы получаете от провайдера. Если вы сделаете запрос на удаленный сервер из локальной сети, с любого устройства, удаленный будет видеть, что запрос поступил от вашего маршрутизатора. Если вы делаете запрос извне на ваш общедоступный IP-адрес, вы фактически адресуете свой маршрутизатор. Если вы хотите, чтобы все запросы HTTP, адресованные вашему маршрутизатору, обслуживались вашим ноутбуком за ним, вы должны добавить правило переадресации портов в меню вашего маршрутизатора к IP-адресу ноутбука и порту 80 (стандартный порт HTTP) или порту 443 для HTTPS.

  • В настоящее время все чаще встречаются случаи, когда интернет-провайдеры даже не предоставляют вам публичный (глобально маршрутизируемый) IP-адрес. Интернет-провайдер также использует NAT (для сохранения глобальных IPv4-адресов), внешний IP-адрес вашего маршрутизатора поступает из частной подсети вашего интернет-провайдера. Это потребует регистрации правила переадресации порта в маршрутизаторе интернет-провайдера, что они не будут делать для вас. В этом случае вы не можете получить доступ к своему ноутбуку из Интернета.

3

Это происходит из-за NAT Translations.

Когда вы подключаетесь к Интернету, ваш провайдер дает вам публичный IP-адрес, чтобы вы могли общаться с Интернетом.

Когда кто-то в Интернете хочет получить доступ к вашему веб-серверу и вводит общедоступный IP-адрес, маршрутизатору необходимо знать, куда в сети направляется запрос. Это называется трансляцией NAT. Это делается путем настройки сопоставления портов.

Веб-сайты используют HTTP-трафик, по умолчанию используется порт 80, поэтому вам нужно создать правило в маршрутизаторе, чтобы сообщить, что порт 80 необходимо перенаправить на внутренний IP-адрес. Как только это будет сделано, и когда кто-то извне введет ваш общедоступный IP-адрес в своем браузере, ваш маршрутизатор теперь знает, что он должен переслать запрос вашему macbook.

Теперь есть одно дополнение к вопросу. Если вы настроите переадресацию портов, большинство маршрутизаторов не поймут, что ваш публичный IP-адрес является вашим собственным, поэтому вы, скорее всего, все равно не сможете получить доступ к своему веб-сайту с вашего собственного публичного IP-адреса.

Ваш macbook отправляет запрос маршрутизатору, который отправляет его провайдеру, провайдер отправляет его обратно, и маршрутизатор не ожидает его, поэтому он игнорирует запрос, что приводит к истечению времени ожидания, поскольку он не может подключиться к самому себе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .