У меня есть домен example.com, и у него есть запись A, указывающая на мой внешний IP-адрес. Порт 80 перенаправлен на мой сервер. Однако, когда я пытаюсь получить к нему доступ изнутри локальной сети (за внешним IP), я не могу подключиться. (Не только для этого порта, но и для всего). Это работает извне (переадресация портов настроена правильно)
Может кто-нибудь объяснить мне, почему это так? (Это как-то связано с моим маршрутизатором?) Сейчас я решил эту проблему, изменив файл моих хостов, так что он указывает на внутренний IP-адрес, но я хотел бы знать, почему мне пришлось это сделать.
Есть ли способ исправить это без взлома? Значит, устройства в моей локальной сети также могут получить доступ к серверу, используя доменное имя (без внесения каких-либо изменений)?
Это то, что нужно сделать вашему маршрутизатору - это часто называют «штыревым NAT» или «петлей NAT». Если ваш маршрутизатор поддерживает это, при включении все должно работать. В некоторых случаях это глобальная настройка, в других вам необходимо установить ее для каждого правила NAT.
Если ваш маршрутизатор не поддерживает это, следующий простейший способ - разделенный DNS. Для этого требуется настроить локальный DNS-сервер для локальных машин, чтобы они могли использовать все те же записи, что и ваш общедоступный DNS. Но для серверов, находящихся в локальной сети, вы переходите на использование частного IP-адреса. У этого метода есть обратная сторона - необходимость поддерживать два набора записей SNS.