WSL2 DNS修复配置指南

WSL2 DNS修复配置指南

本指南将详细解释如何利用epomatti/wsl2-dns-fix-config这个开源项目来解决Windows Subsystem for Linux (WSL2)中的DNS解析问题。我们将分三个部分进行说明:项目的目录结构、启动文件以及配置文件。

1. 项目目录结构及介绍

此项目的核心在于提供一个简单的Shell脚本来自动化解决WSL2中DNS配置被重写的问题。下载并解压后的基本目录结构通常包括:

  • wsl2-dns-fix-config-x.x.x/ (x.x.x表示版本号)
    • dist/ 目录,包含了预设的配置文件模板。
    • run.sh 启动脚本,用于执行DNS设置的修正操作。
    • 可能还包括README.md等其他文档文件,提供了快速入门指南和项目信息。

重要文件简介:

  • run.sh: 脚本负责删除旧的配置,并创建新的配置文件以强制使用Google DNS或其他指定的DNS服务器,同时确保这些更改不会在每次重启时被覆盖。

2. 项目的启动文件介绍

run.sh

该脚本是项目的主驱动程序,执行以下关键任务:

  • 删除可能存在的不正确或默认的配置文件,如 /etc/wsl.conf/etc/resolv.conf
  • 创建或更新配置文件以禁用WSL2自动生成resolv.conf的功能,并手动设定DNS服务器地址(通常是Google DNS的8.8.8.8和8.8.4.4)。
  • 设置/etc/resolv.conf为不可变状态 (chattr +i) 来防止系统或其它进程修改它。

使用方法:

  1. 在WSL环境内,定位到run.sh文件的位置。
  2. 使用具有管理员权限的方式运行此脚本:sudo sh run.sh

3. 项目的配置文件介绍

虽然本项目主要依赖于脚本自动管理配置,但有两个核心配置文件涉及其中,尽管它们不由用户直接编辑,而是由run.sh脚本生成和管理:

  • /etc/wsl.conf

    • 示例内容:[network]\ngenerateResolvConf = false,这一配置阻止WSL2自动产生resolv.conf
  • /etc/resolv.conf

    • 脚本会将其内容替换为指定的DNS服务器地址,如:nameserver 8.8.8.8\nnameserver 8.8.4.4,并设置其为只读,以保持DNS设置不变。

通过遵循以上步骤,您可以有效解决WSL2下的DNS配置问题,保证网络解析的稳定性和可靠性。确保在执行任何脚本之前备份原始配置文件,以防不测。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值