4

Я настроил поддомен sub.example.com в DNS-записях моего провайдера доменных имен, которые я связал со своим внешним IP-адресом. Затем я перенаправил порт 80 в маршрутизаторе (Sitecom Broadband Router 54G) на IP-адрес моего компьютера в сети. Теперь я могу получить доступ к серверу Apache на моем компьютере извне, используя поддомен.

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

Я не хочу использовать внутренний IP-адрес, поскольку во всех случаях использование субдомена проще в настройке (я использую свой ноутбук внутри и вне сети). Я также не хочу изменять файл hosts , так как, я думаю, это не сработает как внутри, так и вне сети.

Любой способ исправить это, или я должен получить новый маршрутизатор?

2 ответа2

6

Большинство маршрутизаторов SOHO не поддерживают шпильку NAT (AKA NAT loopback), которая обращается к внутренней машине через внешний IP-адрес из той же локальной сети.

Вам нужен лучший роутер. Если ваш маршрутизатор поддерживает прошивку DD-WRT стороннего производителя, вы можете попробовать это. Чтобы настроить NAT шпильки в DD-WRT, вы можете обратиться к другим вопросам SU, таким как:

DD-WRT: Как разрешить перенаправление портов для запросов, исходящих из локальной сети?

2

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

Действительно, то, что вы хотите, требует закрепления NAT, и кажется, что ваш маршрутизатор не поддерживает это.

В качестве альтернативы замене маршрутизатора на тот, который его поддерживает, вы можете настроить DNS-сервер в своей сети. Это может быть на сервере, но вы также можете загрузить программу DNS-сервера и запустить ее локально. В вашем маршрутизаторе для DNS-сервера вы настраиваете IP-адрес компьютера / сервера, на котором работает этот DNS-сервер, а на DNS-сервере вы добавляете ручную запись для вашего полного доменного имени (домена) в вашем примере, которая будет sub.example.com и сделайте так, чтобы он указывал на internal IP-адрес.

Каждый, кто использует этот новый DNS-сервер, сможет снова получить доступ к сайту, но вы не сможете обнаружить проблемы с онлайн-частью. Это, однако, как это делается в реальном мире с компаниями. У них есть внутренний сервер, на котором работает DNS-сервер, и домен, который они используют для внутренних ресурсов, настраивается на DNS-сервере.

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