One-liner shell script that will setup your WSL2 image to use custom nameserver 8.8.8.8
from Google.
Clone and run the shell:
sudo sh ./run.sh
Restart WSL:
wsl --shutdown
All done. Make sure you read what it does.
You can try curl --resolve
with one of GitHub's IP addresses to force DNS resolution:
curl --resolve 'codeload.github.com:443:20.201.28.149' 'https://codeload.github.com/epomatti/wsl2-dns-fix-config/tar.gz/refs/tags/v1.0.1' -o wsl2-dnsfix.tar.gz
tar -xf wsl2-dnsfix.tar.gz
cd wsl2-dns-fix-config-1.0.1
sudo sh ./run.sh
This will work in distros like Ubuntu 22.04 which are not recognizing github.com out of the box.
Yet another way is to get the archive from the releases:
curl -L 'https://github.com/epomatti/wsl2-dns-fix-config/archive/refs/tags/v1.0.1.tar.gz' -o wsl2-dnsfix.tar.gz
The run.sh
script will perform these tasks:
-
Delete the following files:
/etc/wsl.conf
and/etc/resolv.conf
-
Create the new ".conf" files (pre-created in the dist folder) setting Google DNS for name resolution and preventing WSL from overriding it:
# /etc/wsl.conf [network] generateResolvConf = false
# /etc/resolv.conf nameserver 8.8.8.8
-
Make
/etc/resolv.conf
immutable
Feel free to open an issue/discussion or send a pull request.
Tested on:
- Ubuntu 22.04
- Ubuntu 20.04
https://gist.github.com/coltenkrauter/608cfe02319ce60facd76373249b8ca6