在使用WSL时常常会遇安装软件网络慢,甚至有些情况下连不上的问题。有两种解决思路:一是使用镜像网站,例如国内的阿里云,这样下载软件时直接从国内下载,访问起来更流畅;二是购买并设置代理,虽然资源依然下载自国外,但网络的路径有更多的选择,可以选择更通常的中继站点访问国外的资源。
国内镜像
阿里云:https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.3e221b11zqcULk
镜像的设置并不麻烦,在阿里云Ubuntu镜像中,进行如下替换:
用你熟悉的编辑器打开 /etc/apt/sources.list,替换默认的 archive.ubuntu.com/ 为 mirrors.aliyun.com
设置代理
WSL2与windows的网络是相互独立的,所以即使windows中设置了代理,WSL2中也不能直接访问。可以通过clash for linux在WSL2中再次设置一个代理,记录一下大致过程:
step1:从github下载对应的clash软件包;
step2:使用gzip进行解压缩,例如gzip -d clash-linux-386-v1.11.8.gz
,得到二进制文件clash-linux-386-v1.11.8
;
step3:将该文件修改为可执行文件chmod +x clash-linux-386-v1.11.8
;
step4:更新订阅信息wget -O ~/.config/clash/config.yaml 你的订阅
(配置文件位于~/.config/clash/中);
step5:在系统中设置代理变量export http_proxy=localhost:7080 && export https_proxy=7080
;
在设置好代理之后,可以通过wget方式进行测试,比如访问google.com,在代理设置失败的情况下,你会得到类似下面的信息:
$ wget www.google.com
--2022-06-01 21:26:23-- http://www.google.com/
Resolving www.google.com (www.google.com)... 210.209.84.142, 2001::34af:950
Connecting to www.google.com (www.google.com)|210.209.84.142|:80...
failed: Connection timed out.
Connecting to www.google.com (www.google.com)|2001::34af:950|:80... failed: Network is unreachable.
而如果成功设置了代理,则会得到类似如下的信息:
$ wget www.google.com
--2022-06-01 21:25:51-- http://www.google.com/
Connecting to 127.0.0.1:9090... connected.
Proxy request sent, awaiting response... 200 OK
Length: 18 [application/json]
Saving to: ‘index.html’
index.html 100%[===============================================================>] 18 --.-KB/s in 0s
2022-06-01 21:25:51 (5.70 MB/s) - ‘index.html’ saved [18/18]
需要注意的是,ping命令在运行时不会使用代理,所以即使设置了代理,使用ping google.com
也会ping不通。