Мое понимание этого Technet статьи , на странице , которая привела меня туда *, что я могу настроить брандмауэр Windows , чтобы весь входящий трафик на любом порту используется указанный исполняемый файл.
Я понимаю, что ответом по умолчанию будет «Не делай этого», поэтому, пожалуйста, поймите ; Я использую Visual Studio и IIS Express внутри виртуальной машины и хочу иметь возможность подключаться к операционной системе хоста для целей тестирования, и поэтому не очень обеспокоен последствиями для безопасности открытия всех портов, используемых IIS Express.
Я создал входящее правило с установленным значением Program %ProgramFiles% (x86)\IIS Express\iisexpress.exe
, которое является исполняемым файлом, работающим в соответствии с диспетчером задач. Все остальные спецификации правил оставлены пустыми (любой локальный адрес, любой удаленный адрес и локальный порт, любой удаленный порт, «любые» разрешенные пользователи, «любые» разрешенные компьютеры). Тем не менее, соединение работает, только если у меня есть правило для определенного порта, обслуживаемого IIS Express.
Так как это облегчит мою жизнь (и, в основном, в принципе, так как technet говорит, что это должно работать), я бы предпочел не добавлять правило брандмауэра для каждого приложения, которое я создаю.
* Задача «Создать правило, позволяющее программе прослушивать и принимать входящий сетевой трафик на любых необходимых ей портах».
источник
Ответы:
Здесь есть пара проблем. Во-первых,
iisexpress.exe
процесс не отвечает за прослушивание HTTP-трафика. Эта функциональность реализованаhttp.sys
как часть режима ядра сетевого стека Windows . (Это было сделано из соображений производительности. Для получения дополнительной информации см. Введение в архитектуры IIS .) Поэтому создание правила дляiisexpress.exe
ничего не даст.Во-вторых,
http.sys
по умолчанию запрещается запускать программы, не являющиеся администраторами, для прослушивания других компьютеров. Согласно разделу «Обслуживание внешнего трафика с помощью WebMatrix» , вам нужно запустить эту команду в административной командной строке, чтобы все пользователи могли прослушивать другие машины с помощьюhttp.sys
:Замените
MACHNAME
на имя хоста, которое будет использоваться для связи с сайтом иPORT
с портом трафика. Я читал, что использование*
вместо определенного имени хоста позволяет ему прослушивать все имена / интерфейсы, но я лично не проверял это, и+
вместо этого используется некоторая документация . В любом случае, после настройки ACL вы можете создать правило для входящего брандмауэра для порта .Дальнейшее чтение: Настройка HTTP и HTTPS .
Боковой комментарий: Там есть фактическая переменная среды , которая указывает на 32-битной версии Program Files:
%PROGRAMFILES(X86)%
. (Путь не был твоей проблемой, хотя.)источник