介绍

当我尝试在 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的设置。在我的,我做了以下事情:

/etc/wsl.conf
[network]
generateResolvConf = false

如果这是真的,resolve.conf 将被创建。

true 设置 WSL 以生成 /etc/resolv.conf。resolv.conf 包含一个能够将给定主机名解析为其 IP 地址的 DNS 列表。

撇开这个,没有resolve.conf,

/etc/resolve.conf
nameserver 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

相关文章:

  • 2021-08-03
  • 2021-12-22
  • 2021-04-03
  • 2021-11-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
猜你喜欢
  • 2022-12-23
  • 2021-07-05
  • 2021-12-28
  • 2022-12-23
  • 2022-12-23
  • 2021-08-24
  • 2021-11-10
相关资源
相似解决方案