Ugrás a fő tartalomra
50% kedvezmény minden csomagra, korlátozott ideig. Már $2.48/mo
12 min left
Biztonság és hálózat

WireGuard VPN beállítása VPS-en

Pius Bodenmann Szerző: Pius Bodenmann 12 perc olvasás Frissítette: Mir 12d ago
WireGuard VPN tunnel active on an Ubuntu VPS terminal and a phone client

Egy saját üzemeltetésű WireGuard VPN titkosított utat ad a laptopjának és a telefonjának egy olyan szerverhez, amelyet Ön felügyel. Akkor hasznos, ha stabil kimenő IP-címre, megbízhatatlan Wi-Fi-n biztonságos hozzáférésre vagy egy másik hálózatba vezető privát útvonalra van szüksége. Névtelenné viszont nem teszi: a webhelyek továbbra is egyetlen VPS-címet látnak, a tárhelyszolgáltató pedig továbbra is üzemelteti a mögöttes hálózatot.

Ez az útmutató teljes alagutas IPv4 VPN-t épít Ubuntu Serveren. Telepíti a WireGuardot, korlátozó jogosultságokkal kulcsokat generál, engedélyezi az útválasztást, tűzfal- és NAT-szabályokat ad hozzá, asztali és mobil klienseket csatlakoztat, majd ellenőrzi az alagutat. Ugyanez a felépítés IPv6-ot is támogat, de csak azután, hogy a VPS routolt IPv6-tartományt kapott, és Ön külön beállította az IPv6-továbbítást és a tűzfalszabályokat.

Mi az a WireGuard?

A WireGuard egy modern, több platformon futó VPN-protokoll és annak megvalósítása, amely titkosított IP-csomagokat továbbít UDP-n keresztül. A WireGuard protokollspecifikáció rögzített kriptográfiai primitívkészletet ír elő, köztük a ChaCha20-Poly1305, Curve25519, BLAKE2s, SipHash24 és HKDF megoldásokat. Ez a szándékosan szűkre szabott felépítés egyszerűbbé teszi a beállítást és az auditálást, mint a sok felcserélhető titkosítókészletet kínáló protokolloknál.

A WireGuardnak nincs központi fiókrendszere és beépített felhasználói névtára. Minden eszköz egy peer, saját kulcspárral, alagútcímmel és AllowedIPs szabályokkal. VPS-en általában egy peer tölti be az internet felé néző átjáró szerepét, a laptopok és telefonok pedig felé kezdeményezik a kapcsolatot.

Miért érdemes WireGuardot használni VPS-en?

  • Egyszerű peer-modell: Minden eszköz egy kulcspárt és egy peer-bejegyzést kap.
  • Kicsi támadási felület: A WireGuard tömör protokollt és rögzített titkosítókészletet használ ahelyett, hogy hosszú listát kínálna elavult beállításokból.
  • Jó teljesítmény: A Linux kernelintegrációja és a hatékony kriptográfia nagy átbocsátóképességet adhat, az eredmény azonban továbbra is függ a CPU-tól, a hálózati kapacitástól, a késleltetéstől és a csomagmérettől.
  • Több platformot támogató kliensek: Hivatalos kliens érhető el Windows 10 és 11, macOS, Android és iOS rendszerre, a Linux és több BSD rendszer pedig natív eszközöket vagy csomagokat kínál.
  • Barangolás: Egy peer válthat hálózatot és forrás IP-címet anélkül, hogy új WireGuard-azonosítót kapna; a kiszolgáló megjegyzi a legutóbbi hitelesített végpontot.
  • Áttekinthető útválasztás-vezérlés: Az AllowedIPs egyszerre határozza meg, mely célok haladnak az alagúton, és mely alagútcímek tartoznak az egyes peerekhez.

Kapcsolódó olvasmány: a Cloudzy VPN-hez való VPS útmutatója. Régebbi telepítésekhez lásd: a Cloudzy PPTP-beállítási útmutatója; új, biztonságkritikus VPN-hez ne válassza a PPTP-t.

Hagyja ki a kézi telepítést: WireGuard egy kattintással

Ha nincs műszaki háttere, vagy egyszerűen nem szeretne maga bajlódni a telepítéssel, a Cloudzy egykattintásos WireGuard VPN-telepítést kínál. Az útmutató további része a kézi felépítésről szól, ez a szakasz pedig a rövidebb útról.

  1. Jelentkezzen be a Cloudzy vezérlőpultjába.
  2. Válassza ki a WireGuardot az alkalmazások listájából.
  3. Hozzon létre egy VPS-t a kívánt helyszínen, tetszőleges csomaggal. Egy alapszintű konfigurációjú Ubuntu gép elegendő.

Amint a VPS elkészült, jelentkezzen be, és futtassa az alábbi parancsot a konfiguráció megjelenítéséhez:

cat client.conf

Valami ilyesmit fogsz látni:

Terminal output of cat client.conf on a one-click WireGuard VPS, showing the Interface and Peer blocks with the keys and endpoint redacted

Ezzel a konfigurációval hozzon létre egy új alagutat a PC-jén futó WireGuard kliensben, és a kapcsolat kész is. Ha inkább minden részletet érteni szeretne, vagy olyan felépítésre van szüksége, amit az egykattintásos image nem fed le, folytassa az alábbi kézi telepítéssel.

WireGuard beállítása Ubuntun

Six-step WireGuard setup cycle around a VPS: install, generate keys, configure wg0 with 10.8.0.1/24, enable forwarding between wg0 and eth0, add firewall and NAT rules on UDP 51820, then start and verify the interface

Az alábbi parancsok egy aktuális Ubuntu Server kiadásra készültek. Futtassa őket SSH-n keresztül, sudo jogosultságú felhasználóként. Hagyja nyitva az SSH-munkamenetet, amíg a tűzfalat nem ellenőrizte, és előtte készítsen VPS-pillanatképet, ha a szolgáltatója támogatja.

Előfeltételek

  • Egy Ubuntu VPS nyilvános IPv4-címmel
  • Egy nem root fiók sudo jogosultsággal
  • SSH-hozzáférés és a VPS-szolgáltató helyreállítási konzoljának adatai
  • Egy kliens eszköz a hivatalos WireGuard alkalmazással vagy a parancssori eszközökkel

Nincs szüksége második Ubuntu szerverre. A kliens lehet Windows PC, Mac, Linuxos laptop, Android telefon vagy iPhone.

1. lépés: A WireGuard telepítése

sudo apt update
sudo apt install wireguard -y

Ellenőrizze, hogy az eszközök elérhetők-e:

wg --version

2. lépés: A szerver kulcsainak biztonságos létrehozása

Hozza létre a WireGuard könyvtárát, és generálja a kulcspárt szigorú umask mellett. A privát kulcsot soha nem szabad kliensre másolni vagy naplókban közzétenni.

sudo install -d -m 700 /etc/wireguard
sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server.key; wg pubkey < /etc/wireguard/server.key > /etc/wireguard/server.pub'

Akkor jelenítse meg a kulcsokat, amikor be kell illesztenie őket a konfigurációs fájlokba:

sudo cat /etc/wireguard/server.key
sudo cat /etc/wireguard/server.pub

3. lépés: A szerver konfigurációjának létrehozása

Nyissa meg az interfész konfigurációját:

sudo nano /etc/wireguard/wg0.conf

Illessze be az alábbi blokkot, és cserélje a SERVER_PRIVATE_KEY értéket az előző lépésben kapott privát kulcsra:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY

A 10.8.0.0/24 alagúthálózat csak példa. Válasszon másik privát tartományt, ha átfedésbe kerül olyan otthoni, irodai vagy felhőalapú hálózattal, amelyet el kell érnie. Ne vegye fel a SaveConfig = true sort: az interfész leállásakor felülírhatja a fájlt, és törölheti a kézzel szerkesztett módosításokat.

sudo chmod 600 /etc/wireguard/wg0.conf

4. lépés: Az IPv4-továbbítás engedélyezése

A VPS-nek csomagokat kell útválasztania a wg0 és a nyilvános hálózati interfésze között. Tegye a beállítást külön sysctl fájlba:

sudo nano /etc/sysctl.d/70-wireguard-routing.conf
net.ipv4.ip_forward = 1

Alkalmazza és ellenőrizze:

sudo sysctl -p /etc/sysctl.d/70-wireguard-routing.conf
sysctl net.ipv4.ip_forward

Ez a következő útválasztási modellt követi: az Ubuntu WireGuard átjáró útmutatója. Az IPv6-hoz routolt IPv6-előtag, külön alagútcímek, IPv6-továbbítás és IPv6-tűzfalszabályok kellenek; ne küldje a kliensforgalmat a ::/0 címre, amíg ez az útvonal nincs kész.

5. lépés: Tűzfal- és NAT-szabályok hozzáadása

Keresse meg a VPS nyilvános interfészének nevét. Az alábbi kimenetben figyelje a dev utáni értéket; gyakori nevek az eth0, az ens3 és az enp1s0.

ip route show default

Nyissa meg újra a wg0.conf fájlt, és adja hozzá az alábbi sorokat az [Interface] szakaszhoz. Ha a nyilvános interfésze máshogy hívják, cserélje az eth0 nevet mindenhol:

PostUp = iptables -I FORWARD 1 -i %i -o eth0 -j ACCEPT; iptables -I FORWARD 1 -i eth0 -o %i -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PreDown = iptables -D FORWARD -i %i -o eth0 -j ACCEPT; iptables -D FORWARD -i eth0 -o %i -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Ha az UFW aktív, előbb engedélyezze az SSH-t, mielőtt az állapotához nyúlna, majd nyissa meg a WireGuard UDP-portját:

sudo ufw allow OpenSSH
sudo ufw allow 51820/udp
sudo ufw status

Ha az UFW jelenleg inaktív, és be szeretné kapcsolni, előbb ellenőrizze, hogy létezik-e az OpenSSH szabály. Ne kapcsolja ki és vissza az UFW-t SSH-n keresztül pusztán azért, hogy érvényesítse ezeket a szabályokat; ezzel elkerülhető kizárási kockázatot vállal.

6. lépés: A WireGuard interfész elindítása

sudo systemctl enable --now wg-quick@wg0
sudo systemctl status wg-quick@wg0 --no-pager
sudo wg show

Ha a szolgáltatás hibára fut, futtassa a journalctl parancsot, mielőtt bármi máshoz hozzányúlna:

sudo journalctl -u wg-quick@wg0 -n 50 --no-pager

WireGuard kliens hozzáadása

A VPS at 10.8.0.1/32 holding separate peer entries for a laptop, tablet, and phone, each with its own keypair and /32 tunnel address, its private key staying on the device, and a QR code marked as containing a private key

Minden eszköznek egyedi kulcspárra és alagút-IP-címre van szüksége. Soha ne használja ugyanazt a kliensbeállítást két eszközön: az ismétlődő kulcsok és címek kiszámíthatatlanná teszik az útválasztást, és megakadályozzák a tiszta visszavonást.

1. lépés: A kliens kulcsainak létrehozása

A hivatalos asztali és mobilalkalmazások képesek kulcsot generálni, amikor üres alagutat hoz létre. Linuxos kliensen használja ezt:

umask 077
wg genkey | tee client.key | wg pubkey > client.pub

A client.key maradjon azon az eszközön. A szerverre csak a client.pub fájlt másolja át.

2. lépés: A peer hozzáadása a szerveren

sudo nano /etc/wireguard/wg0.conf

Fűzzön hozzá egy peer-blokkot. A CLIENT_PUBLIC_KEY helyére írja a kliens nyilvános kulcsát:

[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

Az Address = 10.8.0.2/32 sor a kliensoldali alagútcímet állítja be. A szerver [Peer] blokkjában pedig az AllowedIPs = 10.8.0.2/32 köti ezt a címet az adott peerhez az útválasztáshoz és a forrásellenőrzéshez. A következő eszközhöz használja a 10.8.0.3/32 címet, majd haladjon tovább felfelé, ismétlődés nélkül.

sudo systemctl restart wg-quick@wg0

3. lépés: A kliens konfigurációjának összeállítása

Hozza létre a client.conf fájlt a kliensen, és cserélje ki az összes helyőrzőt:

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.8.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = VPS_PUBLIC_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Az AllowedIPs = 0.0.0.0/0 teljes IPv4-alagúttá teszi ezt. Ha csak a VPN-hálózatot szeretné elérni, használja az AllowedIPs = 10.8.0.0/24 beállítást. A PersistentKeepalive olyan NAT mögötti kliensnél hasznos, amelynél a leképezésnek üresjáratban is elérhetőnek kell maradnia; a WireGuard gyorsindítási útmutatója megjegyzi, hogy a legtöbb peernek nincs rá szüksége.

4. lépés: A konfiguráció importálása

Használja a a WireGuard kliensek telepítési útmutatója segítségével szerezze be a platformjához támogatott klienst.

  • Windows: Válassza az Add Tunnel lehetőséget, majd importálja a client.conf fájlt.
  • macOS: Válassza az Import tunnel(s) from file lehetőséget, és jelölje ki a client.conf fájlt.
  • Android vagy iOS: Importálja a fájlt, vagy olvassa be a belőle készített QR-kódot.

Azon az Ubuntu vagy Debian kliensen, ahol a client.conf található, telepítse a qrencode csomagot, és jelenítse meg a fájlt az adott kliens termináljában:

sudo apt install qrencode -y
qrencode -t ansiutf8 < client.conf

A QR-kód a kliens privát kulcsát tartalmazza. Csak megbízható terminálban jelenítse meg, ne mentsen róla képernyőképet, és ürítse ki a terminált, miután a telefon beimportálta.

5. lépés: Az alagút ellenőrzése

Aktiválja az alagutat, generáljon forgalmat a kliensről, majd futtassa ezeket az ellenőrzéseket a VPS-en:

sudo wg show
ip -brief address show wg0

A friss kézfogás és a növekvő átviteli számlálók megerősítik, hogy a WireGuard valóban csomagokat cserél. Ezután ellenőrizze a teljes alagút kimenetét a kliens felől:

curl -4 https://api.ipify.org; echo

A parancsnak a VPS nyilvános IPv4-címét kell visszaadnia. Ha nincs kézfogás, ellenőrizze a végpont címét, az UDP-portot, a felhőalapú tűzfalat, az UFW-szabályt és a kulcsokat. Ha van kézfogás, de nincs internet, ellenőrizze az IP-továbbítást, a nyilvános interfész nevét, a NAT-szabályokat és a DNS-t.

Lehet a WireGuardot Nginx mögé tenni?

A az NGINX stream moduljának dokumentációja elmagyarázza, hogyan tud az NGINX UDP-forgalmat továbbítani egyik portról a másikra, vagyis az UDP/80 vagy UDP/443 forgalmat a WireGuard UDP/51820 portjára irányítani. Ez azonban UDP-továbbítás, nem HTTP reverse proxy. Nem alakítja a WireGuardot TCP-vé vagy HTTPS-sé, és nem is teszi a protokollt hétköznapi webforgalomhoz hasonlóvá.

A legtöbb telepítésnél egyszerűbb megváltoztatni a WireGuard ListenPort értékét és megnyitni a megfelelő UDP-portot, mint NGINX-et beiktatni. Ha egy hálózat teljesen tiltja az UDP-t, vagy mélycsomag-vizsgálatot használ, az NGINX UDP-továbbítás nem oldja meg a gondot. A WireGuard korlátairól szóló dokumentáció kimondja, hogy az elrejtés kívül esik a protokoll hatókörén.

A VPS összekötése otthoni hálózattal

A VPS hub relaying a roaming laptop and phone to a home gateway over WireGuard, with full-tunnel 0.0.0.0/0 and split-tunnel 192.168.1.0/24 paths, PersistentKeepalive on the home peer, and a warning that two overlapping 192.168.1.0/24 networks cannot route cleanly

Egy VPS csomópontként működhet egy mozgó kliens és egy otthoni eszköz között. Az otthoni oldali peer maga kezdeményezi a kimenő WireGuard-kapcsolatot a VPS felé, így otthon nincs szükség nyilvános IP-címre. Ha ez az otthoni peer NAT mögött van, állítsa be rajta a PersistentKeepalive értéket.

A teljes otthoni LAN eléréséhez nem elég egy peert hozzáadni. A VPS-en az otthoni átjáróhoz tartozó peer-bejegyzés AllowedIPs mezőjében szerepelnie kell az otthoni alhálózatnak, például a 192.168.1.0/24 tartománynak. Egy teljes alagutat használó távoli kliens (AllowedIPs = 0.0.0.0/0) amúgy is a VPS-en át küldi ezt a forgalmat; a 192.168.1.0/24 értéket csak akkor vegye fel a kliensre, ha osztott alagutazást használ. Az otthoni átjárónak szintén továbbítania kell a forgalmat a WireGuard és a LAN között. Vegyen fel vagy egy útvonalat az otthoni routeren, vagy egy gondosan szűkített NAT-szabályt az otthoni átjárón. Előbb ellenőrizze az átfedést: egy másik 192.168.1.0/24 hálózatra csatlakozó kliens átszámozás vagy fejlettebb policy routing nélkül nem tudja tisztán útválasztani mindkét hálózatot.

Saját üzemeltetésű WireGuard vagy kereskedelmi VPN

A saját üzemeltetés azt változtatja meg, ki működteti a VPN-t, a névtelenséget viszont önmagában nem javítja. Egy személyes VPS egyetlen stabil kilépő IP-címet ad, amit könnyű egy tárhelyszolgáltató hálózatához kötni. Egy kereskedelmi szolgáltatás rendszerint megosztott kilépő címeket és könnyű helyszínváltást kínál, cserébe viszont a szabályzataira, az üzemeltetésére és a közzétett független auditjaira kell hagyatkoznia.

Maga a WireGuard könnyűsúlyú, és egy kis VPS gyakran ésszerű kiindulópont egy ember és néhány eszköz számára. Ne tekintsen egy fix RAM- vagy vCPU-számot átviteli garanciának. Tesztelje a tényleges eszközszámával, a régiójával, a csomagmérettel és a várt sávszélességgel, majd növelje a méretet, ha a CPU telítettsége, a csomagvesztés vagy a késleltetés válik a korláttá.

Akkor válassza a saját üzemeltetést, ha a stabil, személyes kilépő IP-cím, a távoli hozzáférés vagy a szerver feletti irányítás fontosabb, mint a helyszínválaszték és a kényelem. Akkor válasszon kereskedelmi VPN-t, ha sok országra, megosztott kilépőpontokra, széles körű otthoni eszköztámogatásra vágyik, és szeretné, ha a hibákkal más foglalkozna.

Döntési szempontSaját üzemeltetésű WireGuardKereskedelmi VPN
KöltségmodellEgy szerver, plusz az Ön üzemeltetésre fordított idejeElőfizetés, hosszabb időszakra gyakran kedvezménnyel
Kilépési helyszínekSzerverenként egy helyszínSok helyszín érhető el az alkalmazásban
BeállításÖn állítja be a kulcsokat, az útválasztást, a tűzfalszabályokat és a klienseketTelepíteni az alkalmazást és bejelentkezni
KarbantartásÖn foltoz, felügyel, ment és hibát keresA szolgáltatást a szolgáltató üzemelteti
Adatvédelmi modellA szervert Ön felügyeli, de a tárhelyszolgáltató továbbra is látja a metaadatokatA szolgáltató szabályzataira és a közzétett független auditjaira hagyatkozik
Legjobb egyezésStabil, személyes kilépő IP-cím, távoli hozzáférés és infrastruktúra feletti irányításHelyszínváltás, kevés karbantartás és széles körű eszköztámogatás

Összegzés

Egy megbízható WireGuard-telepítés öt dolgon múlik: védett privát kulcsok, egyedi peer-címek, helyes AllowedIPs értékek, működő továbbítás és NAT, valamint egy tűzfalszabály a figyelő UDP-portra. Mielőtt az alagútra hagyatkozna, ellenőrizze a kézfogást és a nyilvános kilépő címet is, a telepítés után pedig tartsa naprakészen a VPS-t.

Ha kézzel szeretné felépíteni a szervert, kezdje egy tiszta Cloudzy Ubuntu VPS megoldás. Ha inkább kihagyná a telepítési lépéseket, használja a Cloudzy egykattintásos WireGuard-telepítését és térjen át rögtön a kliens beállítására és az ellenőrzésre.

Gyakran ismételt kérdések

Miért mutat a WireGuard peert, de kézfogást nem?

Egy peer-bejegyzés csak azt bizonyítja, hogy a konfiguráció betöltődött. A kézfogás hiánya rendszerint azt jelenti, hogy a kliens nem éri el a kiszolgálót, vagy a kulcsok nem egyeznek. Ellenőrizze a kliens Endpoint értékét, a szerver nyilvános IP-címét, az UDP/51820 portot a szolgáltató tűzfalában és az UFW-ben is, valamint a nyilvános kulcsokat mindkét oldalon. Ellenőrzés előtt generáljon forgalmat a kliensről, mert a WireGuard üresjáratban csendben marad.

Miért épül fel az alagút, miközben megszűnik az internet?

A kézfogás internet nélkül általában útválasztási, nem titkosítási gondra utal. Ellenőrizze a net.ipv4.ip_forward értéket, erősítse meg a nyilvános interfész nevét a NAT-szabályban, nézze át a FORWARD szabályokat, és tesztelje a DNS-t a puszta IP-elérhetőségtől külön. Győződjön meg arról is, hogy a kliensen az AllowedIPs illeszkedik a szándékolt teljes vagy osztott alagút felépítéséhez.

Használhat két eszköz ugyanazt a WireGuard-konfigurációt?

Nem. Adjon minden eszköznek saját privát kulcsot, nyilvános kulcsot és /32-es alagútcímet. Egy konfiguráció újrafelhasználása végpont- és útvonalütközéseket okoz, és megakadályozza, hogy egy elveszett eszközt úgy vonjon vissza, hogy közben a másik ne szakadjon le.

Minden kliensnek szüksége van a PersistentKeepalive beállításra?

Nem. Akkor vegye fel, ha egy NAT mögötti peernek üresjáratban is nyitva kell tartania a leképezését; ez telefonoknál, otthoni átjáróknál és néhány szigorú hálózatnál gyakori. Hagyja el, ha a peer gyakran kommunikál, vagy nincs szükség arra, hogy a túloldal üresjáratban elérje.

Megosztás

Több a blogról

Folytassa az olvasást.

Készen áll a telepítésre? Már 2,48 $/hó-tól.

Független felhő 2008 óta. AMD EPYC, NVMe, 40 Gbps. 14 napos pénzvisszafizetési garancia.