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
- VPS z systemem Ubuntu 20.04+ lub Debian 11+ z modułem jądra WireGuard (oba systemy go zawierają).
- Dostęp root lub sudo przez SSH. Każde polecenie poniżej zakłada, że możesz użyć
sudo. - Publiczny adres IP serwera i nazwa domyślnego interfejsu sieciowego.
- Port UDP 51820 osiągalny — domyślny port WireGuard. Otworzysz go w zaporze.
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.