前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

WSL无法访问网络的解决办法(windows无法访问网络计算机)

qiguaw 2024-10-19 07:56:16 资源文章 17 ℃ 0 评论

今天打开WSL后,突然遇到wsl无法访问网络的问题,具体解决方案如下:

wsl,Windows下的linux子系统,作用为在windows下直接体验Linux的快捷操作;此处以wsl v2作为示例说明(因为我装的就是wsl v2)

  1. 查看 /etc/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.17.0.1

以上说明表示此文件由WSL自动生成,所以我们需要先关闭此文件的生成,然后再重新进行配置

PS:nameserver 表示的为DNS地址,此问题表示为DNS解析异常

  1. 关闭wsl自动生成 /etc/resolv.conf 文件的功能
# 因原文表示的为配置信息,所以此处直接使用cat进行查看以便复制效验
$ cat /etc/wsl.conf
[network]
generateResolvConf = false

PS:有些机器因配置不同和以上说明有些区别,只要保证有这两行即可,并非要求一定要一样

  1. 重启/关闭 wsl
# 此处为管理员运行的Windows PowerShell
PS C:\WINDOWS\system32> wsl --shutdown
PS C:\WINDOWS\system32>
  1. 重新配置 /etc/resolv.conf
$ cat /etc/resolv.conf
nameserver 223.5.5.5
nameserver 223.6.6.6
# PS:此处为DNS解析地址,可以根据当地的网络进行适配性配置

然后就可以进行联网访问了

ping报错问题

有时候,我们会遇到wsl中无法ping的问题(特指wsl2),如下:

$ ping baidu.com
ping: socket: Operation not permitted

这是因为权限问题,可以先使用sudo进行测试一下,如下:

$ sudo ping baidu.com
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=44 time=14.1 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=44 time=13.3 ms
^C
--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 13.314/13.693/14.073/0.379 ms

倒此,原理清晰了,因为普通用户执行ping命令没有权限,所以我们要进行授予权限;

但是具体是什么权限还不清楚,经过一番查找,得知:

ping命令在运行中采用了ICMP协议,需要发送ICMP报文。

但是只有root用户才能建立ICMP报文。而正常情况下,ping命令的权限应为 -rwsr-xr-x,即带有suid的文件,一旦该权限被修改,则普通用户无法正常使用该命令。

所以我们需要给ping命令授予suid权限,即执行以下命令即可

$ sudo chmod u+s /bin/ping
$ ping baidu.com
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=44 time=13.3 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=44 time=12.9 ms
^C
--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 12.921/13.117/13.313/0.196 ms

至此,配置完成



PS:此处作为问题备份,以便下次遇到后好再次查找修复

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表