wsl2设置代理
wsl2设置代理:
主机 IP 保存在 /etc/resolv.conf 中
最简单的方法:新建一个.proxy
文件,内容为
1 | export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*') |
/etc/resolv.conf
中有主机的ip地址。
然后使用的时候:
1 | source .proxy |
稍微复杂点:在.zshrc
或者是 .bashrc
中添加
1 | export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*') |
在终端输入setss即可使用代理,输入unsetss可取消代理
如果wsl连接不到主机,需要放开 vEthernet (WSL)
这张网卡的防火墙,以及让Clash 等代理软件能通过防火墙。
默认用户
wsl2设置默认用户登录:
1 | arch config --default-user root |
安装ohmyzsh
1 | sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" |
打开.zshrc
,找到ZSH_THEME="robbyrussell"
,把‘’里的改成自己喜欢的图像,比如我喜欢的lambda
卸载oh-my-zsh:
1 | uninstall_oh_my_zsh |
安装yay
我WSL2 用的是别人打包好的Arch 。默认的是pacman 的软件管理器,但是如果想从aur中下载软件的话,还是得用上yay。
1 | sudo pacman -S git go base-devel |
而这样运行会遇到go: github.com/Jguer/aur@v1.0.0: Get "https://proxy.golang.org/github.com/%21jguer/aur/@v/v1.0.0.mod": dial tcp 142.251.43.17:443: i/o timeout
的问题,网上搜索出来的解决方案是给Go 配置goproxy。
1 | go env -w GO111MODULE=on |
而在终端输入这些后,goproxy是改过来了,但是makepkg -si
依旧失败。
而输入:
1 | export GO111MODULE=on |
则可以继续安装yay了。
WSL迁移
关闭正在运行的WSL
1 | wsl -t <DistributionName> |
比如Arch,则为:
1 | wsl -t Arch |
以下皆用Arch代表
1 | wsl --export Arch D:\arch.tar |
表示将Arch导出到D:\arch.tar
。
wsl --import <DistributionName> <InstallLocation> <FileName>
表示将导出的wsl文件导入到
1 | wsl --import Arch D:/Arch/ D:/arch.tar |
表示将导出的D:\arch.tar
,导入到D:/Arch/
文件夹中。
等待几分钟后,即可继续使用Arch-wsl了。此时可以在D:/Arch/文件夹中看到D:\Arch\ext4.vhdx
文件了。