IPv6 veroorzaakt een probleem bij een callback wanneer de provider een AAAA-pad selecteert dat je proxy, firewall, TLS of applicatie niet kan voltooien.
In een zelfgehoste home-server stack kan een browser de app laden via IPv4 terwijl een OAuth-provider, webhook-verzender, mobiel netwerk of externe API IPv6 kiest voor het terugkerende verzoek. De zuivere test is om dezelfde callback-hostnaam te vergelijken via A- en AAAA-records, de reverse proxy- en applicatielogs te observeren, en alleen het falende adresfamilie te verwijderen of te repareren in plaats van willekeurig redirect-URL’s te wijzigen.
Noteer de Exacte Callback-URL en Faalstadium
Kopieer de callback-URL die door de applicatie is gegenereerd en de redirect-URI die bij de externe provider is geregistreerd. Vergelijk schema, hostnaam, poort, pad, afsluitende slash en hoofdlettergebruik voordat je het netwerk test.
Een callback-debuggids benadrukt dat OAuth-redirects exacte overeenstemming van de redirect-URI vereisen, zelfs wanneer de onderliggende service bereikbaar is. IPv6 kan een mismatch aan de providerzijde niet verklaren die optreedt voordat een verzoek je home server bereikt.
Classificeer het symptoom: provider wijst de URI af, browser time-out, proxy retourneert 502, TLS faalt, of de app ontvangt de callback maar genereert de verkeerde volgende URL. Dit bepaalt of de eerste test hoort bij providerconfiguratie, DNS, transport, proxy of applicatie-instellingen.
Vergelijk de A- en AAAA-antwoorden voor de Callback-hostnaam
Vraag de callback-hostnaam op bij een publieke resolver en noteer elk A- en AAAA-adres. Vergelijk deze adressen vervolgens met de WAN IPv4, gedelegeerde IPv6-prefix, tunnelendpoint of reverse-proxy-adres dat daadwerkelijk de applicatie bedient.
Een zelfgehoste OAuth-case beschrijft redirect URI mismatch en time-out als aparte fouten. Een correcte callback-string kan nog steeds falen wanneer DNS de provider naar een onbereikbaar adres leidt.
Als de hostnaam een AAAA-record heeft die niet bij het actieve proxy-pad hoort, verwijder deze dan tijdelijk en herhaal de callback. Als de fout verdwijnt, heeft de test IPv6-bereikbaarheid geïsoleerd; laat het record niet gepubliceerd totdat het volledige IPv6-pad is geverifieerd.
Test de Callback-host afzonderlijk over IPv4 en IPv6
Forceer vanaf een extern dual-stack systeem één verzoek via IPv4 en een ander via IPv6 naar dezelfde callback-hostnaam en pad. Noteer DNS-resolutie, TCP-verbinding, TLS-handshake, HTTP-status, response headers en totale tijd.
Cloudflare’s uitleg over dual-stack clientgedrag laat zien waarom een dienst gezond kan lijken voor de ene clientgroep terwijl een andere een ander adresfamilie of vertaalpad bereikt.
Als IPv4 slaagt en IPv6 time-out geeft vóór TLS, controleer dan routeradvertentie, gedelegeerde prefix, firewallregels, proxybinding en retourroutering. Als beide verbinden maar alleen IPv6 de verkeerde applicatieredirect produceert, verplaats de diagnose naar doorgestuurde headers en app-URL-generatie.
Controleer of de Reverse Proxy luistert en routeert op IPv6
Bevestig dat de publieke proxy luistert op het IPv6-adres en de poort die in DNS worden geadverteerd. Verifieer vervolgens dat de bijbehorende virtuele host, certificaat, route en backend-mapping identiek zijn aan de werkende IPv4-luisteraar.
Een publieke n8n-ondersteuningscase toont hoe een zelfgehoste applicatie een onbruikbare callback kan genereren wanneer het externe callback-adres niet overeenkomt met de URL en proxy-omgeving die de provider daadwerkelijk bereikt.
Stuur één geforceerde IPv6-callback terwijl je proxy-toegangs- en foutlogs bekijkt. Geen logvermelding betekent dat het verzoek stopte vóór de proxy; een toegangsvermelding met 404 of verkeerde host wijst op virtuele-hostrouting; een 502 of time-out wijst op het pad van proxy naar backend.
Verifieer Doorgestuurde Headers en Applicatie-URL-instellingen
Achter een reverse proxy heeft de applicatie mogelijk het publieke schema, host en poort nodig uit vertrouwde doorgestuurde headers of expliciete omgevingsvariabelen. Zonder deze kan het een interne hostnaam, HTTP-callback, privé IPv6-adres of containerpoort genereren.
Vergelijk de door de applicatie weergegeven callback-URL met de request headers die bij de proxy en backend binnenkomen. Ga er niet vanuit dat de IPv6-verbinding zelf de host verandert; het echte verschil kan zijn dat de IPv6-virtuele host dezelfde forwardingregels die door IPv4 worden gebruikt, weglaat.
Pas één correctie tegelijk toe: publieke basis-URL, vertrouwd proxybereik, doorgestuurde host, doorgestuurd protocol of luistermapping. Test de providerflow na elke wijziging opnieuw en houd de exacte callback-URL geregistreerd bij de provider ongewijzigd tenzij het publieke applicatieadres daadwerkelijk verandert.
Behoud of Verwijder IPv6 op basis van de Volledige Externe Test
IPv6 is pas klaar wanneer de callback-hostnaam correct wordt opgelost, het publieke adres bereikbaar is, de reverse proxy het juiste certificaat en host bedient, de backend het verzoek ontvangt en de applicatie de workflow voltooit.
ZimaSpace’s uitleg over directe IPv6 home-server bereikbaarheid biedt de bredere beveiligingsgrens: globaal routeerbare adressering vervangt niet de noodzaak van expliciete firewall- en proxycontroles.
Als de stack niet klaar is, verwijder dan het AAAA-record van de callback-hostnaam of beëindig IPv6 bij een werkende tunnel of proxy in plaats van een kapot direct pad te publiceren. Schakel het pas weer in na testen vanaf een extern IPv6-netwerk, niet alleen binnen hetzelfde LAN.
Ondersteuning & Tips
Meer om te lezen

How to Reduce Plex Database Contention on a Busy Docker Host
A Plex configuration guide for busy hosts that treats the database as local application state and reduces I/O contention without inventing a shared DB...

How to Prevent Duplicate Plex Scans and Imports
A prevention guide for duplicate Plex scans and imports that removes overlapping triggers instead of disabling library updates entirely.

How to Recover Plex After Its App-Data Volume Fills Up
A recovery ladder for full Plex app-data volumes that protects the database first and avoids deleting unknown files just to make the service start.

