Не удается просмотреть веб-сайт, размещенный дома на локальной машине - PullRequest
3 голосов
/ 07 марта 2009

У меня есть сайт ASP.NET, размещенный дома на IIS. За пределами моей домашней сети я могу видеть веб-сайт, но внутри сети он выдает ошибку 404. Я могу просматривать сайт как localhost. Вроде проблема с DNS, просто не знаю, как ее исправить.

Ответы [ 2 ]

6 голосов
/ 07 марта 2009

Это почти наверняка проблема NAT. Я предполагаю, что ваш веб-сервер расположен за маршрутизатором NAT, и вы перенаправили некоторый порт (вероятно, 80) с внешнего интерфейса маршрутизатора на порт 80 на вашем сервере. Я также предполагаю, что вы пытаетесь получить доступ к своему веб-сайту либо с помощью имени, которое разрешается на ваш внешний IP-адрес (возможно, динамическое DNS-имя), либо вы пытаетесь получить к нему прямой доступ с помощью этого внешнего IP-адреса. Это, вероятно, не будет работать «из коробки», так как большинство маршрутизаторов NAT предоставляют сопоставление портов только для пакетов, поступающих на внешний интерфейс маршрутизатора.

Если вышеизложенное верно, есть четыре возможных решения:

  1. Посмотрите на конфигурацию вашего роутера и попробуйте найти что-то похожее на "NAT loopback", "Ext-int loopback" или тому подобное. Это будет указывать маршрутизатору обрабатывать пакеты, поступающие из внутреннего интерфейса и предназначенные для внешнего IP, точно так же, как он будет обрабатывать пакеты, поступающие из внешнего интерфейса, эффективно корректно зацикливая трафик. Это вызовет переадресацию портов, и ваш сайт будет работать. Не у всех роутеров есть эта опция, но если у вас она есть, это будет самое надежное решение. Если у вас нет, вы также можете попробовать сменить его прошивку на одну из бесплатных, которая поддерживает ваш маршрутизатор (Tomato, OpenWRT, DD-WRT и т. Д.). Я успешно использовал Tomato для таких сценариев.

  2. Используйте внутренний IP, когда вы находитесь позади маршрутизатора, и внешний, когда снаружи.

  3. Добавьте используемое DNS-имя в свой собственный файл hosts, чтобы оно соответствовало внутреннему IP-адресу. Это достигнет (3) автоматически при доступе к имени с вашего собственного хоста. Вам придется повторить это для каждого хоста позади вашего маршрутизатора.

  4. Запустите собственный DNS-сервер за маршрутизатором, сделайте так, чтобы он наделил вас полномочиями над вашей DNS-записью и разрешил ее для внутреннего IP-адреса, одновременно перенаправляя другие DNS-запросы на ваш фактический сервер имен.

3 голосов
/ 07 марта 2009

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

Вы сможете исправить это, добавив запись в файлы хостов своих домашних машин, чтобы сопоставить домен с внутренним IP-адресом машины с включенным IIS, переопределив внешний IP-адрес в записи DNS.

...