2009-03-07 4 views
3

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

+0

Вы за каким-то устройством NAT? –

+0

У меня есть стандартный DSL-модем дома, чтобы подключиться к Интернету. – fARcRY

ответ

6

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

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

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

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

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

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

3

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

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