Konfiguration av WireGuard-server på Linux (wg0, NAT, Peers)

12 min läsning - 22 juni 2026

hero section cover
Innehållsförteckning
  • När ska man använda en WireGuard-server
  • Serverkonfiguration
  • Lägga till och ta bort peers
  • Felsökning
  • Nyckelrotation och fördelade nycklar
Dela

Praktisk installation av WireGuard-server för Linux: nycklar, wg0.conf, NAT, hantering av peers med syncconf samt de felsökningskommandon som systemadministratörer faktiskt använder.

Kör en WireGuard-server när du vill ha privat åtkomst till hostad infrastruktur utan att exponera administratörsportar för det offentliga internet. Den använder autentisering med öppen nyckel, körs inuti Linux-kärnan sedan version 5.6 och är inte i vägen när den väl är igång. Det här inlägget behandlar när man ska använda en WireGuard-server, hur man startar wg0och hur man ser till att peers fungerar i det dagliga arbetet.

När ska man använda en WireGuard-server

De flesta installationer kan delas in i tre mönster: fjärråtkomst, server-till-server-länkar och site-till-site-routing.

För fjärråtkomst kör du servern på en VPS eller en dedikerad värd och dirigerar administratörstrafiken genom tunneln. Ställ in AllowedIPs på varje peer till det privata administrationssubnätet (något i stil med 10.0.0.0/24) så att endast trafik till interna system använder tunneln. All övrig trafik går via användarens lokala anslutning. Om användare ansluter från hemnätverk eller mobilnätverk, lägg till PersistentKeepalive = 25 på klientsidan för att förhindra att NAT-sessioner bryts.

För server-till-server-länkar ska AllowedIPs smala. Vanligtvis räcker det med ett enda /32 eller ett litet backend-subnät. Det förhindrar att irrelevant trafik dras in i tunneln och gör routningen förutsägbar.

Site-to-site fungerar annorlunda. WireGuard-värden fungerar som en gateway mellan subnät, så IP-vidarebefordran måste vara aktiverad och NAT-reglerna måste skicka returtrafiken ut via rätt gränssnitt.

MönsterAllowedIPs omfattningBäst lämpadKomplexitet vid installation
FjärråtkomstPrivata subnät, t.ex. 10.0.0.0/24Åtkomst för administratörer och utvecklareLåg
Server-till-serverSpecifika IP-adresser eller backend-subnätPunkt-till-punkt-värdlänkarLåg till medelhög
Plats-till-platsHela det fjärranslutna LAN-nätverket, t.ex. /24Gateway-till-gateway-routingMedel till hög
Tillgång till privat tjänstEndast internt subnät (split-tunnel)Isolering av backend-tjänsterMedel

Serverkonfiguration

Servern innehar den privata nyckeln, lyssnar på UDP 51820 som standard och avslutar tunneln. Samma grundinställning fungerar för alla tre mönstren ovan.

Nycklar och wg0.conf

Generera serverns nyckelpar:

wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

Säkra den privata nyckeln:

sudo chmod 600 /etc/wireguard/server_private.key

Den privata nyckeln förblir på servern. Den offentliga nyckeln är den du delar med dina peers.

Skapa /etc/wireguard/wg0.conf:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <PUBLIC_IFACE> -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <PUBLIC_IFACE> -j MASQUERADE
 
[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.8.0.2/32

Hitta det utgående gränssnittet som du ska koppla in <PUBLIC_IFACE> med:

ip -o -4 route show to default | awk '{print $5}'

Vidarebefordran, brandvägg och NAT

Öppna lyssningsporten:

sudo ufw allow 51820/udp

Aktivera IP-vidarebefordran genom att lägga till denna rad i /etc/sysctl.conf:

net.ipv4.ip_forward = 1

Tillämpa utan omstart:

sudo sysctl -p

Den PostUp och PostDown raderna i wg0.conf lägger till respektive tar bort NAT-maskeringsregeln när gränssnittet startas eller stängs av. Utan dem når returtrafiken från LAN aldrig tillbaka till motparten.

Att starta tunneln

wg-quick hanterar gränssnittet, routningen och PostUp/PostDown hooks i ett enda kommando:

sudo wg-quick up wg0

För automatisk start efter omstart aktiverar du systemd-enheten:

sudo systemctl enable --now wg-quick@wg0

Kontrollera status med:

sudo wg show

En aktuell latest handshake rad bekräftar att tunneln fungerar. Om den ser gammal eller tom ut, kontrollera brandväggen, nycklarna på båda sidor och motpartens AllowedIPs.

Lägga till och ta bort peers

Varje peer behöver ett eget nyckelpar. Generera det på klienten och lägg sedan till peerens publika nyckel wg0.conf i ett nytt [Peer] block med en AllowedIPs post som tilldelar dess tunnel-IP.

Använd /32 för en enskild enhet:

AllowedIPs = 10.8.0.3/32

Detta förhindrar att en peer tar adresser som tilldelats en annan. För åtkomst via delad tunnel ska du endast ange de privata subnät som ska gå via tunneln, till exempel AllowedIPs = 10.8.0.0/24.

Tillämpa konfigurationsändringar utan att avbryta aktiva sessioner:

sudo wg syncconf wg0 <(wg-quick strip wg0)

Att ta bort en peer fungerar på samma sätt. Ta bort dess [Peer] block från wg0.conf och kör syncconf igen.

Felsökning

Om en peer ansluter men inte kan nå något på andra sidan beror det vanligtvis på en av följande fyra orsaker:

  • IP-vidarebefordran är avstängd
  • NAT-maskeringregeln saknas
  • Det utgående gränssnittet i NAT-regeln är felaktigt
  • AllowedIPs innehåller inte destinationen

Kontrollera vidarebefordringen:

cat /proc/sys/net/ipv4/ip_forward

Bör returnera 1. Om den returnerar 0, har sysctl-ändringen inte tillämpats eller inte sparats.

Kontrollera NAT-regeln och det utgående gränssnittet:

sudo iptables -t nat -L POSTROUTING
ip route get 1.1.1.1

Det andra kommandot visar det faktiska namnet på det utgående gränssnittet, till exempel ens3, enp1s0, eller eth0. Det måste stämma överens med gränssnittet i MASQUERADE-regeln.

Om själva handskakningen saknas, kontrollera att UDP 51820 är öppet i brandväggen och hos eventuella uppströmsleverantörer, och att båda sidor har rätt offentlig nyckel för den andra.

För peers bakom privat- eller mobil-NAT som avbryter inaktiva UDP-sessioner, ställ in PersistentKeepalive = 25 på klienten.

Nyckelrotation och fördelade nycklar

För tunnlar som är aktiva i flera månader bör nycklarna bytas ut ungefär en gång om året. Generera ett nytt nyckelpar, uppdatera båda ändarna och tillämpa med wg syncconf. Återanvänd inte en privat nyckel mellan två peers. Det skapar routningskonflikter och stör överföringen mellan dem.

För ett extra säkerhetslager utöver autentisering med offentlig nyckel, lägg till en fördelad nyckel per peer:

wg genpsk

Lägg till resultatet som PresharedKey = <PSK> i [Peer] -blocket på båda sidor. WireGuard blandar in PSK:n i handskakningen, så en angripare som på något sätt komprometterar en av de asymmetriska nycklarna kan ändå inte dekryptera trafiken utan den.

Användbara kommandon för daglig användning:

KommandoSyfte
wg showPeers, handskakningar, trafikräknare
wg show wg0 transferByte-räknare för wg0
wg show all dumpMaskinläsbar utdata för övervakningsskript
wg syncconf wg0 <(wg-quick strip wg0)Tillämpa konfigurationsändringar utan att avbryta sessioner
wg genpskSkapa en fördelad nyckel

Om du behöver en stabil, offentligt tillgänglig värd för att avsluta WireGuard-tunnlar och dirigera privat trafik till din infrastruktur, ta en titt på FDC:s VPS-abonnemang utan datagräns.

Blogg

Utvalda denna vecka

Fler artiklar
Digital ögonbelastning: Så skyddar du din syn i en värld där skärmar spelar en stor roll

Digital ögonbelastning: Så skyddar du din syn i en värld där skärmar spelar en stor roll

Stirrar du på skärmar hela dagen? Lär dig hur du kan minska digital ögonbelastning med beprövade tekniker och verktyg. Den här guiden är oumbärlig för distansarbetare, utvecklare och alla som arbetar inom teknikbranschen.

4 min läsning - 21 maj 2025

Varför det är viktigt att ha en kraftfull VPS utan datataks

8 min läsning - 9 maj 2025

Fler artiklar
background image

Har du frågor eller behöver du en anpassad lösning?

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning