Просмотр моего сайта, размещенного в IIS, на других машинах в моей сети

102

Дома у меня есть простая сетевая установка, состоящая из 2 машин.

На одной машине у меня есть сайт, размещенный на IIS7. Вместо стандартного localhost/index.htmадреса я добавил в HOSTSфайл запись, указывающую на локальный IP-адрес (127.0.0.1) этого домена - www.mysite.dev.

Я могу получить доступ к сайту www.mysite.devбез проблем.

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

Первоначально я предполагал, что это можно сделать с таким URL-адресом MACHINE-NAME/www.mysite.dev, но соединение всегда прерывается. Но пинговать могу MACHINE-NAMEбез проблем.

В целях тестирования я отключил брандмауэр Windows на обеих машинах, но без радости.

Как и у обычного веб-разработчика, мои навыки работы с оборудованием / сетью довольно плохи.

Может ли кто-нибудь увидеть, где я ошибаюсь?

Truegilly
источник
Вы пробовали просто подключиться к MACHINE-NAME ?
Lazarus

Ответы:

155

Как и другие сказали , что ваш брандмауэр должны быть настроены на прием входящих вызовов на TCP - порте 80 .

в выигрыше 7+ (легкий волшебный способ)

  1. перейти на брандмауэр Windows с повышенной безопасностью
  2. Входящие правила -> Действие -> Новое правило
  3. выберите переключатель Predefined , а затем выберите последний элемент - World Wide Web Services (HTTP)
  4. нажмите «Далее» и оставьте следующие шаги как есть ( разрешите подключение )

  • Поскольку исходящий трафик (с сервера во внешний мир) разрешен по умолчанию. Это означает, например, HTTP-ответы, которые веб-сервер отправляет обратно внешним пользователям и запрашивает

  • Но входящий трафик (исходящий из внешнего мира на сервер) по умолчанию блокируется , как и веб-запросы пользователя, исходящие из их браузера, который по умолчанию не может достичь веб-сервера, и вы должны его открыть.

Вы также можете подробнее ознакомиться с правилами для входящих и исходящих сообщений на этой странице.

Иман
источник
Если он все еще не работает, вы можете отключить сам брандмауэр, по крайней мере, для среды разработки.
USER_NAME
@Contristo, мои чувства в точности :)
Брайан Рейнер
1
@hitesh, вам нужно только открыть порт 80 через включенный брандмауэр. если у вас нет даже разрешения на добавление портов, вам обычно следует попросить соответствующую группу поддержки открыть для вас этот порт для этого сервера
Иман
1
@Hitesh: вы можете разместить свой сайт на порту, отличном от 80, и разрешить только этот порт для вас. Смотрите мой ответ ниже о том, как это сделать.
Сайед Али Таки
1
Быстрый доступ к брандмауэру Windows в режиме повышенной безопасности: Win + R, затем введите mmc.exe wf.msc.
mekb 05
35

Если вы размещаете веб-сайт на определенном порту в IIS, например 4321, вам также необходимо разрешить этот порт через брандмауэр Windows. Вот шаги, которые я выполнил вместе с ответом imanabidi, чтобы заставить его работать для меня:

  1. Брандмауэр Windows> Расширенные настройки
  2. Входящие правила> Новое правило
  3. Выберите Порт> Далее
  4. Определенные локальные порты> Добавьте порт, который вы хотите разрешить
  5. Разрешить все подключения
  6. Введите имя и описание, чтобы потом вспомнить
  7. Готово
Сайед Али Таки
источник
10

Прежде всего, попробуйте подключиться к LAN IP вашего сервера. Если IIS настроен только с одним веб-сайтом, есть вероятность, что ваш сайт появится.

Если вы хотите получить к нему доступ по имени, вам нужно будет добавить запись в файл HOSTS каждого клиентского ПК, с которого вы хотите просматривать сайт (очевидно, не 127.0.0.1, а локальный IP-адрес вашего сервера).

Кроме того, ваш брандмауэр должен быть настроен на прием входящих вызовов через порт 80.

Обычно именно здесь имеет смысл настроить службу DNS, в которой вы можете централизованно регистрировать имена, такие как mysite.dev, без необходимости возиться с файлами хостов. Но это другая история, и она принадлежит superuser.com или serverfault.com.

Пекка
источник
1
Брандмауэр - самая важная часть здесь.
Пьер
6

Откройте настройки брандмауэра. Затем найдите что-то вроде - Разрешить программе или функции разрешить через брандмауэр. Если в списке World Wide Web Services (HTTP) нет галочки, отметьте это и перезапустите систему.

Наша машина настроена на прием входящих запросов.

Харика Каккирени
источник
3

Очень поздний ответ, но я выделю один момент, поскольку мне приходилось иметь дело с ним много лет назад, настраивая свой сайт IIS по сети

  1. Обе ваши машины должны быть подключены к одной сети (одна и та же беспроводная сеть в порядке)
  2. Доступ к удаленному компьютеру через IP 168.192.x.xили черезhttp://his-pc-name (не забывайте часть http)
  3. Это будет сервером страницы IIS по умолчанию на удаленном компьютере (такой же, который обслуживается через localhost). Если вы хотите разместить на сервере другой сайт, сначала [вы должны сделать это значение по умолчанию] 1 .

Убедитесь, что ваш IIS нормально работает на удаленном компьютере, проверив, localhostкакой из сайтов должен обслуживать сайт по умолчанию. Также убедитесь, что ваш брандмауэр настроен на разрешение подключения через порт 80, или вы можете просто отключить брандмауэр на время для целей тестирования.

Хаммад Хан
источник
Использование IP вместо имени моей рабочей станции сработало. Ура!
hatsrumandcode
3

Помимо изменения брандмауэра, не забудьте добавить привязку порта!

Откройте $(SolutionDir)\.vs\config\applicationHost.configи найдите определения привязки, должно быть что-то вроде этого

<sites>
    <site name="Samples.Html5.Web" id="1">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\Git\Samples.Html5.Web" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:63000:localhost" />
        </bindings>
    </site>
    ...
</sites>

Просто добавьте дополнительные строки, чтобы отразить IP-адрес вашего компьютера и назначенный порт

<bindings>
    <binding protocol="http" bindingInformation="*:63000:localhost" />
    <binding protocol="http" bindingInformation="*:63000:10.0.0.201" />
</bindings>

Источник: https://blog.falafel.com/expose-iis-express-site-local-network/

Кораем
источник
2
Привязка порта была для меня важным шагом! Я использовал IIS Express, который по умолчанию не разрешает доступ через IP-адрес (только localhost). Так что без этого шага ответы с более высокими оценками не сработали бы для меня!
JonoB
2
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

Это сработало для меня

Сантош Легент
источник
2

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

1. Go to Windows Firewall -> Advanced settings
2. Click Inbound Rules -> Then New Rule
3. Select Port -> Next
4. Specific local ports -> Add the Port you want to allow
5. Allow All Connections
6. Enter a name and a description for to help you remember later on

и вы сделали

Анто
источник
1

После установки антивируса я столкнулся с этой проблемой и заметил, что мой брандмауэр автоматически включен. Теперь я просто отключил брандмауэр, и это решило мою проблему. Надеюсь, это кому-то поможет :)

Бхавин Чаухан
источник
0

127.0.0.1 всегда указывает на localhost. В вашей домашней сети у вас должен быть IP-адрес, назначенный вашим интернет-маршрутизатором (dsl / cablemodem / что угодно). Вам нужно привязать свой сайт к этому адресу. После этого вы сможете использовать имя компьютера, чтобы перейти на веб-сайт, но я бы рекомендовал отредактировать файл hosts соответствующего клиентского компьютера, чтобы указать конкретное имя на этом компьютере. Файл hosts можно найти по адресу c: \ windows \ system32 \ drivers \ etc \ hosts (используйте блокнот), и запись будет выглядеть так:

192.168.1.1     mycomputername
Джоэл Этертон
источник
@JenishZinzuvadiya: Что? Ваш комментарий не имеет смысла.
Джоэл Этертон,
-1

Вам необходимо выполнить следующие шаги.

Перейдите в IIS ->
Сайты->
Нажмите на свой веб-сайт ->
В действии Нажмите на Изменить разрешения ->
Безопасность ->
Нажмите ДОБАВИТЬ ->
Дополнительно ->
Найти сейчас ->
Добавить всех пользователей в него ->
и предоставить все разрешения другим пользователям ->
нажмите ОК.

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

Ракеш Surve
источник