Het verwerken van grote downloads in WSL2 kan behoorlijk frustrerend zijn. Met kleine bestanden werkt alles prima, maar wanneer je een grote afbeelding of dataset probeert te downloaden, kan het downloadproces vastlopen rond de 40%.Er verschijnen geen foutmeldingen, de download stopt gewoon – de overdrachtssnelheid daalt naar nul en blijft daar hangen, wat erg vervelend is. Het is alsof het netwerk er zonder waarschuwing mee ophoudt. Gelukkig zijn er een paar oplossingen die kunnen helpen. Soms is het een kwestie van een schakelaar omzetten, soms moet je configuratiebestanden aanpassen of zelfs de manier waarop WSL2 met het netwerk communiceert wijzigen. Het goede nieuws? Deze oplossingen hebben al veel mensen geholpen en het gaat er meestal om een bekende bug te omzeilen in de manier waarop WSL2 TCP-verkeer via de NAT-configuratie afhandelt.
Hoe grote downloads in WSL2 te verhelpen
Oplossing 1 – TCP-tijdstempels uitschakelen (snelle test) – Omdat het snel en gemakkelijk is.
Dit is de eenvoudigste manier om te controleren of het probleem te maken heeft met de afhandeling van TCP-tijdstempels. TCP-tijdstempels (volgens RFC 7323) helpen bij het meten van de retourtijden – meestal handig – maar in WSL2, waar ze de NAT verstoren, kunnen ze ervoor zorgen dat de verbinding vastloopt tijdens lange overdrachten. De oplossing is om ze tijdelijk uit te schakelen. Als je download dan weer verdergaat, dan is dit waarschijnlijk de boosdoener.
- Open je WSL2-terminal en voer dit commando uit:
sudo sysctl -w net.ipv4.tcp_timestamps=0
Als de download normaal hervat wordt, bevestigt dit dat TCP-tijdstempels een deel van het probleem vormen. Als de download nog steeds vastloopt, is het tijd om de andere oplossingen te proberen. In sommige configuraties moet u deze opdracht mogelijk elke keer uitvoeren wanneer u WSL2 start, tenzij u deze permanent instelt — en dat is waar oplossing 2 van pas komt.
Oplossing 2 – Schakel het uitschakelen van TCP-tijdstempels permanent uit in wsl.conf
Deze stap zorgt ervoor dat de wijziging ook na herstarts behouden blijft. Omdat de opdracht uit Fix 1 elke keer dat je WSL2 opnieuw opstart wordt gereset, moet je WSL2 laten weten dat TCP-tijdstempels bij elke opstart moeten worden uitgeschakeld door het bestand wsl.conf te bewerken.
- Open het configuratiebestand in je WSL2-terminal met nano:
sudo nano /etc/wsl.conf
Voeg deze regels toe aan het bestand (als er al een [boot] -sectie bestaat, voeg dan de opdrachtregel eronder toe):
[boot] command=sysctl -w net.ipv4.tcp_timestamps=0 systemd=true
Sla je wijzigingen op ( Ctrl + O, vervolgens Enter, daarna Ctrl + X ) en sluit nano af.
Vervolgens sluit je WSL2 volledig af vanuit PowerShell met:
wsl --shutdown
Heropen vervolgens je distributie. Nu zullen TCP-tijdstempels standaard uitgeschakeld zijn telkens wanneer WSL2 opstart. Als je distributie systemd gebruikt, laat dan systemd=true staan ; zo niet, dan kun je het weglaten of ongewijzigd laten. Deze oplossing biedt vaak iets meer verlichting op de lange termijn, vooral bij grote data-downloads.
Oplossing 3 – Schakel Large Send Offload uit op de WSL-adapter
Als het uitschakelen van TCP-tijdstempels het probleem niet oplost, dan verergeren de offloading-functies van de netwerkadapter de situatie mogelijk. Large Send Offload (LSO) is ontworpen om pakketsegmentatie naar de hardware over te dragen, maar bij virtuele netwerken kan dit soms grote gegevensoverdrachten verstoren, wat leidt tot vertragingen of pakketverlies.
- Druk op de Windows- toets, typ ‘Configuratiescherm’ en open het.
- Klik op Netwerk en internet.
- Klik op Netwerkstatus en taken bekijken.
- Klik aan de linkerkant op Adapterinstellingen wijzigen.
- Zoek de netwerkadapter met de naam vEthernet (WSL), klik er met de rechtermuisknop op en kies Eigenschappen.
- Klik op Configureren en ga vervolgens naar het tabblad Geavanceerd.
- Scroll door de lijst en zoek Large Send Offload Version 2 (IPv4). Stel de waarde in op Uitgeschakeld.
- Doe hetzelfde voor Large Send Offload versie 2 (IPv6).
- Klik op OK. Mogelijk wordt uw netwerkverbinding kortstondig opnieuw opgestart.
Probeer na afloop de grote download opnieuw. Deze truc is misschien wat vreemd, maar het uitschakelen van offloading-routines lost vaak vastgelopen overdrachten op in gevirtualiseerde Windows-omgevingen.
Oplossing 4 – Schakel over naar de gespiegelde netwerkmodus — De definitieve oplossing
Misschien is de NAT-bug gewoon te hardnekkig. Door WSL2 over te schakelen naar de gespiegelde netwerkmodus, deelt het direct het netwerk van de host, waardoor al die rare NAT-dingen worden omzeild. Dit kan de TCP-tijdstempelbug volledig verhelpen, maar het is niet zonder gevolgen – zoals het opnieuw configureren van firewallregels of port forwarding als je daarvan afhankelijk bent.
- Typ in de adresbalk van Bestandsverkenner het volgende en druk op Enter.
%UserProfile% - Controleer of er een bestand met de naam .wslconfig bestaat. Zo niet, maak dan een nieuw tekstbestand aan met de naam .wslconfig (zonder extensie).
- Open het bestand.wslconfig in Kladblok en voeg de volgende regels toe:
[wsl2] networkingMode=mirrored
wsl --shutdownHeropen je WSL2-distributie. De gespiegelde modus zorgt meestal voor minder problemen bij grote gegevensoverdrachten, omdat je de lastige NAT-router omzeilt. Wees je er wel van bewust dat als je gevoelige software met strenge firewallregels gebruikt, je deze na deze wijziging nogmaals moet controleren.
Oplossing 5 – WSL bijwerken en opnieuw opstarten — Soms lost de software dit probleem op.
Microsoft verhelpt regelmatig bugs in WSL2, dus door alles up-to-date te houden, kunnen netwerkproblemen worden opgelost. Voer hiervoor de volgende opdracht uit in PowerShell :
wsl --update
Sluit WSL daarna volledig af met:
wsl --shutdown
Start je distributie dan opnieuw op en kijk of de downloadsnelheden weer verbeteren. Het is een beetje een kwestie van geluk hebben: soms lossen de updates het probleem direct op, maar andere keren moet je wachten tot Microsoft een volledig gepatchte versie uitbrengt.
Preventieve tips en goede gewoontes
- Houd WSL regelmatig up-to-date met
wsl --update. Er worden constant kleine bugfixes doorgevoerd. - Als je grote hoeveelheden data overdraagt, schakel dan aan het begin over naar de gespiegelde netwerkmodus om NAT volledig te omzeilen.
- Plaats je aanpassingen in de bestanden wsl.conf en .wslconfig om ervoor te zorgen dat de instellingen na een herstart behouden blijven.
- Test na Windows-updates grote downloads — wacht eventueel even of pas je aanpassingen opnieuw toe als er iets mis lijkt te zijn.
Mensen vragen ook vaak
Wat zijn TCP-tijdstempels precies, en waarom veroorzaken ze ineens problemen?
Het zijn kleine stukjes TCP-headerinformatie (uit RFC 7323) die helpen met het meten van de tijd die een pakket nodig heeft om terug te komen en die de pakketstroom ordenen. Normaal gesproken zijn ze erg nuttig, maar in de NAT-configuratie van WSL2 kunnen deze waarden beschadigd raken of verkeerd worden geïnterpreteerd. Het uitschakelen ervan is alsof je een onderdeel van het TCP-protocol uitschakelt dat problemen veroorzaakt tijdens lange, aanhoudende downloads.
Is overschakelen naar de gespiegelde modus beter dan NAT voor WSL2?
Meestal wel. Mirrored networking zorgt ervoor dat WSL2 rechtstreeks het echte netwerk van de host kan delen, waardoor de gebrekkige NAT-laag wordt omzeild. Dit kan grote gegevensoverdrachten betrouwbaarder maken, maar het is niet perfect als je specifieke firewallregels of port forwarding hebt ingesteld.
Hopelijk zorgt een van deze oplossingen ervoor dat die grote download eindelijk wordt voltooid. Veel succes, en laten we hopen dat dit iemand helpt om niet eindeloos te hoeven wachten tot de download weer verdergaat.