wsl无网络连接(转载)

本文记录了在WSL(Windows Subsystem for Linux)环境下遇到的无网络连接问题,包括无法ping通和git无法pull的情况。解决方案是通过更新resolv.conf文件,添加公共DNS,并在wsl.conf中配置禁止自动生成resolv.conf。执行相关命令后,网络问题得到解决。

此文章是复制转载的,留备份用,不做其他任何作用

问题描述:
wsl无网络连接,ping不通,git 无法 pull

报下述错误:
1.Temporary failure in name resolution_
2.connect:network is unreachable
3.ssh: Could not resolve hostname gitee.com: Temporary failure in name resolution

解决办法:

依次执行下述命令即可。
sudo rm /etc/resolv.conf
sudo bash -c ‘echo “nameserver 8.8.8.8” > /etc/resolv.conf’
sudo bash -c ‘echo “[network]” > /etc/wsl.conf’
sudo bash -c ‘echo “generateResolvConf = false” >> /etc/wsl.conf’
sudo chattr +i /etc/resolv.conf

解决方案是通过更新resolv.conf文件,添加公共DNS,并在wsl.conf中配置禁止自动生成resolv.conf。
执行相关命令后,网络问题得到解决。

### WSL 无法访问网络的解决方法 #### 检查虚拟交换机状态 首先需要确认 WSL 的虚拟交换机是否正常工作。如果虚拟交换机显示“媒体已断开连接”,则需要修复该问题。可以通过 Hyper-V 管理器检查虚拟交换机的状态,并确保其连接正常 [^1]。 #### 配置网络设置 如果虚拟交换机正常,但 WSL 仍然无法访问网络,则可能是因为 WSL 的网卡配置与虚拟交换机的网络配置不一致。在 NAT 模式下,WSL 的 IP 地址应该属于虚拟交换机子网的地址范围。可以通过以下命令查看当前的路由表: ```bash ip route ``` 输出示例: ``` default via 172.28.96.1 dev eth0 proto kernel 172.28.96.0/20 dev eth0 proto kernel scope link src 172.28.108.21 ``` 如果发现 IP 地址不在预期的子网范围内,可以尝试重置 WSL 的网络配置。可以通过重启 WSL 或者使用以下命令来刷新网络配置: ```bash sudo dhclient -r sudo dhclient ``` #### DNS 配置问题 如果能够 ping 通 IP 地址但无法访问域名,可能是 DNS 配置问题。可以尝试手动配置 DNS 服务器,编辑 `/etc/resolv.conf` 文件,添加如下内容: ```bash nameserver 8.8.8.8 nameserver 8.8.4.4 ``` #### 解决无法访问宿主机的问题 如果在 WSL 中无法访问宿主机上的服务(如 localhost:11434),可以尝试使用宿主机的局域网 IP 地址代替 `localhost`。例如,如果宿主机的局域网 IP 地址是 `192.168.1.100`,则可以使用 `http://192.168.1.100:11434` 来访问服务 [^2]。 #### 检查 WSL2 服务 如果无法 ping 通 IP 地址,可能是网络配置或 WSL2 服务问题。可以尝试重启 WSL2 服务或者更新 Windows 系统到最新版本以获得更好的兼容性 [^3]。 #### 解决 \wsl.localhost 无法访问的问题 如果遇到 `\wsl.localhost` 无法访问的问题,可以尝试使用 `\\wsl$` 来访问 WSL 文件系统。此外,还可以通过配置 hosts 文件或者使用 WSL 的网络共享功能来解决此问题 [^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值