介绍
当我尝试在 WSL2 中使用 ubuntu20.04 并尝试 sudo apt update 或 git clone hogehoge 时,由于无法解析名称,我无法访问网络。
我已经解决了,但我会记住它。
- (不知道为什么) /etc/resolve.conf 错误,改写为8.8.8.8
- (还是不解析)直接查找DNS IP地址,写入/etc/resolve.conf
是什么
内容
首先,/etc/resolve.conf 在我的环境中是一个符号链接,它处于一个奇怪的状态,如下图所示。
$ file /etc/resolve.conf
/etc/resolv.conf: broken symbolic link to ../run/resolvconf/resolv.conf
原来,如各种写法,介绍了初始设置时写resolve.conf的设置。在我的,我做了以下事情:
[network]
generateResolvConf = false
如果这是真的,resolve.conf 将被创建。
true 设置 WSL 以生成 /etc/resolv.conf。resolv.conf 包含一个能够将给定主机名解析为其 IP 地址的 DNS 列表。
撇开这个,没有resolve.conf,
/etc/resolve.confnameserver 8.8.8.8好像很多人都是这样写自己解决的。
研究和写作
就我而言,它仍然没有用。所以,我检查并直接设置它。在PowerShell中
$ ipconfig /all找出主机的windows连接到网络的连接的DNS服务器的IP地址。将其添加到 resolve.conf。
WSL2 重启
退出 WSL2。从电源外壳执行此操作。
> wsl --shutdown普通手术?
暂时也只是上网,还是不太明白正确的形式应该是什么。
在另一个环境中,没有 /etc/wsl.conf 并且 /etc/resolve.conf 是$ file /etc/resolv.conf /etc/resolv.conf: symbolic link to /mnt/wsl/resolv.conf $ cat /etc/resolv.conf # This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf: # [network] # generateResolvConf = false nameserver 172.21.32.1它已经成为并且可以毫无问题地使用。
考虑原因
如果主机端的网络环境从中间发生变化,我认为DNS也有可能发生变化。当时我以为正在启动的WSL2的resolve.conf会老,名字可能解析不出来。比如换咖啡店,连接不同的Free WiFi,或者中途进入公司的VPN。
另外,如果它处于正常状态,/etc/resolve.conf 似乎创建正常,所以我认为最好不要在wsl.conf 中设置generateResolvConf = false。在另一个环境中它工作正常。
此外,将 WSL2 与 Docker for windows 一起使用可能会产生影响。我想知道当中间发生一些事情时是否会发生变化。
嗯,我也不知道。
参考信息
我读了很多。非常感谢。
概括
当我无法解析与 WSL2 的网络连接中的名称时,它在修改 /etc/resolve.conf 后工作。我会继续关注情况。 . .我想用一台Linux机器,但是今天因为不能用而泪流满面。
(2022/10/28)
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308632114.html