Як налаштувати брандмауер Windows, щоб дозволити всі порти, якими користується IIS Express


9

Я розумію цю статтю про техніку на сторінці, яка мене там привела *, полягає в тому, що я можу налаштувати Брандмауер Windows, щоб дозволити весь вхідний трафік на будь-якому порту, який використовується визначеним виконуваним файлом.

Я розумію, що дефокто відповідь, ймовірно, буде "Не робіть цього", тому, будь ласка, зрозумійте ; Я запускаю Visual Studio і IIS Express всередині віртуальної машини, і хочу мати змогу підключитися з хост-ОС для тестових цілей, і, таким чином, не дуже переймаюся наслідками для безпеки відкриття всіх портів, які використовуються IIS Express.

Я створив вхідне правило з програмою, встановленою на %ProgramFiles% (x86)\IIS Express\iisexpress.exe, яка є виконуваним виконанням відповідно до менеджера завдань. Усі інші характеристики правил залишаються порожніми (будь-яка локальна адреса, будь-яка віддалена адреса та локальний порт, будь-який віддалений порт, "будь-який" дозволений користувач, "будь-які" дозволені комп'ютери). Тим не менш, з'єднання працює лише в тому випадку, якщо у мене є правило для конкретного порту, який обслуговується IIS Express.

Оскільки це полегшило б моє життя (і в основному це стосується принципу, оскільки технет каже, що це має працювати), я б не повинен додавати правило брандмауера для кожного створеного додатком.

* Завдання «Створіть правило, яке дозволяє програмі прослуховувати та приймати вхідний мережевий трафік на будь-яких потрібних портах».


1
Оскільки ви згадали про безпеку, яка не викликає занепокоєнь, чи є питання щодо відкриття всіх портів?
Абраксас

Просто вимкніть брандмауер в гостьовій операційній системі .. :-) Я завжди відключаю все, що можу, у своїх гостьових ОС.
Коді Браун

Відповіді:


1

Тут є кілька проблем. Одне полягає в тому, що iisexpress.exeнасправді процес не відповідає за прослуховування HTTP-трафіку. Ця функціональність реалізована http.sys як частина режиму ядра мережевого стеку Windows . (Це було зроблено з міркувань продуктивності. Для отримання додаткової інформації див. Вступ до архітектури IIS .) Тому створення правила для iisexpress.exeнічого не робитиме.

По-друге, http.sysза замовчуванням програми не дозволяють програмам, які працюють, оскільки не-адміністратори слухають інші комп’ютери. Відповідно до обслуговування зовнішнього трафіку з WebMatrix , вам потрібно запустити цю команду в адміністративному командному рядку, щоб усі користувачі могли слухати інші машини через http.sys:

netsh http add urlacl url=http://MACHNAME:PORT/ user=everyone

Замініть MACHNAMEім'я хоста, яке використовуватиметься для зв’язку із сайтом та PORTз портом трафіку. Я читав, що використання *замість конкретного імені хоста дозволяє йому слухати всі імена / інтерфейси, але я особисто не перевіряв це, а +натомість використовує деяку документацію . У будь-якому випадку, як тільки ви встановите ACL, ви можете створити правило вхідного брандмауера для порту .

Подальше читання: Налаштування HTTP та HTTPS .

Бічний коментар: Там є фактична змінна середовища , яка вказує на 32-бітової версії Program Files: %PROGRAMFILES(X86)%. (Однак шлях не був вашою проблемою.)

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