Jak skonfigurować WireGuard VPN na Twoim VPS

Napisane przez zespół ApexVPS • Ostatnia aktualizacja: lipiec 2026 • 9 min czytania

Ten poradnik konfiguracji WireGuard VPS pokazuje, jak zbudować własny prywatny, szybki i nowoczesny VPN na serwerze Ubuntu lub Debian. WireGuard to lekki protokół VPN wbudowany w jądro Linuxa, więc jest znacznie prostszy niż OpenVPN czy IPsec, a jednocześnie zapewnia silną, nowoczesną kryptografię. Po zakończeniu będziesz mieć działający serwer, co najmniej jednego podłączonego klienta i pełną kontrolę nad własnym zaszyfrowanym tunelem — bez subskrypcji zewnętrznego VPN.

Uruchomienie WireGuard na własnej maszynie oznacza, że ruch kończy się na sprzęcie, który wynajmujesz, a nie na zatłoczonym konsumenckim punkcie końcowym VPN. Jeśli chcesz głębiej przyjrzeć się, dlaczego prywatny box jest lepszą bazą, przeczytaj nasz przewodnik o wyborze VPS do prywatnego VPN przed rozpoczęciem.

Co musisz mieć na start

Stabilny, nieprzeciążony punkt końcowy ma znaczenie dla VPN, dlatego prawdziwie dedykowane zasoby biją na głowę oversoldowane shared hosting. Dedykowany IPv4 jest dostępny w planach Business i Enterprise ApexVPS, dając Twojemu tunelowi adres, który nie jest współdzielony z nikim innym.

Krok 1: Zaktualizuj system i zainstaluj WireGuard

Zacznij od odświeżenia indeksu pakietów i zainstalowania narzędzi userspace WireGuard. Na nowoczesnym jądrze to jedyny pakiet, którego potrzebujesz.

sudo apt update
sudo apt install wireguard -y

To instaluje wg i wg-quick, dwa polecenia, które zarządzają kluczami, interfejsami i konfiguracją. Instalację możesz potwierdzić za pomocą wg --version.

Krok 2: Wygeneruj klucze serwera

WireGuard uwierzytelnia peerów za pomocą pary kluczy publiczny/prywatny, podobnie jak SSH. Przejdź do katalogu konfiguracyjnego, zaostrz uprawnienia do pliku za pomocą umask i wygeneruj klucze w jednym kroku.

cd /etc/wireguard
umask 077
wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key

Linia umask 077 zapewnia, że klucz prywatny jest czytelny tylko dla roota. Wypisz obie wartości, aby móc je wkleić do konfiguracji, która nastąpi.

sudo cat /etc/wireguard/server_private.key
sudo cat /etc/wireguard/server_public.key

Zachowaj klucz prywatny w tajemnicy. Każdy, kto go posiada, może podszywać się pod Twój serwer.

Krok 3: Utwórz konfigurację serwera (wg0.conf)

Interfejs serwera jest opisany w jednym pliku, /etc/wireguard/wg0.conf. Utwórz go w wybranym edytorze:

sudo nano /etc/wireguard/wg0.conf

Wklej poniższy blok, zastępując <SERVER_PRIVATE_KEY> kluczem prywatnym z kroku 2 oraz eth0 rzeczywistą nazwą interfejsu, jeśli się różni.

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Tutaj 10.8.0.1/24 to prywatna podsieć VPN, 51820/udp to port nasłuchu, a reguły PostUp/PostDown dodają i usuwają NAT, aby ruch klientów był maskowany przez publiczny interfejs serwera. Aby znaleźć nazwę swojego interfejsu, uruchom:

ip route list default

Słowo po dev w wyniku (często eth0, ens3 lub enp1s0) to interfejs, którego użyjesz w dwóch powyższych liniach firewalla.

Krok 4: Włącz przekazywanie IP i NAT

Domyślnie Linux nie routuje pakietów między interfejsami, więc jądro musi zostać poinformowane o przekazywaniu. Włącz to trwale za pomocą pliku drop-in sysctl.

echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl -p /etc/sysctl.d/99-wireguard.conf

Jeśli również routujesz IPv6 przez tunel, dodaj net.ipv6.conf.all.forwarding = 1 do tego samego pliku. Reguła MASQUERADE z kroku 3 zajmuje się samym NAT, więc po włączeniu przekazywania ścieżka routingu jest kompletna.

Otwórz port firewalla

Zezwól na port UDP WireGuard. Jeśli używasz ufw, uruchom następujące polecenie i pamiętaj, aby pozostawić SSH otwarte, aby nie zablokować sobie dostępu.

sudo ufw allow 51820/udp
sudo ufw allow OpenSSH
sudo ufw enable

Jeśli zarządzasz regułami bezpośrednio za pomocą iptables zamiast ufw, linie PostUp już dodają reguły przekazywania i NAT; musisz tylko upewnić się, że przychodzące UDP 51820 jest dozwolone przez firewall hosta lub grupę bezpieczeństwa dostawcy.

Krok 5: Uruchom WireGuard za pomocą systemd

wg-quick zawiera szablon usługi systemd, więc możesz teraz uruchomić tunel i ustawić, aby wracał automatycznie po ponownym uruchomieniu.

sudo systemctl enable --now wg-quick@wg0
sudo systemctl status wg-quick@wg0

Flaga enable --now zarówno uruchamia interfejs, jak i ustawia go do uruchamiania przy starcie. Szybka kontrola potwierdza, że interfejs działa:

sudo wg show

Powinieneś zobaczyć interfejs wg0 z Twoim kluczem publicznym i portem nasłuchu. Nie ma jeszcze peerów — to następny krok.

Krok 6: Dodaj klienta (peer)

Każde urządzenie, które się łączy, jest peerem z własną parą kluczy. Wygeneruj parę kluczy dla swojego pierwszego klienta:

wg genkey | sudo tee client1_private.key | wg pubkey | sudo tee client1_public.key

Teraz zarejestruj klienta na serwerze. Dodaj blok [Peer] do /etc/wireguard/wg0.conf, używając klucza publicznego klienta i następnego wolnego adresu w podsieci VPN.

[Peer]
PublicKey = <CLIENT1_PUBLIC_KEY>
AllowedIPs = 10.8.0.2/32

Przeładuj interfejs, aby nowy peer zaczął działać:

sudo systemctl restart wg-quick@wg0

Wolisz nie zrywać tunelu? Możesz dodać peer na gorąco bez restartu:

sudo wg set wg0 peer <CLIENT1_PUBLIC_KEY> allowed-ips 10.8.0.2/32

Krok 7: Utwórz konfigurację klienta i kod QR

Na serwerze zbuduj plik konfiguracyjny klienta. To jest to, co urządzenie — laptop lub telefon — załaduje. Zastąp placeholdery kluczem prywatnym klienta oraz kluczem publicznym serwera i publicznym IP.

[Interface]
PrivateKey = <CLIENT1_PRIVATE_KEY>
Address = 10.8.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = <SERVER_PUBLIC_IP>:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Ustawienie AllowedIPs = 0.0.0.0/0, ::/0 kieruje cały ruch klienta przez tunel — klasyczne zachowanie pełnego VPN. PersistentKeepalive = 25 utrzymuje połączenie przez NAT i firewalle. Zapisz to jako client1.conf.

Dla komputera skopiuj client1.conf na maszynę i zaimportuj do oficjalnego klienta WireGuard. Dla telefonu wyrenderuj plik jako skanowalny kod QR bezpośrednio w terminalu:

sudo apt install qrencode -y
qrencode -t ansiutf8 < client1.conf

Otwórz aplikację WireGuard na Androidzie lub iOS, wybierz "Dodaj tunel", a następnie "Skanuj z kodu QR", a tunel zaimportuje się w kilka sekund. Oficjalne aplikacje i klienci są linkowane z wireguard.com.

Krok 8: Zweryfikuj tunel

Aktywuj tunel na kliencie, a następnie potwierdź uzgadnianie kluczy na serwerze. Zdrowa komunikacja pokazuje świeży timestamp uzgadniania i rosnące liczniki transferu.

sudo wg show

Szukaj znacznika czasu latest handshake i niezerowych wartości transfer dla swojego peera. Na koniec zweryfikuj z poziomu klienta, że Twój publiczny adres IP to teraz IP serwera:

curl ifconfig.me

Jeśli to zwróci adres VPS, Twój ruch płynie przez tunel i konfiguracja VPS WireGuard jest zakończona. Aby dodać więcej urządzeń, powtórz kroki 6 i 7 z nową parą kluczy i kolejnym adresem z zakresu 10.8.0.0/24.

Rozwiązywanie problemów z połączeniem, które nie nawiązuje się

Jeśli wg show nigdy nie zgłasza uzgadniania, przejdź przez typowe przyczyny w kolejności. Po pierwsze, potwierdź, że port jest faktycznie otwarty: z innej maszyny uruchom nc -uzv <SERVER_PUBLIC_IP> 51820, i sprawdź, czy grupa zabezpieczeń lub zapora sieciowa dostawcy zezwala na przychodzący UDP 51820, a nie tylko TCP. Po drugie, upewnij się, że przekazywanie IP jest naprawdę włączone za pomocą sysctl net.ipv4.ip_forward — powinno zwrócić 1. Po trzecie, dokładnie sprawdź, czy nazwa interfejsu w regule NAT PostUp zgadza się z wynikiem ip route list default; niezgodność jest najczęstszym powodem, dla którego ruch jest uwierzytelniany, ale nie dociera do internetu. Na koniec zweryfikuj, czy klucze nie są zamienione: konfiguracja serwera zawiera klucz prywatny serwera i publiczny klucz klienta, a konfiguracja klienta odwzorowuje ten układ. Pojedynczy zamieniony klucz cicho blokuje uzgadnianie.

Wybór odpowiedniego VPS do WireGuard

WireGuard sam w sobie jest mały — protokół ledwo dotyka CPU — więc nawet plan podstawowy komfortowo obsłuży osobisty VPN. To, co naprawdę kształtuje doświadczenie, to sieć: przepustowość, opóźnienie do Twojego regionu i to, czy IP jest tylko Twoje. ApexVPS działa na prawdziwie dedykowanych vCPU, RAM i magazynie NVMe w 39 lokalizacjach, z niskim opóźnieniem w głównych regionach, więc przepustowość pozostaje przewidywalna, zamiast spadać przy hałaśliwych sąsiadach.

Jeśli chcesz, aby tunel działał na stabilnym, nieudostępnianym adresie, dedykowane IPv4 jest dołączone do planów Business i Enterprise. A ponieważ prywatność jest zwykle sednem samodzielnego hostingu VPN, warto zauważyć, jak się rejestrujesz: ApexVPS to VPS bez KYC z rejestracją tylko przez e-mail i płatnością wyłącznie kryptowalutami przez OxaPay, akceptując Bitcoin, Ethereum, USDT i 30+ kryptowalut — bez nazwiska, adresu, karty kredytowej czy konta bankowego.

Często zadawane pytania

Czy trudno skonfigurować WireGuard na VPS?

Nie. WireGuard używa małego, czytelnego pliku konfiguracyjnego i kilku standardowych poleceń. Na świeżym Ubuntu lub Debianie VPS możesz go zainstalować, wygenerować klucze, napisać wg0.conf i podłączyć pierwszy klient w około dziesięć do piętnastu minut.

Czy potrzebuję dedykowanego IP dla VPN WireGuard?

Dedykowane IP nie jest ściśle wymagane, ale daje Twojemu tunelowi stabilny punkt końcowy nieudostępniany innym klientom. W ApexVPS dedykowane IPv4 jest dołączone do planu Business, a w Enterprise są dwa.

Które wersje Ubuntu i Debian obsługują WireGuard?

WireGuard jest wbudowany w jądro Linuksa od wersji 5.6, więc Ubuntu 20.04 i nowsze oraz Debian 11 i nowsze zawierają go domyślnie. Wystarczy zainstalować narzędzia przestrzeni użytkownika za pomocą apt.

Czy mogę używać tego samego serwera na telefonie?

Tak. Dodaj drugiego peera dla telefonu, wygeneruj konfigurację klienta i wyrenderuj ją jako kod QR za pomocą qrencode. Oficjalne aplikacje WireGuard na Androida i iOS skanują kod i łączą się natychmiast.

Czy mogę zapłacić za VPS bez karty kredytowej?

Tak. Płatność w ApexVPS jest tylko kryptowalutami i akceptuje Bitcoin, Ethereum, USDT i 30+ kryptowalut. Rejestracja wymaga tylko e-maila, abyśmy mogli wysłać dane dostępowe — bez nazwiska, adresu ani dokumentu tożsamości.

Gotowy na własny VPN? Sprawdź, dlaczego ApexVPS jest stworzony do prywatnych VPN →