解决 WSL Ubuntu 中 /etc/resolv.conf 自动重置问题

前言

在使用 Windows Subsystem for Linux (WSL) 的 Ubuntu 子系统时,你可能会遇到 /etc/resolv.conf 文件被自动重置的问题。即使你手动删除或修改了这个文件,它仍然会被恢复到默认配置,例如被设置为 nameserver 192.168.31.2。 本文将深入探讨这个问题的原因,并提供有效的解决方案,同时回顾一些可能无效的尝试性操作,帮助你彻底解决 WSL Ubuntu 中的 DNS 配置困扰。

问题描述

正如用户遇到的情况,即使执行 sudo rm /etc/resolv.conf 删除了 /etc/resolv.conf 文件,或者使用 sudo tee /etc/resolv.conf <<< "nameserver 192.168.31.111" 尝试手动设置 nameserver,重启 WSL 后,/etc/resolv.conf 文件仍然会被重置为包含 nameserver 192.168.31.2 的内容。 这导致用户自定义的 DNS 设置无法生效,影响网络访问。

问题原因

这个问题的根源在于 WSL 的网络配置机制。 WSL 默认被设计为与 Windows 主机网络环境紧密集成。 为了简化网络配置,WSL 会自动生成 /etc/resolv.conf 文件,并使其 镜像 Windows 主机当前的 DNS 设置。 这意味着,每次 WSL 启动或网络环境发生变化时,WSL 都会重新生成 /etc/resolv.conf,覆盖任何手动修改。

因此,仅仅删除或临时修改 /etc/resolv.conf 文件是无法持久解决问题的。我们需要 阻止 WSL 自动生成该文件,并采取其他方式来配置 DNS。

尝试过的命令及分析

为了更好地理解问题,并帮助读者避坑,我们先回顾一下用户尝试过的一些命令,并分析其效果:

ls -l /etc/resolv.conf
  • 作用: 列出 /etc/resolv.conf 文件的详细信息,包括权限、所有者、大小和修改时间等。 用于确认文件是否存在以及基本属性。
cat /etc/resolv.conf
  • 作用: 查看 /e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值