WSL 无法解析域名:

Could not resolve hostname github.com: Temporary failure in name resolution

解决方法一:(每次重启电脑后都需要设置)

配置本地域名解析:

  1. sudo vim /etc/hosts

  2. 添加如下配置: (172.65.251.78是ping成功的ip)

     172.65.251.78 github.com
    

解决方法二: (推荐)

# 1. 编辑 /etc/wsl.conf 文件
$ vim /etc/wsl.conf
[network]
generateResolvConf = false

# 2. 重启 wsl
$ wsl --shutdown
# 3. 启动 wsl, 拷贝保留原来的 /etc/resolv.conf文件, 创建一个新的 /etc/resolv.conf 文件编辑如下
$ sudo mv /etc/resolv.conf /etc/resolv.conf.old
$ sudo vi /etc/resolv.conf
nameserver 8.8.8.8

解决方法三:

  1. Boot your distro.

  2. cd ~/../../etc

  3. Create wsl.conf, however you see fit. sudo vim wsl.conf, sudo touch wsl.conf and edit it later, whatever.

  4. Add these lines to wsl.conf:

    [network]
    generateResolvConf=false
    
  5. exit or in Windows cmd wsl --terminate [YourDistroName]

  6. Boot your distro.
    At this point, thanks to wsl.conf, run/resolvconf should no longer exist and will never be created again.

  7. cd ~/../../etc

  8. sudo rm resolv.conf sudo rm resolv.conf

  9. Create a new resolv.conf, however you see fit. sudo vim resolv.conf, sudo touch resolv.conf and edit it later, whatever.

  10. Add this line to resolv.conf:

    nameserver 8.8.8.8
    

replace 8.8.8.8 with your preferred functional nameserver.

  1. exit or in Windows cmd wsl --terminate [YourDistroName]
  2. wsl --shutdown just to be sure that you’ve definitely killed everything.
  3. Boot your distro.
  4. Confirm that your resolv.conf changes are still in effect, or just ping a domain name and cry tears of joy after struggling to get this working for far too fucking long.

参考文献:

https://github.com/microsoft/WSL/issues/6404
https://github.com/microsoft/WSL/issues/5256

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐