WSL2 Arch Linux ,需要用到 docker 。docker 是通过 genie 实现 systemctl 功能,然后安装的(不是安装的 Windows 的 docker desktop )
拉容器在更换清华源并执行apt-get update
指令后会出现如下报错
Err:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease
Temporary failure resolving 'mirrors.tuna.tsinghua.edu.cn'
查询 StackOverflow 以后,修改/etc/resolv.conf
中nameserver 127.x.x.x
的值为8.8.8.8
,确实可以解决问题
问题是同时设置了 WSL2 访问 clash for Windows 来翻墙,修改了nameserver
以后就失效了
export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')
export https_proxy="http://${hostip}:7890"
export http_proxy="http://${hostip}:7890"
如何可以解决这个问题呢,换用 docker desktop 可行吗?(主要是不想在 Windows 上下载这种东西)
1
coolan 2022-02-20 13:53:42 +08:00 via Android
nameserver 不是 DNS 服务器吗,你下面 export hostip 应该是宿主机 IP ,直接写原来的那个 127.x 的不就行了
|
2
xQmQ OP @coolan WSL2 的机制是每次 Windows 重启,开启 WSL 时会重新生成一个虚拟适配器,ip 地址会发生改变,所以需要那个 export 取地址
|
3
dns00001 2022-02-20 14:11:17 +08:00
我 windows 用的 v2ray,开启允许局域网连接后,wsl2 里 export 的 hostip 用 win 网络连接的 ip 就好了。比如我的 windows ip 是 192.168.x.xxx,我在 wsl2 里只要 export https_proxy="http://192.168.x.xxx:xxxx"就行了,不用管 nameserver
PS:wsl2 的 Ubuntu 的 systemd 可以参照 https://forum.snapcraft.io/t/running-snaps-on-wsl2-insiders-only-for-now/13033 开启 |