Перегляд мого веб-сайту, розміщеного IIS, на інших машинах моєї мережі


101

Вдома у мене просте налаштування мережі, що містить 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 на обох машинах, але не радію.

Як і типовий веб-розробник, мої апаратні / мережеві навички досить погані.

Хтось може бачити, де я помиляюся?


Ви спробували просто підключитися до MACHINE-NAME ?
Лазар

Відповіді:


155

Як говорили інші, ваш брандмауер повинен бути налаштований для прийому вхідних дзвінків на порт TCP 80 .

у виграші 7+ (простий шлях майстра)

  1. перейдіть до брандмауера Windows із попередньою безпекою
  2. Правила вхідних даних -> Дія -> Нове правило
  3. виберіть Заздалегідь заданий перемикач, а потім виберіть останній елемент - Всесвітні веб-сервіси (HTTP)
  4. натисніть кнопку Далі та залиште наступні кроки такими, які вони є ( дозвольте з'єднання )

  • Оскільки вихідний трафік (від сервера до зовнішнього світу) дозволений за замовчуванням. Це означає, наприклад, відповіді http, які веб-сервер надсилає назад стороннім користувачам та запити

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

Ви також можете детальніше ознайомитись із правилами вхідних та вихідних даних на цій сторінці


Якщо вона все ще не працює, ви можете вимкнути сам брандмауер, принаймні для середовища розробки.
USER_NAME

@Contristo, мої настрої точно :)
Брайан Рейнер

1
@hitesh, вам потрібно лише відкрити порт 80 через включений брандмауер. якщо у вас немає навіть дозволу на додавання портів, зазвичай ви повинні попросити відповідну службу підтримки відкрити цей порт для цього сервера для вас
Iman

1
@Hitesh: ви можете розмістити свій сайт у порту, відмінному від 80, і дозволити лише цей порт для вас. Дивіться мою відповідь нижче про те, як це зробити.
Сид Алі Такі

1
Швидкий доступ до брандмауера Windows з розширеною безпекою: Win + R, а потім введіть mmc.exe wf.msc.
facepalm42

35

Якщо ви розміщуєте веб-сайт на певному порту в IIS, наприклад 4321, вам доведеться дозволити цей порт також через брандмауер Windows. Ось кроки, які я виконував разом із відповіддю иманабіді, щоб змусити мене працювати:

  1. Брандмауер Windows> Додаткові налаштування
  2. Правила вхідних даних> Нове правило
  3. Виберіть Порт> Далі
  4. Конкретні локальні порти> Додати порт, який потрібно дозволити
  5. Дозволити всі з'єднання
  6. Введіть ім'я та опис, щоб потім запам'ятати його
  7. Зроблено

10

Перш за все, спробуйте підключитися до локальної IP-адреси вашого сервера. Якщо IIS створений лише з одним веб-сайтом, велика ймовірність, що ваш сайт з’явиться.

Якщо ви хочете отримати доступ до нього по імені, вам доведеться додати запис у файл HOSTS кожного клієнтського ПК, з яким ви хочете переглянути сайт (очевидно, не до 127.0.0.1, а до локальної IP-адреси вашого сервера).

Крім того, ваш Брандмауер повинен бути налаштований для прийому вхідних дзвінків на порт 80.

Зазвичай це має сенс створити службу DNS, щоб ви могли реєструвати такі імена, як "mysite.dev" централізовано, не заважаючи файлам хостів. Але це вже інша історія і належить до superuser.com або serverfault.com.


1
Брандмауер є найважливішою частиною тут.
П’єр

6

Відкрийте налаштування брандмауера. Потім шукайте щось на кшталт - Дозволити програму або функцію, щоб це дозволяло через брандмауер. Якщо в списку сервісів всесвітньої веб-сторінки (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 / будь-який інший). Вам потрібно прив’язати свій веб-сайт до цієї адреси. Тоді ви повинні мати можливість використовувати ім’я машини, щоб перейти на веб-сайт, але я б рекомендував насправді відредагувати файл хостів відповідного клієнтського комп'ютера, щоб вказати певне ім’я на цьому комп’ютері. Файл хостів можна знайти за адресою c: \ windows \ system32 \ drivers \ etc \ hosts (використовувати блокнот), і запис виглядатиме так:

192.168.1.1     mycomputername

@JenishZinzuvadiya: Що? Ваш коментар не має сенсу.
Джоель Етертон

-1

Ви повинні виконати наступні дії.

Перейдіть до IIS ->
Сайти->
Клацніть на своєму веб-сайті ->
У дії натисніть Редагувати дозволи ->
Захист ->
Клацніть ДОДАТИ ->
Додатково ->
Знайти зараз ->
Додати всіх користувачів у ньому ->
та надайте всі дозволи для інших користувачів ->
натисніть Ок.

Якщо ви робите вище, ніж правильно, ви можете отримати доступ до свого веб-сайту за допомогою свого домену.
Пропозиція - не додайте ім’я хоста на свій сайт, це колись створюватиме проблеми. Тож, будь ласка, розмістіть свій веб-сайт, використовуючи ip-адресу ваших машин.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.