Gå til hovedindhold
50% rabat alle planer, tidsbegrænset. Fra $2.48/mo
12 min left
Sikkerhed og netværk

Sådan opsætter du WireGuard VPN på en VPS

Pius Bodenmann Af Pius Bodenmann 12 min læsning Opdateret af Mir 12d ago
WireGuard VPN tunnel active on an Ubuntu VPS terminal and a phone client

En selvhostet WireGuard VPN giver din bærbare og din telefon en krypteret vej til en server, du selv styrer. Det er nyttigt, når du vil have en stabil udgående IP, sikker adgang på utroværdigt Wi-Fi eller en privat rute ind i et andet netværk. Det gør dig ikke anonym: websteder ser stadig én VPS-adresse, og hostingudbyderen driver stadig det underliggende netværk.

Denne guide bygger en IPv4-fuldtunnel-VPN på Ubuntu Server. Du installerer WireGuard, genererer nøgler med restriktive rettigheder, aktiverer routing, tilføjer firewall- og NAT-regler, forbinder desktop- og mobilklienter og verificerer tunnelen. Samme design kan understøtte IPv6, men først når din VPS har routet IPv6-plads, og du konfigurerer IPv6-forwarding og firewallregler separat.

Hvad er WireGuard?

WireGuard er en moderne VPN-protokol på tværs af platforme samt dens implementering, der sender krypterede IP-pakker over UDP. WireGuard-protokolspecifikationen definerer et fast sæt kryptografiske primitiver, blandt andre ChaCha20-Poly1305, Curve25519, BLAKE2s, SipHash24 og HKDF. Det bevidst lille design gør konfiguration og revision enklere end protokoller med mange udskiftelige cipher suites.

WireGuard har hverken et centralt kontosystem eller et indbygget brugerkatalog. Hver enhed er en peer med sit eget nøglepar, sin egen tunneladresse og sine egne AllowedIPs-regler. På en VPS fungerer én peer normalt som den internetvendte gateway, mens bærbare og telefoner opretter forbindelserne dertil.

Hvorfor bruge WireGuard på en VPS?

  • Enkel peer-model: Hver enhed får ét nøglepar og én peer-post.
  • Lille angrebsflade: WireGuard bruger en kompakt protokol og en fast kryptosuite frem for at udstille en lang menu af forældede valgmuligheder.
  • God ydeevne: Kerneintegration på Linux og effektiv kryptografi kan give høj gennemstrømning, men resultatet afhænger fortsat af CPU, netværkskapacitet, latens og pakkestørrelse.
  • Klienter på tværs af platforme: Der findes officielle klienter til Windows 10 og 11, macOS, Android og iOS, mens Linux og flere BSD-systemer leverer native værktøjer eller pakker.
  • Roaming: En peer kan skifte netværk og kilde-IP-adresse uden at få en ny WireGuard-identitet; serveren lærer det senest autentificerede endpoint.
  • Klar routingkontrol: AllowedIPs afgør både hvilke destinationer der bruger tunnelen, og hvilke tunneladresser der hører til hver peer.

Relateret læsning: Cloudzys guide til VPS til VPN. For ældre installationer, se Cloudzys guide til opsætning af PPTP; vælg ikke PPTP til en ny VPN, hvor sikkerhed betyder noget.

Spring den manuelle opsætning over: WireGuard med ét klik

Hvis du ikke har en teknisk baggrund, eller du helst ikke selv vil stå for opsætningen, tilbyder Cloudzy en WireGuard VPN-udrulning med ét klik. Resten af denne guide handler om den manuelle opbygning; dette afsnit handler om genvejen.

  1. Log ind på Cloudzys kontrolpanel.
  2. Vælg WireGuard på listen over applikationer.
  3. Opret en VPS i den ønskede lokation med den plan, du vælger. En Ubuntu-maskine med basisspecifikationer er nok.

Når din VPS er klar, logger du ind og kører følgende kommando for at vise din konfiguration:

cat client.conf

Du vil se noget som dette:

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

Brug den konfiguration til at oprette en ny tunnel i WireGuard-klienten på din pc, og forbindelsen er klar. Vil du hellere forstå hver enkelt del, eller har du brug for et opsæt, som ét-kliks-imaget ikke dækker, så fortsæt med den manuelle opbygning nedenfor.

Sådan opsætter du WireGuard på Ubuntu

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

Kommandoerne nedenfor er rettet mod en aktuel Ubuntu Server-udgivelse. Kør dem over SSH som bruger med sudo-adgang. Hold SSH-sessionen åben, indtil firewallen er bekræftet, og tag først et VPS-snapshot, hvis din udbyder understøtter det.

Forudsætninger

  • Én Ubuntu-VPS med en offentlig IPv4-adresse
  • En ikke-root-konto med sudo-adgang
  • SSH-adgang og oplysninger om VPS-udbyderens recovery-konsol
  • Én klientenhed med den officielle WireGuard-app eller kommandolinjeværktøjerne

Du behøver ikke en Ubuntu-server nummer to. Klienten kan være en Windows-pc, en Mac, en Linux-bærbar, en Android-telefon eller en iPhone.

Trin 1: Installer WireGuard

sudo apt update
sudo apt install wireguard -y

Bekræft, at værktøjerne er tilgængelige:

wg --version

Trin 2: Generer servernøglerne sikkert

Opret WireGuard-mappen, og generer nøgleparret med en restriktiv umask. Den private nøgle må aldrig kopieres til en klient eller havne i logfiler.

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'

Vis nøglerne, når du skal indsætte dem i konfigurationsfiler:

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

Trin 3: Opret serverkonfigurationen

Åbn interfacekonfigurationen:

sudo nano /etc/wireguard/wg0.conf

Indsæt følgende blok, og erstat SERVER_PRIVATE_KEY med den private nøgle fra forrige trin:

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

Tunnelnetværket 10.8.0.0/24 er blot et eksempel. Vælg et andet privat interval, hvis det overlapper med et hjemme-, kontor- eller cloudnetværk, du har brug for at nå. Tilføj ikke SaveConfig = true: det kan overskrive filen, når interfacet lukker ned, og slette dine manuelle ændringer.

sudo chmod 600 /etc/wireguard/wg0.conf

Trin 4: Aktiver IPv4-forwarding

Din VPS skal route pakker mellem wg0 og sit offentlige netværksinterface. Læg indstillingen i en dedikeret sysctl-fil:

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

Anvend det, og verificer:

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

Dette følger routingmodellen i Ubuntus guide til WireGuard-gateway. IPv6 kræver et routet IPv6-præfiks, separate tunneladresser, IPv6-forwarding og IPv6-firewallregler; send ikke klienttrafik til ::/0, før den vej er helt på plads.

Trin 5: Tilføj firewall- og NAT-regler

Find navnet på VPS'ens offentlige interface. Læg i outputtet nedenfor mærke til værdien efter dev; almindelige navne er eth0, ens3 og enp1s0.

ip route show default

Åbn wg0.conf igen, og tilføj følgende linjer under [Interface]. Erstat eth0 alle steder, hvis dit offentlige interface hedder noget andet:

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

Hvis UFW er aktiv, så tillad SSH, før du rører ved dens tilstand, og åbn derefter WireGuards UDP-port:

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

Hvis UFW i øjeblikket er inaktiv, og du vil aktivere den, så bekræft først, at OpenSSH-reglen findes. Slå ikke UFW fra og til igen over SSH bare for at anvende disse regler; det giver en unødvendig risiko for at lukke dig selv ude.

Trin 6: Start WireGuard-interfacet

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

Hvis tjenesten fejler, så kør journalctl, før du ændrer noget andet:

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

Tilføj en WireGuard-klient

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

Hver enhed skal have sit eget nøglepar og sin egen tunnel-IP. Genbrug aldrig én klientkonfiguration på to enheder: dublerede nøgler og adresser gør routingen uforudsigelig og forhindrer en ren tilbagekaldelse.

Trin 1: Generer klientnøglerne

De officielle desktop- og mobilapps kan generere nøgler, når du opretter en tom tunnel. På en Linux-klient bruger du:

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

Behold client.key på den enhed. Kopiér kun client.pub til serveren.

Trin 2: Tilføj peer'en på serveren

sudo nano /etc/wireguard/wg0.conf

Tilføj én peer-blok. Erstat CLIENT_PUBLIC_KEY med klientens offentlige nøgle:

[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

Linjen Address = 10.8.0.2/32 tildeler tunneladressen på klienten. I serverens [Peer]-blok knytter AllowedIPs = 10.8.0.2/32 den adresse til denne peer med henblik på routing og kildevalidering. Brug 10.8.0.3/32 til den næste enhed, og fortsæt opad uden dubletter.

sudo systemctl restart wg-quick@wg0

Trin 3: Byg klientkonfigurationen

Opret client.conf på klienten, og erstat alle pladsholdere:

[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

AllowedIPs = 0.0.0.0/0 gør dette til en IPv4-fuldtunnel. Vil du kun have adgang til VPN-netværket, så brug AllowedIPs = 10.8.0.0/24. PersistentKeepalive er nyttig for en klient bag NAT, hvis mapping skal forblive tilgængelig i tomgang; WireGuards quickstart-guide påpeger, at de fleste peers ikke har brug for den.

Trin 4: Importer konfigurationen

Brug installationsguiden til WireGuard-klienter for at hente den understøttede klient til din platform.

  • Windows: Vælg Add Tunnel, og importér derefter client.conf.
  • macOS: Vælg Import tunnel(s) from file, og vælg client.conf.
  • Android eller iOS: Importér filen, eller scan en QR-kode genereret ud fra den.

På en Ubuntu- eller Debian-klient, der har client.conf, installerer du qrencode og viser filen i den klients terminal:

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

QR-koden indeholder klientens private nøgle. Vis den kun i en betroet terminal, gem ikke skærmbilleder, og ryd terminalen, når telefonen har importeret den.

Trin 5: Verificer tunnelen

Aktiver tunnelen, generer trafik fra klienten, og kør disse tjek på din VPS:

sudo wg show
ip -brief address show wg0

Et nyligt handshake og stigende overførselstællere bekræfter, at WireGuard udveksler pakker. Verificer derefter fuldtunnel-udgangen fra klienten:

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

Kommandoen bør returnere VPS'ens offentlige IPv4-adresse. Er der intet handshake, så tjek endpointadressen, UDP-porten, cloud-firewallen, UFW-reglen og nøglerne. Er der handshake, men ingen internetadgang, så tjek IP-forwarding, navnet på det offentlige interface, NAT-reglerne og DNS.

Kan man placere WireGuard bag Nginx?

Den dokumentationen for NGINX' stream-modul forklarer, hvordan NGINX kan videresende UDP fra én port til en anden, så den kan sende UDP/80 eller UDP/443 videre til WireGuard på UDP/51820. Det er et UDP-relay, ikke en HTTP-reverse-proxy. Det laver ikke WireGuard om til TCP eller HTTPS, og det får ikke protokollen til at ligne almindelig webtrafik.

I de fleste installationer er det enklere at ændre WireGuards ListenPort og åbne den tilsvarende UDP-port end at tilføje NGINX. Hvis et netværk blokerer UDP helt eller bruger deep packet inspection, løser et NGINX UDP-relay ikke problemet. dokumentationen om WireGuards begrænsninger fastslår, at obfuskering ligger uden for protokollens formål.

Forbind din VPS til et hjemmenetværk

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

En VPS kan fungere som knudepunkt mellem en klient på farten og en enhed hjemme hos dig. Peer'en i hjemmet opretter selv en udgående WireGuard-forbindelse til din VPS, så du slipper for en offentlig IP derhjemme. Sæt PersistentKeepalive på den hjemme-peer, når den sidder bag NAT.

At nå hele hjemme-LAN'et kræver mere end at tilføje en peer. Peer-posten på din VPS for hjemme-gatewayen skal have hjemmesubnettet med i AllowedIPs, for eksempel 192.168.1.0/24. En fjernklient med fuldtunnel (AllowedIPs = 0.0.0.0/0) sender allerede den trafik gennem din VPS; tilføj kun 192.168.1.0/24 på klienten, hvis du bruger split tunneling. Hjemme-gatewayen skal desuden viderestille trafik mellem WireGuard og LAN'et. Tilføj enten en rute på hjemmerouteren eller en omhyggeligt afgrænset NAT-regel på hjemme-gatewayen. Tjek først for overlap: en klient, der er forbundet til et andet 192.168.1.0/24-netværk, kan ikke route begge netværk rent uden omnummerering eller mere avanceret policy routing.

Selvhostet WireGuard kontra en kommerciel VPN

Selvhosting ændrer, hvem der driver din VPN, men forbedrer ikke automatisk anonymiteten. En personlig VPS giver dig én stabil udgående IP, som er let at knytte til et hostingnetværk. En kommerciel tjeneste giver typisk delte udgangsadresser og nem skift af lokation, men du må stole på dens politikker, drift og de uafhængige revisioner, den offentliggør.

WireGuard er i sig selv let, og en lille VPS er ofte et fornuftigt udgangspunkt for én person og et par enheder. Betragt ikke et fast RAM- eller vCPU-tal som en garanti for gennemstrømning. Test med dit reelle antal enheder, din region, pakkestørrelsen og den forventede båndbredde, og skalér så op, hvis CPU-mætning, pakketab eller latens bliver begrænsningen.

Vælg selvhosting, når en stabil personlig udgående IP, fjernadgang eller kontrol over serveren betyder mere end valg af lokation og bekvemmelighed. Vælg en kommerciel VPN, når du vil have mange lande, delte udgange, bred understøttelse af forbrugerenheder og en anden til at håndtere nedbrud.

BeslutningsfaktorSelvhostet WireGuardKommerciel VPN
OmkostningsmodelÉn server plus din administrationstidAbonnement, ofte med rabat ved længere perioder
UdgangslokationerÉn lokation pr. serverMange lokationer tilgængelige i appen
OpsætningDu konfigurerer nøgler, routing, firewallregler og klienterInstaller appen, og log ind
VedligeholdelseDu patcher, overvåger, tager backup og fejlfinderUdbyderen driver tjenesten
PrivatlivsmodelDu styrer serveren, men hostingudbyderen kan stadig se metadataDu stoler på udbyderens politikker og de uafhængige revisioner, den offentliggør
Bedst egnetStabil personlig udgående IP, fjernadgang og kontrol over infrastrukturenSkift af lokation, lidt vedligeholdelse og bred enhedsunderstøttelse

Konklusion

En pålidelig WireGuard-installation koger ned til fem ting: beskyttede private nøgler, unikke peer-adresser, korrekte AllowedIPs, fungerende forwarding og NAT samt en firewallregel til den lyttende UDP-port. Verificer både handshake og den offentlige udgangsadresse, før du stoler på tunnelen, og hold din VPS opdateret efter udrulningen.

Vil du bygge serveren manuelt, så start med en ren Cloudzy Ubuntu VPS-løsning. Vil du hellere springe installationstrinnene over, så brug Cloudzys WireGuard-udrulning med ét klik og gå direkte videre til klientkonfiguration og verifikation.

Ofte stillede spørgsmål

Hvorfor viser WireGuard en peer, men intet handshake?

En peer-post beviser kun, at konfigurationen blev indlæst. Intet handshake betyder som regel, at klienten ikke når serveren, eller at nøglerne ikke matcher. Tjek klientens Endpoint, serverens offentlige IP, UDP/51820 i både udbyderens firewall og UFW samt de offentlige nøgler i begge ender. Generer trafik fra klienten, før du tjekker, for WireGuard er stille i tomgang.

Hvorfor forbinder tunnelen, mens internetadgangen stopper?

Et handshake uden internetadgang peger som regel på routing snarere end kryptering. Verificer net.ipv4.ip_forward, bekræft navnet på det offentlige interface i NAT-reglen, tjek FORWARD-reglerne, og test DNS adskilt fra ren IP-forbindelse. Sørg også for, at AllowedIPs på klienten passer til den tilsigtede fuldtunnel- eller split-tunnel-opsætning.

Kan to enheder dele én WireGuard-konfiguration?

Nej. Giv hver enhed sin egen private nøgle, offentlige nøgle og /32-tunneladresse. Genbrug af én konfiguration skaber konflikter i endpoints og ruter og gør det umuligt at tilbagekalde én mistet enhed uden at afbryde den anden.

Har alle klienter brug for PersistentKeepalive?

Nej. Tilføj den, når en peer bag NAT skal holde sin mapping åben i tomgangsperioder, hvilket er almindeligt for telefoner, hjemme-gateways og visse restriktive netværk. Undlad den, når peer'en kommunikerer hyppigt eller ikke behøver at kunne nås fra den anden side i tomgang.

Del

Mere fra bloggen

Læs videre.

Klar til at udrulle? Fra 2,48 $/md.

Uafhængig cloud siden 2008. AMD EPYC, NVMe, 40 Gbps. 14 dages pengene-tilbage-garanti.