Назад | Перейти на главную страницу

Сайты в IIS недоступны извне

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

Я запустил Shields Up, и он показывает, что открытых портов нет. Это 1 и 1 VPS-сервер под управлением Windows Server 2003, поэтому я предполагаю, что посередине не будет блокировки брандмауэра. Я где-то читал, что мне, возможно, придется внести изменения в «Администрирование»> «Настройки локального администратора», чтобы разрешить доступ к порту 80, но я не знаю, с чего начать поиск здесь.

Редактировать:

Я получаю доступ к серверу, используя его внешний IP-адрес, тот же, который я использую для входа в RDP. 1 и 1 также предоставляют всем VPS субдомен, который разрешается на сервере, что опять же нормально для RDP, но не работает с IIS через порт 80. Использование IP и субдомена на самом сервере успешно возвращает сайт.

Вы проверили, включен ли брандмауэр Windows? Если это так, вы должны либо отключить его, либо (лучше) разрешить входящий трафик на порт 80.

Кроме того, вы за NAT? Проверить это довольно просто: запустите IPCONFIG на сервере и посмотрите его IP-адрес; если он отличается от внешнего, то в середине есть NAT, и вам нужен ваш провайдер, чтобы правильно его настроить.

Последний шанс, даже если на вашем сервере нет брандмауэра и он фактически находится на своем общедоступном IP-адресе, на самом деле мог посередине должен быть какой-то брандмауэр, так что вам тоже следует уточнить это у своего провайдера.

Первый базовый тест - использовать telnet.exe для подключения к порту:

        telnet <ip address> 80

Если вы получаете сообщение об ошибке «Соединение отклонено», значит, порт не открыт.

Также WS 2003 имеет межсетевой экран: введите firewall.cpl и вы должны увидеть локальную панель управления.

У меня также есть 1 и 1 VPS, и я запустил мастер настройки безопасности.

http://www.microsoft.com/windowsserver2003/technologies/security/configwiz/default.mspx

Пройдя все это и настроив все так, как я хотел, я смог полностью контролировать все на сервере.

Я уверен, что есть более сложный способ сделать это, но меня впечатлила простота использования этого инструмента.

Попробуйте открыть консоль управления IIS, щелкните правой кнопкой мыши веб-сайт, свойства, щелкните вкладку «Безопасность каталога», затем нажмите кнопку «Изменить» для «Ограничения IP-адреса и доменного имени».

Кстати, вы можете проверить, прослушивает ли IIS внешний адрес с помощью netstat -a -p tcp -n в командной строке на рассматриваемом сервере.

Помимо других ответов, проверьте привязки сетевого интерфейса, чтобы убедиться, что IIS привязан к вашему внешнему интерфейсу.

  1. Вы можете сделать это, перейдя в свойства веб-сайта, щелкнув вкладку Веб-сайт, а затем убедившись, что текст IP-адреса: (Все не назначены).
  2. Также убедитесь, что порт прослушивает 80 (или 443 для SSL).
  3. Нажми на Продвинутый кнопка. Убедитесь, что значение заголовка хоста совпадает с доменом, который вы хотите достичь. Например, если вы хотите, чтобы ваш сайт был доступен по адресу http://blog.waynehartman.com, вы должны убедиться, что blog.waynehartman.com находится в заголовке хоста.

Вы получаете доступ к своему веб-сайту через поддомен, например aaa.stackoverflow.com/Default.aspx, или напрямую через IP-адрес, например x.x.x.x / Default.aspx?

Если вы получаете доступ через субдомен, ваша привязка верна. Ваш URL-адрес в IIS настроен на правильный IP-адрес или установлен на Все IP-адреса?

Ваш внешний IP-адрес - это NAT для внутреннего IP-адреса?

Можно ли телнет на 80 порт с внешнего сделать?

Вы пробовали использовать другое соединение в другом Интернет-соединении для подключения к серверу?

Можете ли вы получить доступ к таким сайтам, как www.serverfault.com, с компьютера, который вы пытаетесь использовать для доступа к серверу?

Возможно, что не удается выполнить аутентификацию. Попробуйте разрешить анонимный доступ на своем тестовом сайте и посмотрите, поможет ли это. Используйте бесплатный инструмент Fiddler, чтобы дважды проверить и увидеть, что на самом деле происходит.