Ubuntu 20.04 WSL2 /etc/resolv/conf 重复覆盖问题

烟雨江南 2024-09-04 ⋅ 14 阅读

在使用Windows Subsystem for Linux 2(简称WSL2)的Ubuntu 20.04版本时,我们可能会遇到/etc/resolv.conf文件被重复覆盖的问题。本文将介绍这个问题的原因,并提供解决方法。

问题描述

在使用WSL2的Ubuntu 20.04版本时,可能会遇到/etc/resolv.conf文件被重复覆盖的问题。每当重新启动WSL2时,文件内容就会被重写为类似以下的内容:

# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line.
nameserver 172.16.1.1

由于该文件是用于配置系统的DNS解析的重要文件,这个问题会导致我们无法使用自定义的DNS服务器地址,而且每当重启WSL2时都需要重新设置DNS解析服务器。

问题原因

造成这个问题的原因是WSL2每次启动时都会生成一个新的/etc/resolv.conf文件,这是为了适配用户可能在不同网络环境下使用WSL2的需求。

解决方法

虽然问题看上去比较麻烦,但其实有一个简单的解决方法。

首先,我们需要创建一个名为/etc/wsl.conf的文件,如果已经存在则可以跳过此步。

通过以下命令创建该文件:

sudo nano /etc/wsl.conf

然后,将以下内容复制粘贴到文件中:

[network]
generateResolvConf = false

保存文件并退出编辑器。

接下来,我们需要在/etc/resolv.conf文件中添加我们想要使用的DNS服务器地址,这个地址可以是我们所在网络环境的正确DNS服务器。

通过以下命令编辑该文件:

sudo nano /etc/resolv.conf

然后,将以下内容复制粘贴到文件中(假设我们要使用的DNS服务器地址为8.8.8.8):

nameserver 8.8.8.8

保存文件并退出编辑器。

最后,我们需要重启WSL2以使更改生效。通过以下命令重启WSL2:

wsl --shutdown

现在,每当我们启动WSL2时,/etc/resolv.conf文件将不再被覆盖,并且我们所设置的DNS服务器地址将被正确应用。

总结

通过上述步骤,我们解决了Ubuntu 20.04 WSL2中/etc/resolv.conf文件重复覆盖的问题。我们创建了一个wsl.conf文件来禁止WSL2自动生成resolv.conf,并手动在resolv.conf中添加了我们想要使用的DNS服务器地址。这样,在每次启动WSL2时,我们的DNS设置将得到正确应用。

希望这篇博客对遇到这个问题的用户有所帮助。如果您有任何疑问或建议,请在下方留言。谢谢阅读!


全部评论: 0

    我有话说: