1

Когда я работаю над своим приложением в кафе, я хочу убедиться, что никто не увидит приложение, которое работает на localhost:8080 .

Как настроить брандмауэр Windows для блокировки внешних подключений к 8080, но при этом разрешить подключение к порту на вашей собственной машине?

3 ответа3

2

Это решение ниже относится к большинству версий локальных веб-сайтов Windows II.

В общем, никто, кроме вас, не может получить доступ к вашему локальному веб-сайту с помощью "localhost". Это петлевой адрес, который всегда указывает на один и тот же компьютер и веб-сайт II на этом поле. Таким образом, если другой пользователь попытается использовать этот адрес, он будет указывать на свой собственный веб-сайт по умолчанию на своих II на своем ящике.

Но....Я думаю, что ваш вопрос заключается в том, может ли кто-то получить доступ к вашему экземпляру «веб-сайта по умолчанию» на вашей коробке в новой сети. Не с "localhost", но да, они могут использовать либо ваш назначенный локальный IP-адрес, либо имя вашего ПК в сети, если они могут видеть либо. Так что это очень хитрый вопрос. Дайте себе кредит на вопрос.

  1. Они могут получить ваш локальный IP в сети через пинг или другие средства. Затем они могут использовать этот IP-адрес и попробовать порт 80 или 8080, если вы добавили его.
  2. Они могут видеть имя вашего компьютера, и это также позволит им попробовать порт 80 или 8080 и увидеть ваш локальный веб-сайт по умолчанию в II. Пример: « http://DavidsPC: 8080 » будет работать от кого-то внутри сети. Так что, да, они могут получить доступ к вашему веб-сайту на вашем компьютере, если кто-то увидит имя вашего ноутбука.

Чтобы предотвратить все это, сделайте следующее:

  1. Перейдите к II на вашем ноутбуке или ПК (я щелкаю правой кнопкой мыши по своему ПК и выбираю "Управление", затем прокручиваю в разделе "Службы и приложения"). Выберите "Информационные службы Интернета" и перейдите на нужную панель вашего сайта.
  2. Найдите свой назначенный "по умолчанию" веб-сайт внутри IIs. Это тот, который, как правило, будет прослушивать HTTP-звонки извне вашей коробки. Его обычно называют default, если вы не можете изменить его имя. если это так, см. ниже о черной привязке имени хоста. Это по умолчанию.
  3. Щелкните правой кнопкой мыши этот веб-сайт в списке дерева и выберите "Редактировать привязки".
  4. Там нажмите пустую запись для вашего порта 80 и / или 8080 для http и / или https, если используется.
  5. Он должен быть пустым под именем хоста и "все неназначенные" для IP. Это означает, что ваш веб-сайт по умолчанию будет отправлять браузеру пользователя любой ответ, если он набрал в адресной строке браузера имя сети ПК или IP-адрес локальной сети и назначенную для этого поля комбинацию портов. Нехорошо!
  6. Нажмите, чтобы отредактировать пустые записи имени хоста, чтобы было добавлено имя или IP-адрес. Все, кроме пустых. Я бы напечатал одно из следующего: "localhost" или «127.0.0.1» (адрес обратной связи) в поле имени хоста. Вы также можете назначить петли IPv6 или пользовательские текстовые имена. Но вам нужно найти текстовый файл Host, хранящийся в папке Windows в этом поле, и вручную добавить свой IP-адрес обратной петли и новое имя. Боль в заднице. Итак, просто введите один из двух пунктов только имя хоста и нажмите кнопку Сохранить. Я бы оставил IP как "все неназначенные", хотя вы также можете уменьшить его до IP. Когда вы явно меняете имя хоста на одну из этих записей, это требуется для доступа к веб-сайту в браузере. Localhost - это единственный адрес, который будет принят сейчас для всех, кто заходит на ваш сайт. Но localhost не удастся для всех, кроме вас, так как это указывает на локальный ящик пользователя. Делая это явным для имени хоста, сервер больше не будет отвечать на назначенный ему сетевой IP-адрес, имя или что-либо еще, кроме "localhost", независимо от того, какой IP-адрес они пытаются использовать. Я предпочитаю использовать 127.0.0.1 для имени хоста, так как теперь он требует явного IP-адреса и переопределяет все неназначенные IP-адреса, а текстовые имена теперь не будут работать. Но это до вас.
  7. Также сделайте это изменение для записи порта 8080. Я предполагаю, что вы также добавили пустое имя хоста.
  8. Убедитесь, что в вашем списке привязок нет пустых IP-адресов хостов для портов 80 или 8080 и протоколов http или https.
  9. Обязательно перезапустите ваш экземпляр сайта или IIs.

Вы можете проверить это сейчас, используя ваш компьютер или другой компьютер в вашей сети и введя либо PCName:8080, либо локально назначенный NetworkIP:8080 в вашем браузере. Попробуйте те с портом 80 тоже. Никто не будет работать. Вы должны получить 404 Not Found, где, прежде чем кто-то сможет набрать любой и увидеть ваш сайт в сети с нескольких компьютеров. Не спрашивайте меня, почему Microsoft построила это таким образом. Эта система локального хоста существовала более 15 лет во II. Для меня это всегда был запутанный беспорядок!

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

Удачи!

-Митч Стокели

0

Ответы на этот мой вопрос на Stackoverflow.com позволяют вам это настроить, однако для этого используется Apache, а не IIS.

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .