Битлента
Сетевые команды и утилиты5 мин чтения·

New-NetFirewallRule: как создать, проверить и удалить правило брандмауэра командой

Создание правила Windows Firewall через New-NetFirewallRule: направление, протокол, порт, профиль, проверка и аккуратное удаление правила.

Кратко

New-NetFirewallRule создаёт правило брандмауэра Windows одной командой: имя, направление, протокол, порт и действие. Нужны права администратора; созданное правило проверяют через Get-NetFirewallRule, а убирают через Remove-NetFirewallRule.

Когда правило из командной строки лучше, чем мышь

Окно «Брандмауэр Защитника Windows в режиме повышенной безопасности» подробно, но создание правила проходит через несколько экранов мастера. Если нужно создать однотипные правила на нескольких компьютерах или быстро повторить настройку после переустановки, одна строка PowerShell надёжнее. Она же работает без графической оболочки, например при удалённом администрировании.

Пошаговое создание правила через интерфейс описано на странице про открытие порта в брандмауэре. Здесь мы разберём команду и параметры, которые определяют результат.

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

Минимальная команда и что в ней что означает

Типичная команда выглядит так: New-NetFirewallRule -DisplayName "Мой сервис 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow. Ниже расшифровка каждого параметра.

ПараметрЧто задаёт
-DisplayNameНазвание правила, по нему вы его потом найдёте
-DirectionInbound для входящих, Outbound для исходящих
-ProtocolTCP или UDP
-LocalPortПорт на этом компьютере
-ActionAllow разрешает, Block запрещает
-ProfileПрофили сети: Domain, Private, Public

Если профиль не указан, правило применяется ко всем профилям. Для домашнего компьютера разумнее ограничить его профилем Private, чтобы порт не был открыт в публичных сетях, например в кафе.

Ограничения, которые делают правило безопаснее

Открывать порт для всех адресов — худший из вариантов. Командлет позволяет сузить действие правила несколькими параметрами:

  • -RemoteAddress задаёт, с каких адресов разрешено подключение, например только адреса вашей домашней подсети;
  • -Profile Private ограничивает правило домашними сетями;
  • -Program указывает путь к программе, для которой действует правило;
  • -Enabled False создаёт правило выключенным, чтобы включить его позже осознанно.

Чем точнее правило, тем меньше риска. Например, разрешение для одной программы и одной подсети безопаснее, чем разрешение порта для всего интернета. Не открывайте порты удалённого доступа в публичные сети без крайней необходимости и без надёжной защиты самого сервиса.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Проверка созданного правила

Убедитесь, что правило создалось и включено. Команда Get-NetFirewallRule -DisplayName "Мой сервис 8080" покажет основные свойства: включено ли оно, направление, действие и профиль. Порты и адреса хранятся в отдельных объектах, и их выводят через Get-NetFirewallPortFilter и Get-NetFirewallAddressFilter, передавая правило по конвейеру.

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

Соединение отсутствует и тогда, когда роутер не пропускает трафик: для доступа из внешней сети правило на компьютере недостаточно.

Отключение и удаление правила и распространённые проблемы

Временное правило удобно отключать, а не удалять: Disable-NetFirewallRule -DisplayName "Мой сервис 8080". Включить обратно можно командой Enable-NetFirewallRule. Если правило больше не нужно, удалите его через Remove-NetFirewallRule -DisplayName "Мой сервис 8080".

Перед удалением выведите правило и убедитесь, что имя совпадает с нужным: параметр -DisplayName может подходить сразу нескольким правилам, если названия схожи. Не используйте подстановочные знаки в имени без проверки результата, чтобы случайно не затронуть системные правила.

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

Если команда выдаёт отказ в доступе, PowerShell запущен без прав администратора. Если правило создано, но не действует, проверьте профиль сети: сеть Wi-Fi могла быть определена как Public, а правило создано только для Private. Профиль виден в выводе Get-NetConnectionProfile.

Бывает также, что действует более ограничивающее правило: в брандмауэре запрещающие правила имеют приоритет над разрешающими. Организационные политики на рабочих компьютерах способны полностью перекрывать ваши настройки, и тогда за помощью нужно обращаться к администратору.

Пример: открыть порт только для домашней подсети и просмотр и аудит существующих правил

Допустим, вы запустили на компьютере сервис, который слушает порт 8080, и хотите обращаться к нему с других устройств дома. Создайте правило с направлением Inbound, протоколом TCP, локальным портом 8080, действием Allow, профилем Private и ограничением по RemoteAddress до вашей подсети. Подсеть уточните в выводе Get-NetIPConfiguration, она зависит от настроек роутера.

После создания проверьте доступность с телефона или другого компьютера, подключённого к тому же роутеру. Если сервис открывается, настройка завершена. Если нет, убедитесь, что программа действительно слушает порт: поможет Get-NetTCPConnection с фильтром по порту.

Когда сервис больше не нужен, удалите правило сразу. Не оставляйте открытые порты «на всякий случай».

Периодически полезно просматривать, какие правила действуют. Команда Get-NetFirewallRule -Enabled True -Direction Inbound -Action Allow выведет включённые разрешающие входящие правила. Список обычно длинный, потому что часть правил создаёт сама Windows и установленные программы.

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

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

Если после создания правил что-то перестало работать, откатывайтесь по одному правилу: отключайте последнее созданное и проверяйте результат. Так легко найти виновника. Хорошая практика — давать правилам понятные названия с указанием программы и порта, а в описании писать дату создания. Параметр -Description позволяет добавить такую пометку прямо при создании правила.

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

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
powershellбрандмауэрпортыбезопасность

Часто задаваемые вопросы

Читайте также