W dzisiejszym świecie prywatność w sieci i ominięcie blokad geograficznych to podstawa dla użytkowników Ubuntu. VPN (Virtual Private Network) szyfruje ruch internetowy, chroniąc przed podsłuchem i umożliwiając dostęp do treści zablokowanych w danym regionie.
W tym poradniku pokazujemy pełną konfigurację VPN na Ubuntu – od własnego serwera OpenVPN po podłączenie do komercyjnych usług. Proces jest dostosowany do Ubuntu 20.04/22.04 LTS i działa także na nowszych wersjach z minimalnymi zmianami.
Dlaczego VPN na Ubuntu – korzyści i ryzyka
VPN na Linuksie, takim jak Ubuntu, zapewnia szyfrowanie end‑to‑end, maskowanie IP i ochronę w publicznych sieciach Wi‑Fi. Ubuntu wspiera protokoły jak OpenVPN (bezpieczny, lecz często wolniejszy) i WireGuard (bardzo szybki i lekki). Ryzyka dotyczą głównie słabej konfiguracji – spadków prędkości i wycieków DNS.
Najważniejsze korzyści z użycia VPN na Ubuntu:
- szyfrowanie całego ruchu sieciowego,
- maskowanie adresu IP i lokalizacji,
- ochrona w publicznych sieciach Wi‑Fi,
- ominięcie blokad geograficznych.
Zawsze testuj konfigurację po połączeniu – przykładowo poleceniem curl ifconfig.me lub curl ipinfo.io, a także testem DNS‑leak.
Wymagania wstępne do konfiguracji serwera VPN
Poniżej znajdziesz listę wymagań, które ułatwią płynne przejście przez konfigurację:
- serwer VPS z Ubuntu 20.04+ (np. 1 GB RAM, publiczne IP),
- dostęp root (lub sudo),
- podstawowa znajomość terminala,
- czas: 30–60 minut.
Dla klientów: zainstalowany Ubuntu Desktop/Server oraz prawa do instalacji pakietów.
Część 1 – postawienie własnego serwera VPN z OpenVPN (krok po kroku)
OpenVPN to darmowe, open‑source’owe rozwiązanie polecane do samodzielnej konfiguracji. Poniższe kroki bazują na sprawdzonych praktykach administracyjnych.
Krok 1 – aktualizacja systemu i instalacja OpenVPN + Easy‑RSA
Otwórz terminal i zaktualizuj pakiety, a następnie zainstaluj potrzebne komponenty:
sudo apt update && sudo apt upgrade -y
sudo apt install openvpn easy-rsa ufw -y
Pakiet Easy‑RSA służy do generowania certyfikatów SSL/TLS i zarządzania infrastrukturą kluczy (PKI).
Krok 2 – generowanie certyfikatów z Easy‑RSA
Utwórz katalog roboczy i przejdź do niego:
make-cadir ~/easy-rsa
cd ~/easy-rsa
Skonfiguruj plik vars (np. edytorem nano vars) i ustaw pola organizacyjne, np. set_var EASYRSA_REQ_COUNTRY "PL". Zainicjuj PKI i wygeneruj klucze/certyfikaty:
./easyrsa init-pki
./easyrsa --batch build-ca nopass
./easyrsa gen-dh
openvpn --genkey --secret pki/ta.key
./easyrsa build-server-full server nopass
./easyrsa build-client-full client1 nopass
Następnie skopiuj wymagane pliki do katalogu konfiguracyjnego OpenVPN:
sudo cp pki/ca.crt pki/private/ca.key pki/dh.pem pki/ta.key pki/issued/server.crt pki/private/server.key /etc/openvpn/
sudo chown -R root:root /etc/openvpn/
Krok 3 – konfiguracja serwera OpenVPN
Skopiuj przykładowy plik i otwórz go do edycji:
sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
sudo nano /etc/openvpn/server.conf
Wprowadź kluczowe zmiany w /etc/openvpn/server.conf (port, protokół, szyfrowanie, DNS):
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
tls-auth ta.key 0
cipher AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun
Upewnij się, że używasz szyfrowania AES‑256‑GCM oraz przekierowania bramy, aby cały ruch przechodził przez VPN.
Krok 4 – konfiguracja firewalla (UFW) i NAT
Dodaj podstawowe reguły w UFW, aby zezwolić na SSH i ruch OpenVPN:
sudo ufw allow OpenSSH
sudo ufw allow 1194/udp
sudo ufw enable
Włącz IP forwarding i skonfiguruj NAT, by klienci mieli dostęp do Internetu:
# włącz forwardowanie IPv4
sudo sed -i 's/^#\?net.ipv4.ip_forward=.*/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sudo sysctl -p
# NAT (dopasuj interfejs WAN, np. eth0/ens3)
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo apt install iptables-persistent -y
Zapisz reguły iptables podczas instalacji iptables‑persistent, aby przetrwały restart systemu.
Krok 5 – uruchomienie serwera i przygotowanie klienta
Uruchom i włącz usługę OpenVPN, a następnie sprawdź jej status:
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
sudo systemctl status openvpn@server
Utwórz skrypt do generowania plików .ovpn dla klientów (zamień TWOJ_IP na adres publiczny serwera):
#!/bin/bash
NAME=$1
PKI_DIR=~/easy-rsa/pki
OUTPUT_DIR=~/client-configs/files
mkdir -p "$OUTPUT_DIR"
echo "client
dev tun
proto udp
remote TWOJ_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
key-direction 1
<ca>" > $OUTPUT_DIR/$NAME.ovpn
cat $PKI_DIR/ca.crt >> $OUTPUT_DIR/$NAME.ovpn
echo "</ca>
<cert>" >> $OUTPUT_DIR/$NAME.ovpn
cat $PKI_DIR/issued/$NAME.crt >> $OUTPUT_DIR/$NAME.ovpn
echo "</cert>
<key>" >> $OUTPUT_DIR/$NAME.ovpn
cat $PKI_DIR/private/$NAME.key >> $OUTPUT_DIR/$NAME.ovpn
echo "</key>
<tls-auth>" >> $OUTPUT_DIR/$NAME.ovpn
cat $PKI_DIR/ta.key >> $OUTPUT_DIR/$NAME.ovpn
echo "</tls-auth>" >> $OUTPUT_DIR/$NAME.ovpn
Nadaj uprawnienia i wygeneruj pierwszy profil klienta:
chmod +x ~/client-configs/make_config.sh
~/client-configs/make_config.sh client1
Skopiuj plik ~/client-configs/files/client1.ovpn na urządzenie klienta (np. przez SCP lub SFTP).
Krok 6 – połączenie klienta na Ubuntu
Zainstaluj obsługę OpenVPN w środowisku graficznym:
sudo apt install openvpn network-manager-openvpn-gnome -y
Po instalacji możesz użyć interfejsu graficznego: ikona sieci > Ustawienia > VPN > Dodaj > OpenVPN > wskaż plik client1.ovpn i zapisz. Alternatywnie w terminalu uruchom: sudo openvpn --config client1.ovpn.
Dodatkowe zabezpieczenia – włącz 2FA (np. Google Authenticator) przez instalację google-authenticator i integrację z PAM oraz server.conf.
Alternatywa – WireGuard – szybszy VPN na Ubuntu
WireGuard zapewnia wyższą wydajność, prostszą konfigurację i nowoczesną kryptografię w porównaniu z OpenVPN.
Instalacja i wygenerowanie kluczy na serwerze:
sudo apt install wireguard -y
wg genkey | tee private.key | wg pubkey > public.key
Skonfiguruj interfejs w /etc/wireguard/wg0.conf (adresy, klucze, peers), a następnie uruchom usługę:
sudo systemctl enable --now wg-quick@wg0
Dla klientów możesz generować konfiguracje oraz kody QR (np. wg-quick + narzędzie qrencode) do szybkiego parowania.
Część 2 – polecane usługi VPN komercyjne – analiza recenzji
Jeśli nie chcesz utrzymywać własnego serwera, wybierz płatne VPN z natywnym wsparciem Ubuntu. Analiza poniżej opiera się na recenzjach z forów IT, YouTube i stron dostawców.
Poniżej znajdziesz porównanie popularnych usług pod kątem wsparcia dla Ubuntu:
| Usługa | Ocena średnia (z recenzji) | Zalety na Ubuntu | Wady | Cena (mies.) | Protokoły |
|---|---|---|---|---|---|
| Hide.me | 4.7/5 | Aplikacja natywna (GUI/CLI), brak logów, serwery w Polsce; prosta konfiguracja w NetworkManager. | Limit danych w wersji free. | 10–15 zł | OpenVPN, WireGuard |
| ExpressVPN | 4.8/5 | Natywny klient, ponad 3000 serwerów, bardzo stabilne połączenia na Ubuntu. | Wyższa cena. | 40–50 zł | Lightway, OpenVPN |
| NordVPN | 4.6/5 | Klient .deb dla Linuksa, opcja Onion over VPN, dobre opinie pod kątem P2P. | Niekiedy niższe prędkości na serwerach PL. | 15–25 zł | NordLynx (WireGuard) |
| Surfshark | 4.5/5 | Nielimitowana liczba urządzeń, przystępna cena, łatwy import profili .ovpn. | Mniej lokalnych serwerów w Polsce. | ok. 10 zł | WireGuard |
Hide.me wyróżnia się na Ubuntu prostą instalacją – pobierasz konfiguracje z panelu i importujesz je w Ustawieniach sieci (VPN). Inni dostawcy (np. SmartDNSProxy) wymagają podania bramy, użytkownika/hasła oraz certyfikatu CA/TLS – import przez NetworkManager działa bezproblemowo.
Aby zainstalować klienta uniwersalnego (np. zdalny dostęp do korporacyjnych bram Cisco/Palo Alto), użyj poniższych kroków:
wget https://example.com/snx_install.sh
sudo sh snx_install.sh
sudo apt install libpam0g:i386 libstdc++5:i386 libx11-6:i386
Po instalacji połącz się poleceniem:
snx -s vpn.server.com -u user
Rozwiązywanie problemów
Poniżej zebraliśmy najczęstsze problemy i ich szybkie rozwiązania:
- brak połączenia – sprawdź firewall (
ufw status), otwarcie portu 1194/UDP oraz IP forwarding; - wycieki DNS – dodaj w serwerze
push "dhcp-option DNS 1.1.1.1"albo skonfiguruj własny resolver; - wolne prędkości – przełącz się na WireGuard lub upewnij się, że używasz AES‑256‑GCM;
- test połączenia – wykonaj
curl ipinfo.ioprzed i po połączeniu oraz test prędkościspeedtest-cli.
Testuj zawsze po każdej zmianie konfiguracji – szybciej wykryjesz błędy i unikniesz wycieków danych.
10 najczęstszych błędów przy zarządzaniu utrzymaniem ruchu i jak CMMS im zapobiega
Najdroższe skiny w CS:GO – ile kosztują wirtualne przedmioty?
Jak usunąć konto Microsoft z komputera?
Najlepsze przystawki Smart TV – ranking i porady, jaki model wybrać
VPN na Ubuntu – konfiguracja i polecane usługi
Aktualizacja Wiedźmina 3 na nowe konsole – opóźnienia
Nagłówki linków na Twitterze (X) – zmiany w wyglądzie
Jak cofnąć aktualizację aplikacji na Androidzie?