я сделал веб-сервер на своем ноутбуке (IIS7, Vista), он работает на порте 81, я использую службу DNS на Everydns.com, чтобы указать mydomain.com на мой веб-сервер, все было хорошо, мои друзья могут получить доступ к моему сайту бросить URL http://mydomain.com:81, но я не могу (я получаю доступ к веб-сайту на той же машине, на которой работает веб-сервер), веб-браузер всегда говорит, что не может подключиться. Что случилось?
6 ответов
быстрое и грязное решение - добавить запись в ваш файл hosts.
Возможно, ваш маршрутизатор запрещает петлевые соединения. Так как другие люди могут подключаться к указанному хосту через порт 81, возможно, что при попытке установить соединение на маршрутизаторе транслируется внешнее соединение, а затем маршрутизатор отказывается транслировать его обратно во внутреннюю сеть (для вашего домашнего сервера). ,
Если это так, то предложения по добавлению в файл hosts могут обойти эту проблему, но они не решают основную проблему.
Вы можете проверить расширенные настройки сети (или настройки брандмауэра) в конфигурации маршрутизатора и убедиться, что петлевые соединения не заблокированы.
Это почти наверняка, потому что ваш маршрутизатор мешает - ваш запрос к вашему веб-серверу идет на ваш внешний IP-адрес, и что касается маршрутизатора, это странно, поэтому его нужно заблокировать (не знаю почему, это может быть безопасность , это может быть что-то еще), но ключевой момент заключается в том, что с вашей машины и из вашей сети IP-адрес принадлежит вашей внутренней сети, а не общедоступной.
Чтобы это исправить, вы должны сообщить своей машине, что IP-адрес для http//mydomain.com является локальным, два способа сделать это:1) Добавить запись в файл hosts 2) Если у вас есть локальный DNS-сервер (вероятно, маловероятный если вы используете сервер на своем ноутбуке) и настройте его так, чтобы он указывал mydomain.com на IP-адрес вашего ноутбука, а не собирал значение из Интернета.
Если это не покрывает это, нам нужно знать немного больше о структуре вашей сети.
Я добавлю, что это своего рода вопрос разработчика, потому что в первую очередь мне пришлось решить эту проблему, чтобы поддержать некоторые внутренние средства поддержки разработчиков, которые должны быть доступны для внешнего доступа ...
Возможно, вы можете получить доступ к своему сайту через http://localhost:81 или http://127.0.0.1:81
При локальном тестировании вы уверены, что URL указан правильно? Internet Explorer выдаст менее полезную ошибку, если вы не укажете URL-адрес правильно. В частности,
http://mydomain:81
будет работать тогда как
mydomain:81
Не буду. Многие пользователи привыкли вводить доменное имя без предшествующего http://, потому что обычно браузер добавляет это, но если указан номер порта, IE не будет автоматически добавлять http://.
Чтобы дополнить существующие ответы:
Подавляющее большинство SOHO-роутеров (так что, по сути, все, что предоставляется бесплатно с вашим соединением или вы купили менее чем за £ 200 / $ 250), не справится слишком хорошо с записью DNS, возвращающейся к их внешнему IP-адресу.
Если вы просто наберете http://mydomain.com (то есть подключитесь к порту 80 по умолчанию), вы, вероятно, получите домашнюю страницу вашего маршрутизатора. Таким образом, когда вы пытаетесь просмотреть порт 81, ваши запросы пытаются поступить с маршрутизатора на порт 81, у которого (как вы могли бы подозревать) ничего не работает для обслуживания этих запросов, поэтому происходит сбой.
Отредактируйте файл hosts (c:\Windows\System32\drivers\etc\hosts - вам нужно будет запустить Notepad в качестве администратора, если у вас включен UAC), и вставить новую строку
127.0.0.1 mydomain.com
После сохранения очистите ваш DNS-кэш, запустив «ipconfig /flushdns» в командной оболочке.