Глиф Учебники

Как открыть порт в брандмауэре Windows

Справочник · Windows · 2 минуты чтения

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

Каждый открытый порт — дверь в компьютер для всех, кто до него дотянется. Открывайте порт только для программы, которой он нужен, только в частной сети (-Profile Private) и удаляйте правило, когда оно больше не нужно. Удалённый рабочий стол (порт 3389) не открывайте в интернет напрямую — его постоянно перебирают боты.

Как создать правило

Выберите, как удобнее.

Командой PowerShellбыстрее всего

Откройте PowerShell от имени администратора (как — в уроке Командная строка и PowerShell) и выполните:

PowerShell
New-NetFirewallRule -DisplayName "Web 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow -Profile Private

Правило «Web 8080» разрешает входящие подключения по TCP на порт 8080, но только когда компьютер в частной (домашней) сети. Вместо 8080 подставьте свой порт, вместо TCP — UDP, если программе нужен он.

Дальше: «Удалить правило»

Мышьюв окне брандмауэра

  1. Win+R → wf.msc → Enter. Откроется брандмауэр Защитника Windows в режиме повышенной безопасности.
  2. Слева — «Правила для входящих подключений», справа — «Создать правило…».
  3. Тип правила — «Для порта».
  4. Протокол TCP или UDP и «Определённые локальные порты»: например, 8080 или несколько через запятую.
  5. Действие — «Разрешить подключение».
  6. Профили — оставьте отмеченным только «Частный», если доступ нужен лишь из домашней сети.
  7. Имя правила — понятное, чтобы потом найти и удалить.

Дальше: «Удалить правило»

Командой netshв обычной командной строке

Работает и в обычной командной строке (cmd) от имени администратора:

Командная строка
netsh advfirewall firewall add rule name="Web 8080" dir=in action=allow protocol=TCP localport=8080 profile=private

Как и команда PowerShell, правило пускает подключения по TCP на порт 8080 только в частной сети.

Удалить правило

PowerShell
Remove-NetFirewallRule -DisplayName "Web 8080"

Или в cmd: netsh advfirewall firewall delete rule name="Web 8080". В окне wf.msc — правый щелчок по правилу → «Удалить» (или «Отключить правило», чтобы выключить на время).

Порт открыт, а подключиться нельзя

Сначала проверьте на самом компьютере, что программа действительно ждёт подключений на этом порту:

Командная строка
netstat -ano | findstr :8080

Строка с LISTENING значит, что порт слушается. Пусто — программа не запущена или слушает другой порт. Адрес 127.0.0.1:8080 в строке значит, что программа принимает подключения только с этого же компьютера, — это меняется в настройках самой программы.

Если порт слушается, а снаружи подключиться нельзя:

Разрешить программе сеть можно и не зная её порт: откройте firewall.cpl, слева — пункт о разрешении взаимодействия с приложением, и отметьте программу и тип сети.