Dostęp do domowej sieci z kawiarni, hotelu czy biura bywa trudny i często wiąże się z ryzykiem przechwycenia danych w niezabezpieczonych sieciach Wi-Fi. WireGuard to nowoczesny protokół VPN, który wielu ekspertów uważa za szybszy i prostszy w konfiguracji niż starsze rozwiązania, takie jak OpenVPN czy IPSec. Raspberry Pi – nawet w wersji Zero 2 W – może według wielu użytkowników sprawnie obsługiwać kilku jednoczesnych klientów VPN.
Konfiguracja serwerów i sieci może być skomplikowana i wiązać się z ryzykiem naruszenia bezpieczeństwa, jeśli zostanie wykonana nieprawidłowo. Wszelkie działania podejmujesz na własne ryzyko i odpowiedzialność.
| Element | Uwagi |
|---|---|
| Raspberry Pi (dowolna wersja) | Zalecane RPi 3B+, 4 lub 5 |
| Karta microSD (min. 8 GB) | Class 10 lub szybsza |
| Zasilacz micro-USB / USB-C | Oficjalny lub min. 3 A |
| Stałe połączenie z routerem | Najlepiej przez kabel Ethernet |
| Stały lub dynamiczny adres IP | Sprawdź, czy Twój adres IP zmienia się po restarcie routera – możesz to zweryfikować sam lub zapytać dostawcę internetu. Jeśli jest zmienny, skonfiguruj bezpłatny serwis DynDNS, np. DuckDNS. |
| Publiczny adres IP lub przekierowanie portu | Ustaw przekierowanie portu UDP 51820 samodzielnie w panelu routera. Jeśli dostawca przydziela Ci prywatny adres (CGNAT), poproś go o publiczny adres IP lub o przekierowanie portu po swojej stronie. |
Zainstaluj Raspberry Pi OS Lite (wersja 64-bit) używając Raspberry Pi Imager. Podczas tworzenia obrazu warto od razu skonfigurować dostęp SSH i dane sieci Wi-Fi w ustawieniach zaawansowanych Imagera (ikona koła zębatego). Po pierwszym uruchomieniu zaktualizuj system:
sudo apt update && sudo apt upgrade -y
Warto też ustawić statyczny adres IP dla Raspberry Pi w panelu administracyjnym routera (rezerwacja DHCP po adresie MAC) – dzięki temu adres lokalny nie zmieni się po ponownym uruchomieniu.
WireGuard jest dostępny w oficjalnych repozytoriach Raspberry Pi OS od wersji Bullseye (Debian 11). Instalacja sprowadza się do jednego polecenia:
sudo apt install wireguard -y
Następnie wygeneruj parę kluczy serwera (klucz prywatny i publiczny):
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
sudo chmod 600 /etc/wireguard/server_private.key
Utwórz plik konfiguracyjny interfejsu WireGuard. Zastąp TWOJ_KLUCZ_PRYWATNY zawartością pliku /etc/wireguard/server_private.key:
sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = TWOJ_KLUCZ_PRYWATNY
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
eth0 na wlan0 w liniach PostUp i PostDown.Aby Raspberry Pi mogło przekazywać pakiety między klientami VPN a internetem, należy włączyć IP forwarding:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Dla każdego urządzenia, które ma łączyć się przez VPN, generujesz osobną parę kluczy:
wg genkey | tee client1_private.key | wg pubkey > client1_public.key
Dodaj sekcję [Peer] do pliku wg0.conf serwera:
[Peer]
PublicKey = KLUCZ_PUBLICZNY_KLIENTA
AllowedIPs = 10.0.0.2/32
Konfiguracja po stronie klienta (np. w aplikacji WireGuard na Android lub iOS):
[Interface]
PrivateKey = KLUCZ_PRYWATNY_KLIENTA
Address = 10.0.0.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = KLUCZ_PUBLICZNY_SERWERA
Endpoint = TWOJ_IP_LUB_DOMENA:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo wg show
sudo wg show powinno wyświetlić aktywny interfejs i listę klientów (peers). Jeśli lista jest pusta przy braku połączenia klienta – to normalne. Przy problemach sprawdź logi: journalctl -u wg-quick@wg0 -e.W panelu administracyjnym routera dodaj regułę przekierowania portu UDP 51820 na lokalny adres IP Raspberry Pi (np. 192.168.1.100). Każdy router ma nieco inny interfejs – szukaj sekcji „Port Forwarding", „Wirtualne serwery" lub „NAT". Bez tego kroku klienci spoza sieci lokalnej nie będą w stanie nawiązać połączenia.
Większość domowych łączy internetowych może mieć zmienny publiczny adres IP. Warto rozważyć bezpłatne konto DuckDNS (duckdns.org) – po konfiguracji skryptu aktualizującego na Raspberry Pi, domena (np. mojdom.duckdns.org) zawsze wskazuje na aktualny adres IP.
sudo iptables -t nat -L.wg0.conf nie zawiera błędów składniowych i czy klucz prywatny jest poprawnie wklejony.Raspberry Pi z WireGuard może być relatywnie tanim i elastycznym rozwiązaniem VPN dla domowej sieci – koszt sprzętu to zazwyczaj 150–350 zł zależnie od modelu. WireGuard jest przez wielu specjalistów uważany za jeden z nowocześniejszych protokołów VPN – prostszy w konfiguracji i prawdopodobnie szybszy niż OpenVPN. Pamiętaj jednak, że żadne rozwiązanie VPN nie zapewnia stuprocentowej anonimowości w internecie.