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.shRestart 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.shThis 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.gzThe run.sh script will perform these tasks:
-
Delete the following files:
/etc/wsl.confand/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.confimmutable
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