O Wireguard
WireGuard to lekki VPN wbudowany w jądro Linuksa, oparty na kluczach publicznych i konfiguracji liczącej zaledwie kilka linii. Kod jest krótki, więc łatwiej go zweryfikować niż w przypadku starszych rozwiązań VPN, a tunel nawiązuje się niemal natychmiast. Korzystają z niego zarówno programiści, jak i małe zespoły, które chcą mieć własny punkt wyjścia do internetu.
Po dostarczeniu VPS-a jest w nim zainstalowany pakiet wireguard, a interfejs wg0 jest skonfigurowany i uruchamiany przez wg-quick@wg0. Serwer nasłuchuje po UDP na porcie 51820 i używa sieci prywatnej 10.8.0.0/24 (serwer ma adres 10.8.0.1). Routing IPv4 i NAT (masquerade) są włączone, dzięki czemu ruch Twoich klientów wychodzi przez publiczny adres IP serwera.
Pierwszy klient jest już utworzony, z kluczem współdzielonym (pre-shared key) obok standardowych kluczy. Jego konfiguracja znajduje się w /root/wg-client.conf, a kod QR dla aplikacji mobilnej w /root/wg-client-qr.txt. Wystarczy je zaimportować.
Co możesz zrobić z Wireguard
Gotowy pełny tunel
Wygenerowany klient używa AllowedIPs = 0.0.0.0/0, więc cały ruch IPv4 przechodzi przez VPS. DNS klienta jest ustawiony na 1.1.1.1.
Konfiguracja klienta i kod QR
Plik /root/wg-client.conf importujesz bez zmian w klientach WireGuard. Kod QR z /root/wg-client-qr.txt wyświetlisz w terminalu i zeskanujesz aplikacją mobilną.
Klucz współdzielony dla peera
Klucz wygenerowany przez wg genpsk uzupełnia wymianę kluczy publicznych i wzmacnia ochronę połączenia. Pliki wrażliwe powstają z uprawnieniami 600.
Automatyczny start po restarcie
Usługa wg-quick@wg0 jest włączona w systemd. Tunel wraca sam po ponownym uruchomieniu serwera.
NAT i forwarding już działają
Forwarding IPv4 jest włączony w /etc/sysctl.d/99-wireguard.conf. Reguły iptables dla FORWARD i masquerade są stosowane przy starcie wg0 i usuwane przy jego zatrzymaniu.
Pierwsze kroki z Wireguard
Od zamówienia do produkcji w kilka minut.
- 1
Zamów VPS z WireGuard
Wybierz VPS z Linuksem w Paryżu lub Frankfurcie (Debian 12, Debian 13, Ubuntu 20.04, 22.04 lub 24.04). W zakładce „Applications” formularza zamówienia zaznacz WireGuard.
- 2
Połącz się i pobierz profil klienta
Po dostarczeniu serwera zaloguj się przez SSH, używając otrzymanych danych dostępowych. Sprawdź, czy tunel działa, a następnie wyświetl kod QR albo skopiuj plik konfiguracyjny na swój komputer.
Bashssh root@SERVER_IP systemctl status wg-quick@wg0 cat /root/wg-client-qr.txt # z Twojego komputera: scp root@SERVER_IP:/root/wg-client.conf . - 3
Zaimportuj konfigurację i przetestuj
Zeskanuj kod QR aplikacją WireGuard na telefonie albo zaimportuj wg-client.conf w aplikacji desktopowej. W Linuksie wystarczy jedno polecenie, a potem sprawdź, czy doszło do handshake'u.
Bashsudo wg-quick up ./wg-client.conf sudo wg show - 4
Zabezpiecz serwer na produkcję
Upewnij się, że port UDP 51820 jest otwarty, a pozostałe wystawione porty ograniczone. Jeśli wolisz nazwę zamiast adresu IP, po utworzeniu rekordu DNS zamień linię Endpoint w pliku klienta na YOUR_DOMAIN:51820. Kopię zapasową /etc/wireguard trzymaj poza serwerem.
Bashtar czf wg-backup.tgz /etc/wireguard /root/wg-client.conf
Zastosowania Wireguard
Ochrona w publicznym Wi-Fi
W hotelu, pociągu czy kawiarni Twój ruch IPv4 trafia szyfrowanym tunelem do VPS-a, zanim wyjdzie do internetu.
Stały adres IP wyjścia
Adresem wyjścia staje się IP Twojego VPS-a, więc na firewallu, w bazie danych lub w administracyjnym API możesz dopuścić tylko jeden adres.
Połączenie własnych urządzeń
Komputer, telefon i zdalne maszyny dołączają do sieci 10.8.0.0/24 i mogą się łączyć przez adresy prywatne, a serwer pełni rolę centralnego punktu.
Wybór Paryża lub Frankfurtu
Region wyjścia wybierasz, wskazując lokalizację VPS-a przy zamówieniu, na przykład aby przetestować usługę z Francji lub z Niemiec.
Najczęstsze pytania o Wireguard
Zaloguj się przez SSH i odczytaj /root/wg-client.conf albo wyświetl kod QR poleceniem cat /root/wg-client-qr.txt. Plik możesz też skopiować na komputer poleceniem scp root@SERVER_IP:/root/wg-client.conf .
Więcej o Wireguard
Zainstalowane pliki i usługi
/etc/wireguard/wg0.conf: konfiguracja serwera (klucz prywatny, peer client1, reguły PostUp i PostDown)./root/wg-client.conf: konfiguracja pierwszego klienta./root/wg-client-qr.txt: kod QR tej konfiguracji, który wyświetlisz poleceniemcat./etc/sysctl.d/99-wireguard.conf: włączanet.ipv4.ip_forward./opt/install-wireguard.sh: skrypt instalacyjny uruchomiony podczas dostawy.
Klient otrzymuje adres 10.8.0.2/32. Adres publiczny w polu Endpoint to ten, który wykryto w momencie instalacji.
Dodawanie kolejnego urządzenia
Każde urządzenie musi mieć własną parę kluczy i własny adres (10.8.0.3, 10.8.0.4 itd.). Wygeneruj klucze na serwerze, a następnie dodaj blok [Peer] do wg0.conf.
Bashcd /etc/wireguard umask 077 wg genkey | tee client2.key | wg pubkey > client2.pub wg genpsk > client2.psk
Następnie wpisz w /etc/wireguard/wg0.conf zawartość client2.pub i client2.psk wraz z AllowedIPs = 10.8.0.3/32, po czym przeładuj konfigurację bez przerywania istniejących tunelów:
Bashwg syncconf wg0 <(wg-quick strip wg0)
Plik klienta przygotuj na podstawie /root/wg-client.conf: zmień PrivateKey i Address, a PublicKey serwera oraz Endpoint zostaw bez zmian.
Na co zwrócić uwagę
Wygenerowany klient kieruje przez tunel tylko ruch IPv4 (0.0.0.0/0). Jeśli Twój komputer ma IPv6, ten ruch tunelem nie pójdzie. Jeśli ma to dla Ciebie znaczenie, wyłącz IPv6 po stronie klienta.
Serwer DNS klienta to 1.1.1.1. Aby użyć innego resolvera, zmień linię DNS w pliku klienta. Traktuj /root/wg-client.conf jak hasło: zawiera klucz prywatny klienta. Po imporcie usuń zbędne kopie.
Więcej poradników o administrowaniu serwerem Linux znajdziesz w naszych tutorialach oraz na stronie VPS z Linuksem.