Zo gebruik je een WireGuard-configuratiebestand
Op deze pagina
- Wat er in een .conf-bestand staat, regel voor regel
- Windows: de tunnel importeren
- Android en iPhone: scan de QR-code of importeer het bestand
- macOS en Linux
- Op de router, zodat het hele huis gedekt is
- Verbonden maar er laadt niets, en andere echte problemen
- Waar het configuratiebestand vandaan komt
- FAQ
Een WireGuard-verbinding is een tekstbestand. Echt, meer is het niet: een handvol regels met je sleutels, het adres van de server en de regels voor wat er door de tunnel gaat. Zodra je dat bestand hebt, is verbinden met een WireGuard VPN-server een kwestie van het aan de WireGuard-app geven op het apparaat dat je gebruikt.
Deze handleiding doet twee dingen. Eerst lopen we een echt configuratiebestand regel voor regel door, zodat je weet wat elke instelling doet en welke je moet aanpassen als er iets misgaat. Daarna behandelen we het importeren van dat bestand en verbinden op Windows, Android, iPhone, macOS, Linux en een router, gevolgd door de handvol problemen waar bijna elke klacht over WireGuard op neerkomt: de handshake die nooit rond komt, en de tunnel die verbinding maakt maar geen enkele pagina laadt.
Wat er in een .conf-bestand staat, regel voor regel
Elke WireGuard-configuratie heeft dezelfde opbouw in twee delen. [Interface] beschrijft jouw kant van de tunnel; [Peer] beschrijft de machine waarmee je verbindt. Hier is een complete clientconfiguratie waarin de geheimen door plaatshouders zijn vervangen:
[Interface] PrivateKey = YOUR_PRIVATE_KEY_KEEP_THIS_SECRET Address = 10.7.0.4/32 DNS = 10.7.0.1 [Peer] PublicKey = THE_SERVER_PUBLIC_KEY_FROM_YOUR_PROVIDER Endpoint = 198.51.100.10:51820 AllowedIPs = 0.0.0.0/0, ::/0 PersistentKeepalive = 25
198.51.100.10 is een documentatieadres dat door RFC 5737 is gereserveerd: niets hiervan maakt ergens verbinding mee. Gebruik de waarden uit je eigen bestand.Het blok [Interface]: jouw kant
- PrivateKey: dit is je identiteit op de VPN. Wie hem heeft, kan zich als jou voordoen. Het zijn 44 base64-tekens die eindigen op
=; is die van jou een andere lengte, dan is het bestand ergens tijdens het kopiëren afgekapt. - Address: het IP dat je apparaat binnen de tunnel heeft, niet je publieke IP. De
/32betekent "alleen dit ene adres", wat normaal is voor een client. - DNS: de resolver die wordt gebruikt zolang de tunnel actief is. Zonder deze regel blijft je apparaat je oude resolver bevragen, waardoor uitlekt wat je opzoekt en er aan de andere kant vaak niets wordt opgelost.
- MTU: optioneel, en de nuttigste regel om te kennen. Hij ontbreekt in de meeste bestanden omdat de standaardwaarde klopt; zie problemen oplossen voor het geval dat dat niet zo is.
Het blok [Peer]: de kant van de server
- PublicKey: de publieke sleutel van de server. Die van jou staat nooit in je eigen bestand; de server bewaart hem.
- Endpoint: waar de pakketten naartoe gaan, als
host:port. WireGuard werkt alleen over UDP, en51820is de gebruikelijke poort, geen verplichte. - AllowedIPs: welke bestemmingen door de tunnel gaan.
0.0.0.0/0, ::/0betekent alles, en daar is een privacy-VPN voor bedoeld. Een kortere lijst (bijvoorbeeld alleen het interne netwerk van je bedrijf) stuurt alleen dat door de tunnel en laat de rest over je gewone verbinding lopen. Die opzet heet een split tunnel, en het is een bewuste keuze, geen kapotte volledige tunnel. - PersistentKeepalive: stuurt elke 25 seconden een klein pakket, zodat het NAT-apparaat tussen jou en de server de terugweg openhoudt. Nodig zodra je achter NAT zit, en op een telefoon of een thuisverbinding is dat altijd zo.
Address en DNS zijn helemaal geen WireGuard-instellingen: het zijn instructies voor het hulpprogramma wg-quick, dat je netwerkinterface configureert. WireGuard zelf ziet ze nooit. Je kunt het zelf zien gebeuren: wg-quick strip wg0 toont de configuratie die de kernel werkelijk krijgt, en beide regels zijn simpelweg verdwenen. Dat is van belang als je ooit een tunnel instelt met wg setconf in plaats van wg-quick, want dan wijst niets je adres of je resolver toe en komt de tunnel op zonder ergens mee verbonden te zijn.Een configuratiebestand nodig om te importeren? Een HytHost VPN-dienst geeft je een kant-en-klare WireGuard-configuratie vanaf €0.99/mnd.
Bekijk VPN-pakkettenWindows: de tunnel importeren
Voor Windows is er een officiële WireGuard-app, en een bestand daarin importeren is het hele werk.
- Installeer WireGuard via wireguard.com/install.
- Klik op Tunnel toevoegen linksonder. Er opent een bestandskiezer die filtert op Configuratiebestanden (*.zip, *.conf). Kies je
.confen hij verschijnt in de tunnellijst, met de naam van het bestand. - Of plak hem. Het pijltje naast Tunnel toevoegen biedt Voeg lege tunnel toe…, dat je een tekstvak geeft: handig als de configuratie in een bericht binnenkwam in plaats van als bestand. Er staat al een nieuwe privésleutel ingevuld, dus verwijder die regel en plak je eigen configuratie eroverheen.
- Klik op Activeer. De status verandert in Actief en het paneel begint de overgedragen bytes te tellen. Die teller is je snelste controle: gaan er wel gegevens uit maar komt er niets terug, dan komt je handshake niet rond.
Android en iPhone: scan de QR-code of importeer het bestand
Op een telefoon heb je twee manieren, en de QR-code bestaat juist omdat een sleutel van 44 tekens intypen op een touchscreen een ramp is.
Android
- Installeer WireGuard uit de Play Store en tik op de knop +.
- Het scherm WireGuard tunnel aanmaken biedt Scan van QR code, Importeren uit bestand of archief en er zelf een aanmaken. Kies wat past bij wat je hebt gekregen.
- Geef de tunnel een naam als daarom gevraagd wordt en zet de schakelaar om. Android vraagt één keer toestemming om een VPN-configuratie toe te voegen: die melding komt van het besturingssysteem, niet van de app.
iPhone en iPad
- Installeer WireGuard uit de App Store en tik op Add a tunnel.
- Kies onder Add a new WireGuard tunnel voor Create from QR code of Create from file or archive. Het scannerscherm heet Scan QR code; na een geslaagde scan vraagt het je de tunnel een naam te geven.
- Zet hem aan en sta de VPN-configuratie toe wanneer iOS erom vraagt.
Een QR-code maken van een configuratiebestand dat je al hebt
Een QR-code hoeft je provider je niet te geven: het is gewoon je configuratiebestand als afbeelding, en je kunt hem zelf maken met één commando. De WireGuard-app stelt dit zelf ook voor:
# prints the code straight into the terminal, ready to scan off the screen qrencode -t ansiutf8 < wg0.conf # or write it to an image file qrencode -o wg0.png < wg0.conf
Op Debian of Ubuntu installeer je qrencode met apt install qrencode; op macOS met brew install qrencode.
macOS en Linux
macOS
Installeer WireGuard uit de Mac App Store. De Mac-app is niet de iPhone-app op een groter scherm: hij zit in de menubalk en het venster open je via Manage Tunnels. Klik op Import tunnel(s) from file (in de menubalk staat hetzelfde als Import Tunnel(s) from File…), kies je .conf, selecteer de tunnel en klik op Activate. Er is geen QR-scanner op de Mac (QR-codes zijn voor telefoons), dus gebruik het bestand zelf, of kies Add Empty Tunnel… en plak de configuratie erin.
Werk je liever in een terminal, dan geeft brew install wireguard-tools je dezelfde wg-quick-commando's als op Linux, die hieronder worden beschreven.
Linux
- Installeer de tools. Op Debian of Ubuntu:
sudo apt install wireguard. De meeste distributies hebben een pakket met dezelfde naam. - Zet het bestand waar wg-quick het zoekt. Dit is de stap waarin het vaak misgaat, omdat de bestandsnaam de naam van de interface wordt:
sudo install -m 600 -o root -g root wg0.conf /etc/wireguard/wg0.conf
De600is belangrijk: het bestand bevat je privésleutel en mag niet leesbaar zijn voor andere gebruikers op de machine. Houd de naam kort en eenvoudig; het moet een geldige naam voor een netwerkinterface zijn. - Breng hem omhoog:
sudo wg-quick up wg0 sudo wg show
wg showis het enige commando dat je moet onthouden. Het toont de peer, het endpoint, een regel latest handshake en tellers voor het verkeer. Verschijnt er nooit een handshake-tijdstip, dan heb je het probleem uit de volgende sectie. - Automatisch starten bij het opstarten:
sudo systemctl enable --now wg-quick@wg0. Om de tunnel met de hand te stoppen:sudo wg-quick down wg0.
wg-quick: `/etc/wireguard/wg0.conf' does not exist betekent dat de naam die je opgaf niet overeenkomt met een bestand in die map: je vroeg om wg0 en het bestand heet anders. En als de tunnel weigert op te komen met een klacht over resolvconf, dan ligt het aan de regel DNS: wg-quick heeft resolvconf of systemd-resolved nodig om die toe te passen. Installeer er een, of verwijder de DNS-regel en stel je resolver zelf in.Op de router, zodat het hele huis gedekt is
Zet je de tunnel op de router, dan valt elk apparaat erachter eronder, ook de apparaten die helemaal geen VPN-app kunnen draaien: een spelcomputer, een tv, een slimme speaker. Of dat kan, hangt volledig af van je firmware.
| Firmware | WireGuard-ondersteuning | Waar je moet kijken |
|---|---|---|
| OpenWrt | Ja, met een pakket | Installeer luci-proto-wireguard, voeg een interface toe met protocol WireGuard VPN en vul de velden in met de gegevens uit je bestand |
| Asus (recente standaardfirmware) | Ja, op veel modellen | Het VPN-onderdeel heeft een WireGuard-client die een .conf direct importeert |
| Asuswrt-Merlin | Ja | Hetzelfde idee, met meer controle over de routering |
| Mikrotik RouterOS 7 | Ja | WireGuard is ingebouwd; RouterOS 6 heeft het helemaal niet |
| Doorsnee router van de provider | Meestal niet | Geen WireGuard en geen manier om het toe te voegen: zie hieronder |
Is je router het kastje dat je van je internetprovider kreeg, dan zijn de realistische opties: een router die je zelf beheert erachter zetten, of per apparaat configuraties blijven gebruiken. Geen van beide is een mislukking; een opzet per apparaat is vaak zelfs beter, omdat je de tunnel uit kunt laten op de apparaten die hem niet nodig hebben.
Eén ding om te beslissen voordat je het hele huis door een tunnel stuurt: daarna gaat alles erdoor. Banksites die buitenlandse adressen niet vertrouwen, streamingdiensten die je regio controleren en alles wat met apparaten op je eigen netwerk praat, kunnen zich anders gedragen. Hier bewijst een kortere AllowedIPs zijn waarde: stuur alleen door wat erdoor moet en laat de rest met rust.
Verbonden maar er laadt niets, en andere echte problemen
WireGuard is opvallend stil als het misgaat, en dat is een bewuste ontwerpkeuze: een niet-geauthenticeerd pakket krijgt helemaal geen antwoord, zodat een scanner niet kan zien of er iets luistert. Het neveneffect is dat een verkeerde sleutel, een verkeerde poort en een geblokkeerd netwerk er aan jouw kant precies hetzelfde uitzien: stilte. Werk vanuit het symptoom.
| Wat je ziet | Wat het meestal is | Waar je moet kijken |
|---|---|---|
| Nooit een handshake; verzonden bytes lopen op, ontvangen blijft op nul | Niets antwoordt, of het antwoord kan niet terugkomen | Endpoint, de PublicKey van de server, UDP dat geblokkeerd wordt |
| Handshake in orde, kleine dingen werken, webpagina's blijven half geladen hangen | MTU | Voeg een regel MTU toe aan [Interface] |
| Verbonden, maar er wordt niets opgelost | DNS | De regel DNS, en resolvconf op Linux |
| Verbonden, namen worden opgelost, maar er gaat geen verkeer door de tunnel | AllowedIPs te beperkt | AllowedIPs in [Peer] |
| Werkt, en stopt na een minuut of twee zonder activiteit | De NAT-koppeling is verlopen | PersistentKeepalive = 25 |
"Handshake did not complete"
Je apparaat heeft een initiatiepakket verstuurd en niets teruggekregen. Controleer, in deze volgorde:
- Het endpoint. Juiste host, juiste poort, en de poort is UDP. Een typefout hier geeft precies dit symptoom en niets anders.
- Of UDP überhaupt naar buiten komt. Gastwifi, hotelnetwerken, sommige bedrijfsnetwerken en een paar mobiele providers laten op gangbare poorten alleen TCP toe. Werkt dezelfde configuratie op je thuisverbinding en faalt hij op één bepaald netwerk, dan is de configuratie in orde en ligt het aan het netwerk.
- Of de sleutels goed om staan.
PublicKeyin[Peer]is de publieke sleutel van de server, en de server moet los daarvan de publieke sleutel hebben die bij jouwPrivateKeyhoort. Een configuratie die voor een ander apparaat is gekopieerd, strandt hier. - Je klok. De handshake van WireGuard bevat een tijdstempel en weigert er een die ver afwijkt. Zeldzaam, maar het gebeurt op apparaten die hun tijd kwijt zijn.
Werkt de tunnel thuis wel maar nooit via een mobiele verbinding, dan kan de oorzaak bij je provider liggen in plaats van bij jou: carrier-grade NAT en vergelijkbare constructies veranderen wat jou kan bereiken. De handleiding over port forwarding legt uit hoe je dat binnen een paar minuten vanaf je eigen router vaststelt.
Het MTU-probleem, dat je één keer goed moet begrijpen
Dit is het klassieke geval van "verbonden maar het internet werkt niet", en het patroon is onmiskenbaar: ping werkt, DNS werkt, kleine pagina's werken, en alles wat wat groter is blijft eeuwig hangen.
De oorzaak is grootte. Het inpakken van je verkeer voor de tunnel voegt headers toe, waardoor een pakket dat precies in je gewone verbinding paste, niet meer past zodra het in WireGuard zit. Kleine pakketten komen er zonder moeite door; grote worden weggegooid. Normaal laat het netwerk de afzender weten dat die kleinere pakketten moet gebruiken, maar het bericht dat dat doet wordt vaak gefilterd, dus in plaats van een foutmelding blijf je gewoon wachten.
De oplossing is WireGuard vanaf het begin kleinere pakketten te laten gebruiken. wg-quick probeert dat al: het neemt de MTU van je gewone route en trekt er 80 bytes af voor de overhead van de tunnel, dus op een gewone verbinding van 1500 bytes krijg je 1420. Is dat nog te groot (sommige mobiele netwerken, de meeste verbindingen die al over een andere tunnel lopen), stel hem dan expliciet in en ga stapsgewijs omlaag:
[Interface] MTU = 1420 # what wg-quick would have picked # still stalling? try 1380, then 1280
1280 is de ondergrens die het proberen waard is, omdat dat de kleinste pakketgrootte is die IPv6 van alles eist, waardoor hij vrijwel elk pad overleeft. Het kost een beetje efficiëntie en is veel beter dan een tunnel die blijft hangen.
De tunnel is actief maar er gaat niets doorheen
Controleer eerst AllowedIPs. Het is geen firewall en geen lijst met rechten: het bepaalt welke bestemmingen überhaupt de tunnel in worden gerouteerd. Staat 0.0.0.0/0 er niet in, dan was het verkeer naar de rest van het internet nooit bedoeld om erdoor te gaan, en doet je verbinding precies wat er is ingesteld. Op Linux toont ip route show table all | grep wg0 wat er werkelijk is gerouteerd.
Klopt de routering en worden namen gewoon niet opgelost, dan is het de regel DNS: hij ontbreekt, of hij staat er wel maar wordt niet toegepast omdat resolvconf niet is geïnstalleerd.
Waar het configuratiebestand vandaan komt
Alles hierboven gaat ervan uit dat je een bestand hebt. Er zijn precies twee manieren om er een te krijgen.
Zelf de server draaien
Je genereert een sleutelpaar, installeert WireGuard op een machine met een publiek adres, voegt je apparaat toe als peer en schrijft de clientconfiguratie met de hand. Het is niet moeilijk en echt de moeite waard om te leren. Wat het kost, blijft doorlopen: een server om te betalen en bij te werken, en een handmatige aanpassing aan beide kanten telkens als je een apparaat toevoegt, want vergeet niet: één peer is één apparaat.
Er een krijgen van een provider
Het alternatief is dat het bestand voor je wordt aangemaakt en jij het alleen downloadt. Bij HytHost VPN, vanaf €0.99/mnd, vind je het hier:
- Bestel de dienst en log in op de klantomgeving, en open daarna je VPN-dienst in de lijst.
- Zoek het onderdeel WireGuard Configuration. Dat geeft je twee knoppen: Copy to Clipboard, dat de configuratietekst naar je klembord kopieert, en Download Configuration, dat je het kant-en-klare bestand geeft.
- Heb je hem gekopieerd, plak hem dan in een eenvoudige teksteditor en sla hem op met de extensie
.conf;wg0.confis een goede naam. Let erop dat je editor er geen.txtachter heeft gezet. - Importeer hem met de sectie hierboven voor jouw apparaat. Op een telefoon maak je er eerst een QR-code van met
qrencode.
Dezelfde pagina laat zien of de tunnel op dit moment met de server verbonden is, wat de vraag "ligt het aan mij of aan hen?" beantwoordt voordat je instellingen gaat veranderen. Er is geen knop voor een QR-code: maak hem zelf van het bestand, wat ook betekent dat de code nooit ergens terechtkomt waar hij niet hoefde te zijn.
Een configuratiebestand nodig om te importeren? Een HytHost VPN-dienst geeft je een kant-en-klare WireGuard-configuratie vanaf €0.99/mnd.
Bekijk VPN-pakkettenVeelgestelde vragen
Installeer de officiële WireGuard-app, importeer het configuratiebestand dat je van je server of provider hebt gekregen en zet de tunnel aan. Op Windows is dat Tunnel toevoegen en daarna Activeer; op Android en iPhone kun je het bestand als QR-code scannen in plaats van het te importeren; op Linux zet je het bestand in /etc/wireguard/ en voer je wg-quick up uit met de naam ervan. Een handshake-tijdstip en ontvangen gegevens in de app bevestigen dat de verbinding actief is.
Een gewoon tekstbestand, meestal eindigend op .conf, met twee blokken. [Interface] beschrijft je apparaat: de privésleutel, het adres dat het binnen de tunnel krijgt en de resolver die het gebruikt. [Peer] beschrijft de server: de publieke sleutel, de host en UDP-poort, en welke bestemmingen door de tunnel moeten worden gerouteerd. Dat bestand is de hele verbinding: verder wordt er nergens op je apparaat iets opgeslagen.
Niet betrouwbaar, en de reden is het weten waard. Een configuratie is één peer, herkend aan één sleutelpaar, en de server houdt per peer één huidige locatie bij. Verbind je een telefoon en een laptop met hetzelfde bestand, dan stuurt de server het retourverkeer naar het apparaat dat het laatst een handshake deed, waardoor beide verbindingen steeds wegvallen en terugkomen. Elk apparaat heeft een eigen configuratie met een eigen sleutelpaar nodig.
Je maakt hem zelf van het configuratiebestand dat je al hebt: een WireGuard-QR-code is gewoon dat bestand, omgezet in een afbeelding. Voer qrencode -t ansiutf8 < wg0.conf uit om hem in een terminal te tonen en vanaf het scherm te scannen, of qrencode -o wg0.png < wg0.conf om een afbeelding op te slaan. Omdat de code de privésleutel bevat, behandel je hem als het bestand zelf: nooit ergens openbaar plaatsen.
Nee. De privésleutel is wat je apparaat op de VPN identificeert, dus iedereen met het bestand kan als jou verbinden. Hij mag nooit in een chat, op een forum, in een issuetracker of in een supportticket worden geplaatst, en hetzelfde geldt voor een QR-code of een screenshot van het bestand. Is een configuratie uitgelekt, dan is de oplossing een nieuw sleutelpaar te genereren en de peer te vervangen, niet hopen dat niemand hem heeft gelezen.
Die melding betekent dat het initiatiepakket is verstuurd en dat er niets terugkwam, en WireGuard kan je niet vertellen waarom, omdat het nooit een antwoord heeft ontvangen. Controleer host en poort van het Endpoint, ga na of het netwerk waarop je zit uitgaand UDP toestaat, en controleer of de PublicKey onder [Peer] de sleutel van de server is, terwijl de server de publieke sleutel heeft die bij jouw privésleutel hoort. Werkt hetzelfde bestand op een ander netwerk, dan klopt het bestand en filtert het netwerk UDP.
Dit patroon (handshake in orde, ping in orde, webpagina's die blijven hangen) is bijna altijd de MTU. Zodra het verkeer voor de tunnel wordt ingepakt, wordt elk pakket groter, dus pakketten die eerst pasten worden weggegooid, en het bericht dat dit normaal zou melden wordt vaak gefilterd. Voeg een regel MTU toe aan [Interface]: 1420 is wat wg-quick op een gewone verbinding zou berekenen, en 1380 of 1280 werkt waar dat nog te groot is.
Niet om een configuratiebestand te gebruiken. De client legt een uitgaande UDP-verbinding naar de server, en het antwoord komt terug via de koppeling die die verbinding aanmaakt, en dat is precies wat PersistentKeepalive openhoudt. Een poort hoeft alleen open aan de kant die de WireGuard-server draait en inkomende verbindingen moet accepteren.
Bij een provider die hem voor je aanmaakt. Een HytHost VPN-dienst, vanaf €0.99/mnd, toont in de klantomgeving een onderdeel WireGuard Configuration met een knop om de configuratietekst te kopiëren en een knop om het kant-en-klare bestand te downloaden. Daarna importeer je hem in de WireGuard-app op elk apparaat, en dezelfde pagina laat zien of de tunnel op dit moment verbonden is.
Een configuratiebestand dat van jou is
HytHost VPN geeft je een WireGuard-configuratie die je één keer downloadt en op elk apparaat importeert: Windows, Android, iPhone, macOS, Linux of je router. Vanaf €0.99/mnd.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursWas deze gids nuttig?