WSL2默认DNS配置导致无法访问网络

本文详细讲述了在WSL2环境中遇到无法ping通外部域名的问题,通过排查发现是DNS配置问题。解决方法包括修改wsl.conf,禁用自动生成的resolv.conf,并设置静态DNS服务器。最终步骤是重启WSL以确保更改生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题分析:

1.进入wsl ping www.baidu.com 不通;

2.本机cmd ping www.baidu.com 正常;

3.把本机ping 百度的ip拿出来,用wsl直接ping 百度的ip正常;

通过此步骤基本可以判断是WSL2默认的DNS配置有问题。

处理方式

1.进入wsl2新增一个文件:/etc/wsl.conf

vi /etc/wsl.conf 输入:

[network] 
generateResolvConf = false

2.删除/etc/resolv.conf(wsl2默认生成的是一个软连接,其实指向的是另外一个路径)

3.重新建一个/etc/resolv.conf,命令如下

vi /etc/resolv.conf  然后输入:

nameserver 8.8.8.8

其中 8.8.8.8 替换成你自己的DNS服务器地址。可以在本机右下角的网络链接小图标查看本机的DNS服务地址配置。

4.重启wsl,再ping www.baidu.com 搞定。

### 如何在WSL2中连接到Ubuntu #### 进入已安装的Ubuntu发行版 对于已经成功安装了WSL 2以及至少一个Linux发行版(比如Ubuntu)的情况,在Windows命令提示符(CMD)、PowerShell或是任何其他支持调用`wsl.exe`指令的应用程序里输入: ```bash wsl -v ``` 上述命令可以展示当前系统中存在的所有WSL分发版本及其状态,包括名称和是否被设置为默认选项[^2]。 要启动特定的Ubuntu环境或进入其终端界面,可以在CMD或Powershell中执行如下命令: ```bash wsl -d Ubuntu-20.04 ``` 这里的`Ubuntu-20.04`应替换为你实际使用的具体版本名。如果只有一款Linux发行版,则可以直接使用`wsl`来启动默认Linux子系统[^1]。 #### 配置网络连接 通常情况下,当通过以上方式启动Ubuntu之后,默认即能够正常联网。这是因为WSL 2自带了一套虚拟化的网络适配器,允许Linux子系统直接访问互联网资源而无需额外配置。不过为了确保一切顺利工作,可能还需要确认几个方面: - **DNS解析**:有时可能会遇到域名无法解析的问题,这可以通过编辑`/etc/resolv.conf`文件添加合适的DNS服务器地址解决。 - **防火墙规则**:某些安全策略可能导致部分端口对外不可达,需检查并调整相应设置以开放必要的服务端口。 一旦完成这些基本设定后,就可以像平常一样利用各种工具和服务来进行开发活动了,例如Git、Docker等[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值