Порты и файрвол

Как открыть порты в Windows Server с помощью PowerShell

Как двумя строками открыть входящие и исходящие TCP и UDP в файрволе Windows, проверить, что правила добавились, и понять, почему иногда всё равно не работает.

4 мин чтенияОбновлено 19 октября 2026 г.

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

На VPS нет роутера, который нужно настраивать. Забудьте о «пробросе портов» (port forwarding), который встречается в инструкциях: это для серверов, стоящих дома. У вашего VPS собственный публичный IP-адрес, поэтому между игроками и сервером стоит только файрвол Windows.

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

Откройте PowerShell от имени администратора

Подключитесь к VPS по удалённому рабочему столу (как это сделать, мы рассказываем здесь), щёлкните правой кнопкой мыши по кнопке Start (Пуск) и выберите Terminal (Admin) или Windows PowerShell (Admin). Если в названии нет «Admin» (администратор), команды завершатся ошибкой прав доступа.

Открытие порта: TCP и UDP, входящие и исходящие

В этом примере открывается порт 30120; замените номер и название на свои. Вставьте весь блок целиком:

$port = 30120
$name = "Game server"

New-NetFirewallRule -DisplayName "$name TCP $port (in)"  -Direction Inbound  -Protocol TCP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$name UDP $port (in)"  -Direction Inbound  -Protocol UDP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$name TCP $port (out)" -Direction Outbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$name UDP $port (out)" -Direction Outbound -Protocol UDP -LocalPort $port -Action Allow -Profile Any

Что делает каждая часть, если захотите что-то изменить:

  • -Direction Inbound — входящий трафик извне (именно он вам и нужен), а Outbound — исходящий.
  • -Protocol — TCP или UDP. Они не взаимозаменяемы. Если игра использует UDP, а вы откроете только TCP, никто не подключится: это самая частая ошибка.
  • -LocalPort — порт, на котором слушает ваш сервер.
  • -Profile Any применяет правило ко всем трём сетевым профилям (доменный, частный и публичный). На VPS подключение обычно относится к профилю «публичный», так что это важно.

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

Диапазон портов

New-NetFirewallRule -DisplayName "Game UDP 7777-7778 (in)" -Direction Inbound -Protocol UDP -LocalPort 7777-7778 -Action Allow -Profile Any

Можно указать и список через запятую: -LocalPort 27015,27020.

Проверка, что правила добавлены правильно

Get-NetFirewallRule -DisplayName "*30120*" | ForEach-Object {
    $f = $_ | Get-NetFirewallPortFilter
    [pscustomobject]@{
        Rule      = $_.DisplayName
        Enabled   = $_.Enabled
        Direction = $_.Direction
        Action    = $_.Action
        Protocol  = $f.Protocol
        Port      = $f.LocalPort
    }
} | Format-Table -AutoSize

Должны отобразиться все четыре правила со значением True в столбце Enabled и Allow в столбце Action.

Проверка, что сервер слушает порт

Открытый порт бесполезен, если за ним никто не слушает. Запустите игровой сервер и выполните:

Get-NetTCPConnection -LocalPort 30120 -State Listen
Get-NetUDPEndpoint  -LocalPort 30120

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

Удаление правила

Remove-NetFirewallRule -DisplayName "Game server TCP 30120 (in)"

Если удобнее мышью

Нажмите Win + R, введите wf.msc и нажмите Enter. В левой панели выберите Inbound Rules (Правила для входящих подключений) → в правой колонке New Rule… (Создать правило…) → Port (Для порта) → выберите TCP или UDP и укажите номер в поле Specific local ports (Определенные локальные порты) → Allow the connection (Разрешить подключение) → оставьте отмеченными все три профиля → задайте имя и нажмите Finish (Готово). Повторите для второго протокола: одно правило охватывает только TCP или только UDP, но никогда оба сразу.

Всё равно не работает

Проверьте по порядку — так причины отсеиваются быстрее всего:

  1. Сервер слушает порт? Это две команды выше. Самая частая причина, с большим отрывом.
  2. Вы открыли нужный протокол? Половина игр работает по UDP. Откройте и TCP, и UDP, и вопрос отпадёт.
  3. Вы проверяете с самого сервера? Изнутри всё всегда работает. Проверьте с другого подключения или попросите кого-нибудь зайти.
  4. Фильтрация AntiDDoS. На странице вашей услуги, на вкладке Безопасность, находятся сетевые фильтры. Если вы создавали фильтры вручную, убедитесь, что в них есть порт и протокол вашей игры.

Никогда не отключайте файрвол целиком, чтобы «проверить». VPS с публичным IP-адресом начинают автоматически сканировать уже через несколько минут после включения. Откройте нужные порты, а остальные оставьте закрытыми.

Похожие статьи

Назад в справочный центр

Не нашли, что искали?

Создайте тикет в личном кабинете — мы ответим меньше чем за 5 минут.