Как открыть порт в брандмауэре Windows
Порт открывает правило брандмауэра для входящих подключений. Создать его можно командой или мышью — результат одинаковый, нужны права администратора.
Каждый открытый порт — дверь в компьютер для всех, кто до него дотянется. Открывайте порт только для программы, которой он нужен, только в частной сети (-Profile Private) и удаляйте правило, когда оно больше не нужно. Удалённый рабочий стол (порт 3389) не открывайте в интернет напрямую — его постоянно перебирают боты.
Как создать правило
Выберите, как удобнее.
Командой 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, если программе нужен он.
Мышьюв окне брандмауэра
Win+R→wf.msc→ Enter. Откроется брандмауэр Защитника Windows в режиме повышенной безопасности.- Слева — «Правила для входящих подключений», справа — «Создать правило…».
- Тип правила — «Для порта».
- Протокол TCP или UDP и «Определённые локальные порты»: например,
8080или несколько через запятую. - Действие — «Разрешить подключение».
- Профили — оставьте отмеченным только «Частный», если доступ нужен лишь из домашней сети.
- Имя правила — понятное, чтобы потом найти и удалить.
Командой netshв обычной командной строке
Работает и в обычной командной строке (cmd) от имени администратора:
netsh advfirewall firewall add rule name="Web 8080" dir=in action=allow protocol=TCP localport=8080 profile=privateКак и команда PowerShell, правило пускает подключения по TCP на порт 8080 только в частной сети.
Удалить правило
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 в строке значит, что программа принимает подключения только с этого же компьютера, — это меняется в настройках самой программы.
Если порт слушается, а снаружи подключиться нельзя:
- Сеть отмечена как общедоступная, а правило — только для частной. Тип сети — урок Сеть и Wi‑Fi.
- Проверьте с другого компьютера. В PowerShell на нём:
Test-NetConnection 192.168.1.10 -Port 8080, где адрес — компьютера с открытым портом.TcpTestSucceeded : True— порт доступен. - Другой антивирус со своим брандмауэром. Тогда правило нужно и в нём: брандмауэр Windows он отключает или дополняет.
- Доступ из интернета. Домашний роутер не пускает подключения снаружи: на нём нужен проброс порта на адрес компьютера. У провайдера внешний адрес может быть общим на многих абонентов — тогда проброс не поможет.
Разрешить программе сеть можно и не зная её порт: откройте firewall.cpl, слева — пункт о разрешении взаимодействия с приложением, и отметьте программу и тип сети.