WireGuard VPN na VPS — instalacja i konfiguracja
Opublikowano: 9 kwietnia 2026 · Kategoria: VPS / Bezpieczeństwo
WireGuard to nowoczesny protokół VPN, który zrewolucjonizował podejście do sieci prywatnych. Zamiast setek linii konfiguracji i skomplikowanej infrastruktury certyfikatów (jak w OpenVPN), WireGuard konfiguruje się w kilkanaście minut. Działa jako moduł jądra Linuxa, jest szybszy, prostszy i ma mniejszą powierzchnię ataku. Doskonały do bezpiecznego dostępu do VPS, łączenia serwerów w prywatną sieć lub tunelowania całego ruchu.
Instalacja WireGuard na Ubuntu/Debian
# Ubuntu 20.04+ / Debian 11+ (WireGuard jest w oficjalnych repozytoriach) apt update apt install -y wireguard wireguard-tools # Sprawdzenie wersji wg --version # Włączenie IP forwarding (wymagane dla full-tunnel VPN) echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p
Generowanie kluczy — serwer i klient
WireGuard używa kryptografii krzywych eliptycznych (Curve25519). Każdy peer — serwer i każdy klient — ma własną parę kluczy:
# Na serwerze VPS — generuj klucze serwera cd /etc/wireguard umask 077 # bezpieczne uprawnienia (tylko root) wg genkey | tee server_private.key | wg pubkey > server_public.key cat server_private.key # skopiuj — potrzebny w konfiguracji cat server_public.key # skopiuj — podasz klientom # Na komputerze klienta — generuj klucze klienta wg genkey | tee client_private.key | wg pubkey > client_public.key
Konfiguracja serwera — /etc/wireguard/wg0.conf
# /etc/wireguard/wg0.conf (serwer VPS) [Interface] Address = 10.8.0.1/24 # IP serwera w sieci VPN ListenPort = 51820 # port UDP PrivateKey = KLUCZ_PRYWATNY_SERWERA # Routing — przekazuj ruch klientów do internetu (full tunnel) 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 # Klient 1 (laptop) [Peer] PublicKey = KLUCZ_PUBLICZNY_KLIENTA_1 AllowedIPs = 10.8.0.2/32 # IP klienta 1 w sieci VPN # Klient 2 (telefon) [Peer] PublicKey = KLUCZ_PUBLICZNY_KLIENTA_2 AllowedIPs = 10.8.0.3/32
Uwaga: zamień eth0 na nazwę swojego interfejsu sieciowego (sprawdź przez ip a — może to być ens3, ens18 lub inne).
Konfiguracja klienta
# /etc/wireguard/wg0.conf (klient — Linux) [Interface] Address = 10.8.0.2/24 # IP klienta w sieci VPN PrivateKey = KLUCZ_PRYWATNY_KLIENTA DNS = 1.1.1.1 # opcjonalnie: DNS przez VPN [Peer] PublicKey = KLUCZ_PUBLICZNY_SERWERA Endpoint = IP_TWOJEGO_VPS:51820 # publiczny adres IP i port serwera AllowedIPs = 0.0.0.0/0 # full tunnel (cały ruch przez VPN) # AllowedIPs = 10.8.0.0/24 # split tunnel (tylko sieć VPN) PersistentKeepalive = 25 # wysyłaj keepalive co 25s (ważne za NAT)
UFW — reguły firewalla
# Otwórz port UDP 51820 na serwerze VPS ufw allow 51820/udp ufw allow OpenSSH # WAŻNE: nie zablokuj SSH! ufw enable # Sprawdzenie ufw status verbose
Uruchamianie — wg-quick
# Na serwerze — uruchom interfejs wg-quick up wg0 # Autostart po restarcie serwera systemctl enable wg-quick@wg0 systemctl start wg-quick@wg0 # Na kliencie — włącz/wyłącz VPN wg-quick up wg0 wg-quick down wg0 # Sprawdzenie statusu wg show
Weryfikacja połączenia
# Na serwerze — lista peerów i statystyki wg show # Przykładowy output: # interface: wg0 # public key: ABC... # listening port: 51820 # # peer: XYZ... (klucz publiczny klienta) # endpoint: 1.2.3.4:12345 # allowed ips: 10.8.0.2/32 # latest handshake: 5 seconds ago <-- połączony! # transfer: 1.23 MiB received, 456 KiB sent # Na kliencie — ping serwera VPN ping 10.8.0.1 # Sprawdzenie publicznego IP (powinno być IP VPS) curl ifconfig.me
Typowe zastosowania WireGuard na VPS
- Bezpieczny dostęp do VPS — zamknij wszystkie porty (SSH, HTTP, DB) i otwórz tylko port WireGuard. Usługi dostępne tylko przez VPN — niewidzialne z internetu.
- Prywatna sieć między serwerami — połącz kilka VPS w jedną sieć przez WireGuard. Baza danych dostępna tylko w sieci VPN (np. 10.8.0.0/24), backupy przez zaszyfrowany tunel.
- Prywatność internetowa — full tunnel (AllowedIPs = 0.0.0.0/0) ukrywa Twój rzeczywisty IP. Ruch wychodzi z IP Twojego VPS.
- Obejście restrykcji sieci — korporacyjne lub akademickie sieci blokujące określone protokoły lub porty. WireGuard na porcie 443 (UDP) często przechodzi niezauważony.