Poradnik

Uruchom własny VPN na offshore VPS

Komercyjne VPN-y każą Ci ufać polityce braku logów napisanej przez ich dział marketingu. Twój własny VPS nie ma czego logować poza tym, co sam skonfigurujesz. Poniżej pełna konfiguracja WireGuard — oraz uczciwa lista kompromisów.

Dlaczego własny hosting bije komercyjny VPN

„Brak logów” w komercyjnym VPN to polityka. Brak logów na Twoim VPS to architektura. Ta różnica znaczy więcej niż jakikolwiek certyfikat audytu:

  • Dostawca VPN widzi wszystko z założenia. Ruch tysięcy użytkowników kończy się na serwerach, które firma w pełni kontroluje. Tajny nakaz plus cicha zmiana polityki logowania jest dla Ciebie niewidoczna — i zdarzyło się to już wcześniej, u dostawców, o których słyszałeś.
  • Na własnym VPS kontrolujesz cały stos. Twój sshd, Twój dysk, Twoja konfiguracja WireGuard. Nie uruchamiamy niczego wewnątrz Twojego gościa i nie prowadzimy żadnych logów aktywności ani połączeń po stronie sieci. Nie widzimy wnętrza Twojego VPS; firma VPN istnieje po to, by widzieć wnętrze swojego tunelu.
  • Jurysdykcja działa na Twoją korzyść. Twój punkt wyjścia znajduje się tam, gdzie go wdrożysz — poza sojuszami wywiadowczymi, jeśli tak wybierzesz, podlegając sądom jurysdykcji hostingowej, a nie krajowi macierzystemu firmy VPN.

I uczciwa przeciwwaga: samodzielny VPN ma dedykowany adres IP, który należy wyłącznie do Ciebie. Strony nie oznaczą go jako VPN (prawdziwa poprawa komfortu), ale cały Twój ruch współdzieli jeden adres — nie mieszasz się w tłum tysięcy. Jeśli wymaganiem jest anonimowość tłumu, użyj Tora. Jeśli wymaganiem jest godna zaufania infrastruktura, nic nie przebije maszyny, którą kontrolujesz.

Co budujemy

Telefon i laptop → tunel WireGuard → SV-Pro w wybranej lokalizacji → otwarty internet. Przekazywanie IPv4 z NAT na serwerze, routing pełnego tunelu na klientach (0.0.0.0/0), DNS przez 9.9.9.9. Przykładowy adres IP serwera: 185.220.101.14 — zastąp własnym. System bazowy to Debian 13; jeśli jeszcze nie utwardziłeś maszyny, zrób najpierw listę kontrolną 30 minut , a potem wróć.

Konfiguracja serwera na Debianie 13

Instalacja i generowanie kluczy

apt update && apt install -y wireguard qrencode

cd /etc/wireguard
umask 077

# server keypair
wg genkey | tee server.key | wg pubkey > server.pub

# one keypair per client device (laptop shown; repeat for phone)
wg genkey | tee laptop.key | wg pubkey > laptop.pub

Generowanie kluczy klienta na serwerze jest akceptowalne przy pierwszej konfiguracji, ponieważ i tak przesyłasz konfiguracje przez SSH. Dla ściślejszej higieny generuj klucze na każdym urządzeniu i wklejaj tylko klucze publiczne do konfiguracji serwera.

Zapisz wg0.conf

# /etc/wireguard/wg0.conf
[Interface]
Address    = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.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

# laptop
[Peer]
PublicKey  = <contents of laptop.pub>
AllowedIPs = 10.10.0.2/32

# phone — repeat the block with 10.10.0.3/32

Sprawdź nazwę interfejsu uplink poleceniem ip route | grep default — na obrazach VPSRento to eth0, ale jeśli u Ciebie jest inaczej, dostosuj linie MASQUERADE.

Włącz przekazywanie i uruchom

# turn on IPv4 forwarding, persist across reboots
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wireguard.conf
sysctl -p /etc/sysctl.d/99-wireguard.conf

# firewall: one UDP port, nothing else
ufw allow 51820/udp comment 'WireGuard'

# bring it up, now and on boot
systemctl enable --now wg-quick@wg0
wg show

wg show powinien wypisać interfejs, port nasłuchu i peerów. Linii handshake jeszcze nie ma — pojawią się, gdy klient się połączy.

Konfiguracja klienta

Na laptopie, laptop.conf:

[Interface]
PrivateKey = <contents of laptop.key>
Address    = 10.10.0.2/32
DNS        = 9.9.9.9

[Peer]
PublicKey           = <contents of server.pub>
AllowedIPs          = 0.0.0.0/0, ::/0
Endpoint            = 185.220.101.14:51820
PersistentKeepalive = 25

AllowedIPs = 0.0.0.0/0, ::/0 kieruje cały ruch przez tunel — później możesz zmienić go na tunel dzielony, jeśli będziesz chciał. PersistentKeepalive utrzymuje połączenie aktywne przez domowy NAT. W przypadku telefonu nie wpisuj niczego: wygeneruj plik konfiguracyjny telefonu na serwerze i wyświetl go jako kod QR w terminalu:

# prints a scannable QR in the terminal — scan it with the WireGuard app
qrencode -t ansiutf8 < phone.conf

Aktywuj, a następnie zweryfikuj z dowolnego klienta: curl ifconfig.me powinien odpowiedzieć adresem IP Twojego VPS, a test wycieku DNS powinien pokazać operatora 9.9.9.9 — a nie Twojego ISP.

Uwagi dotyczące wydajności

WireGuard działa w jądrze i używa ChaCha20 — na węzłach AMD EPYC pojedynczy tunel realistycznie przesyła 600–900 Mbps przez NAT, co oznacza, że wysyca port na długo przed obciążeniem CPU. Wiążącym ograniczeniem nigdy nie jest szyfr; są to warunki transferu w planie. VPN to czysty transfer: każdy pobrany gigabajt liczy się raz na wejściu i raz na wyjściu. W planach z limitami ta arytmetyka ma znaczenie. W SV-Pro — $19.99/mies., bez limitu przy 1 Gbps — nie ma, dlatego SV-Pro to plan, który polecamy budującym VPN. Jeden klient prowadzi pełną konfigurację rodzinną na pojedynczym SV-Pro w Amsterdamie i wciąż nie znalazł jego limitu.

Multi-hop: wejście w Amsterdamie, wyjście w Reykjaviku

Dla drugiej warstwy połącz dwa VPS-y w różnych jurysdykcjach. Węzeł wejściowy w Holandii (niskie opóźnienie do Ciebie), tunel WireGuard między serwerami, węzeł wyjściowy w Islandii (jurysdykcja, z której chcesz, aby pochodził Twój ruch). Twoje urządzenia widzą jeden punkt końcowy w Amsterdamie; internet widzi adres IP w Reykjaviku; węzeł wejściowy widzi tylko szyfrogram. Mechanicznie to te same konfiguracje, które właśnie napisałeś, dwa razy — drugi interfejs wg na węźle wejściowym, którego trasa domyślna wskazuje tunel wyjściowy. Koszt to około 40–60ms dodatkowego opóźnienia i jeden więcej $5.99–6.89 VPS. Warto, gdy Twój model zagrożeń ma budżet; ozdoba, gdy nie ma.

Uczciwe ograniczenia

  • Teraz Ty jesteś operatorem. Aktualizacje, rotacja kluczy i dostępność należą do Ciebie. unattended-upgrades i lista kontrolna zabezpieczeń pokrywają większość; reszta to okazjonalne apt upgrade w niedzielę.
  • Jeden adres IP to jedna tożsamość. Obserwatorzy mogą korelować wszystko, co wychodzi z Twojego adresu. Gdy to ma znaczenie, wdróż ponownie w innej lokalizacji — 55 sekund później masz świeże wyjście i świeży adres IP sprawdzony względem ponad 40 list blokujących.
  • VPS to nie Tor. Ta konfiguracja chroni Cię przed Twoim ISP, wrogim Wi-Fi i firmami VPN. Przeciwko przeciwnikowi na poziomie państwa obserwującemu oba końce tunelu istnieje korelacja czasowa. Wiedz, w jakiej walce jesteś.

Twój tunel. Twoje logi: żadne.

SV-Pro — 4 vCPU, 8 GB RAM, nielimitowany 1 Gbps — to wybór twórców VPN za $19.99/mies.. Root w 55 sekund.

Polski