Porty i zapora

Jak otworzyć porty w Windows Server za pomocą PowerShell

Jak dwiema liniami otworzyć ruch przychodzący i wychodzący TCP i UDP w zaporze Windows, sprawdzić, czy reguły zostały dodane, i zrozumieć, dlaczego czasem nadal nie działa.

4 min czytaniaZaktualizowano 19 października 2026

Gdy stawiasz serwer gry na VPS z Windows i nikt nie może się połączyć, winowajca prawie zawsze jest ten sam: zapora systemu Windows blokuje port. Poniżej pokazujemy, jak otworzyć go poleceniami. To szybsze niż klikanie po menu, a przede wszystkim można je skopiować i wkleić bez pomyłek.

Na VPS nie ma routera do skonfigurowania. Zapomnij o „przekierowaniu portów” (port forwarding), o którym piszą poradniki: to dotyczy serwerów w domu. Twój VPS ma własny publiczny adres IP, więc jedyne, co stoi między Twoimi graczami a Twoim serwerem, to zapora Windows.

Droga gracza do Twojego serwera: jego komputer, internet, filtr AntiDDoS, zapora serwera VPS i Twój serwer nasłuchujący na swoim porcie
Jeśli na którymkolwiek z tych etapów port nie jest otwarty dla właściwego protokołu, gracz nie wejdzie na serwer.

Otwórz PowerShell jako administrator

Połącz się z VPS przez Pulpit zdalny (tutaj wyjaśniamy, jak to zrobić), kliknij prawym przyciskiem myszy przycisk Start i wybierz Terminal (Admin) lub Windows PowerShell (Admin). Jeśli w nazwie nie ma „Admin”, polecenia zakończą się błędem uprawnień.

Otwieranie portu: TCP i UDP, ruch przychodzący i wychodzący

Ten przykład otwiera port 30120; zmień numer i nazwę na własne. Wklej cały blok naraz:

$port = 30120
$nazwa = "Serwer gry"

New-NetFirewallRule -DisplayName "$nazwa TCP $port (do serwera)" -Direction Inbound  -Protocol TCP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nazwa UDP $port (do serwera)" -Direction Inbound  -Protocol UDP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nazwa TCP $port (z serwera)"  -Direction Outbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nazwa UDP $port (z serwera)"  -Direction Outbound -Protocol UDP -LocalPort $port -Action Allow -Profile Any

Co robi każda część, jeśli chcesz to dostosować:

  • -Direction Inbound to ruch przychodzący z zewnątrz (ten, którego naprawdę potrzebujesz), a Outbound to ruch wychodzący.
  • -Protocol TCP lub UDP. Nie są wymienne. Jeśli Twoja gra używa UDP, a otworzysz tylko TCP, nikt nie wejdzie: to najczęstszy błąd.
  • -LocalPort to port, na którym nasłuchuje Twój serwer.
  • -Profile Any stosuje regułę do wszystkich trzech profili sieciowych (domenowego, prywatnego i publicznego). Na VPS połączenie ma zwykle profil „publiczny”, więc to ważne.

Czy reguły wychodzące są potrzebne? W Windows Server ruch wychodzący jest domyślnie dozwolony, więc zwykle nie. Są tu dlatego, że nie przeszkadzają, a jeśli ktoś wcześniej zaostrzył ustawienia zapory, okażą się dokładnie tym, czego brakowało.

Dla zakresu portów

New-NetFirewallRule -DisplayName "Gra UDP 7777-7778 (do serwera)" -Direction Inbound -Protocol UDP -LocalPort 7777-7778 -Action Allow -Profile Any

Możesz też podać listę oddzieloną przecinkami: -LocalPort 27015,27020.

Sprawdzenie, czy reguły zostały dodane poprawnie

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

Muszą się pojawić wszystkie cztery reguły, z Enabled ustawionym na True i Action na Allow.

Sprawdzenie, czy Twój serwer nasłuchuje

Otwarcie portu nic nie da, jeśli nic za nim nie nasłuchuje. Przy uruchomionym serwerze gry wykonaj:

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

Jeśli polecenia nic nie zwracają, problemem nie jest zapora: Twój serwer się nie uruchomił, uległ awarii albo jest skonfigurowany na inny port. Zajrzyj do konsoli gry, zanim zaczniesz dalej zmieniać reguły.

Usuwanie reguły

Remove-NetFirewallRule -DisplayName "Serwer gry TCP 30120 (do serwera)"

Jeśli wolisz zrobić to myszką

Naciśnij Win + R, wpisz wf.msc i naciśnij Enter. W lewym panelu wybierz Inbound Rules (Reguły przychodzące) → w prawej kolumnie New Rule… (Nowa reguła) → Port → wybierz TCP lub UDP i wpisz numer w polu Specific local ports (Określone porty lokalne) → Allow the connection (Zezwalaj na połączenie) → zostaw zaznaczone wszystkie trzy profile → nadaj regule nazwę i zakończ. Powtórz to dla drugiego protokołu: jedna reguła obejmuje tylko TCP albo UDP, nigdy oba naraz.

Nadal nie działa

Sprawdź po kolei, w tej kolejności, bo tak najszybciej wykluczysz kolejne przyczyny:

  1. Czy serwer nasłuchuje? Dwa polecenia powyżej. To zdecydowanie najczęstsza przyczyna.
  2. Czy otwarty jest właściwy protokół? Połowa gier działa po UDP. Otwórz TCP i UDP, a rozwiejesz wątpliwości.
  3. Czy testujesz z samego serwera? Od środka zawsze działa. Sprawdź z innego łącza albo poproś kogoś, żeby spróbował wejść.
  4. Filtrowanie AntiDDoS. Na stronie Twojej usługi, w zakładce Bezpieczeństwo, znajdują się filtry sieci. Jeśli masz filtry utworzone ręcznie, upewnij się, że obejmują port i protokół Twojej gry.

Nigdy nie wyłączaj całej zapory „na próbę”. VPS z publicznym adresem IP jest automatycznie skanowany już kilka minut po uruchomieniu. Otwórz porty, których potrzebujesz, a resztę zostaw zamkniętą.

Powiązane artykuły

Wróć do centrum pomocy

Nie możesz znaleźć tego, czego szukasz?

Otwórz zgłoszenie w panelu, a odpowiemy w mniej niż 5 minut.