WSL2配置
安装 WSL
Windows可以使用WSL(Windows Subsystem for Linux)来使用Linux环境
- 打开控制面板->程序

- 启动或关闭 Windows 功能

- 开启 "适用于 Linux 的 Windows 子系统" 和 "虚拟机平台" 选项

启用服务,重启电脑
- 键盘按下 Win + r 输入 cmd 后回车
wsl --install -d Ubuntu当然我们也可以选择其他操作系统,可以通过如下命令查看可用发行版列表
wsl --list --online
- 等待安装完毕之后,输入用户名 密码就可以进入Linux系统了,这个操作系统的名字是 Ubuntu
如果关闭窗口后再想重新进入这个系统,只需要在命令行中输入 wsl 或者这个操作系统的名字就可以直接进入
当然也支持安装运行多个操作系统,不过暂时没有这个必要
WSL 中使用gdb调试
- 检查系统中是否已经安装了gdb
gdb -v
- 如果没有安装,则使用命令行安装
sudo apt-get update sudo apt-get install build-essential gdb<details><summary>如果下载太慢了</summary>
考虑切换一个下载的源
vim /etc/apt/sources.list在文件最前面加入 / 删除整个文件重新创建一个新的文件并写入
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse保存退出,重新执行
</details>
- 查看WSL版本
wsl --list --verbose如果是WSL1的运行gdb会出现问题,升级到WSL2
回到Windows系统的命令行, 升级WSL系统
wsl --set-version Ubuntu 2
WSL 与 Windows文件互传
WSL正常情况下会出现在文件资源管理器,可以直接在 home 目录下找到当前安装的操作系统

如果安装之后没有找到, 可以通过其他方式
- win + r 输入
\wsl$
- 进入wsl的操作系统中,在终端中输入
explorer.exe .
我们可以直接打开两个文件夹,直接通过复制粘贴实现文件传输
除此之蛙wsl将windows中的文件挂载到 /mnt 虚拟磁盘下,默认的登录路径也是这里,我们可以直接通过mnt切换盘符及路径,比如:
kamilu@LZX:/mnt/c/Users/luzhi$ cd /mnt/d
kamilu@LZX:/mnt/d$再利用 cp 或者 mv 命令就可以实现文件的传输了,笔者这里还是推荐第一种,比较直接
安装一个更加美观的 Terminal 终端
原生的命令行窗口并不好看,由于本实验可能需要大部分时间面对一个终端的显示,我们考虑选择使用一个更加美观漂亮的终端
在 terminal release 中下载最新版的安装包
注意区分 Win10/11版本,不要下错了
如果不清楚windows版本可以按下Win + r 输入 winver查看

下载后点击对应版本安装即可,接下来尝试再来按下 Win + r 输入cmd进入控制台吧,是不是好看多了?
WSL2代理配置
WSL2由于直接使用局域网与本机通信,可以直接使用Windows上的代理端口,这里假定读者已安装过 Windows 下的 V2ray
修改V2ray默认选项
设置->参数设置->允许来自局域网的连接

查看代理端口

http的系统代理走局域网的10811端口
WSL2 的网络和 Windows 网络通过局域网互联,这里只需要选择局域网的端口即可,不同的 v2rayn 版本使用的端口不一定相同,选择局域网的

例如这里选择 10810
防火墙信任
防火墙例外信任(重要,容易被忽略), 这一步是最重要的一步, 也是最坑的一步, 需要在Win10防火墙中允许V2ray进行公用和专用网络的访问! 只要设置这个就可以了, 不需要调整过其他设置!

修改.bashrc文件
打开.bashrc
vim ~/.bashrc在文件结尾加入
export host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
export http_proxy="http://$host_ip:10811"
export https_proxy="http://$host_ip:10811":wq保存退出,激活环境
source ~/.bashrc测试
wget www.google.com
wget https://raw.githubusercontent.com/luzhixing12345/MyScripts/main/main.py得到两个文件即为成功
直连域名配置
正常使用v2ray会出现访问一些服务器的域名无法访问,但是直连可以访问.这时候需要 设置-路由设置-直连的Domain/IP
SSH 失败
之前有一段时间突然发现 git 一直push不上去, 也pull不下来
然后使用 ssh -vT git@github.com 查看发现原来是 SSH 的问题, 一直卡在下面的这个地方
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY后来查阅了一些资料, 在 Github cloning error in wsl2 (driver MTU) 得到了解决
总结一下就是先下载网卡驱动
正常来说你安装完网卡驱动应该就可以解决了, 重启一下, 要不就等一下
如果仍然有问题: 用 ip addr | grep mtu 看下 eth0 的 mtu
(base) kamilu@LZX:~$ ip addr | grep mtu
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
4: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000改成
sudo ifconfig eth0 mtu 1350或者
sudo ip link set eth0 mtu 1400NPM 失败
安装 npm 后使用提示: /usr/bin/env: 'bash\r': No such file or directory
相关问题及解决办法见: After installing npm on WSL
sudo apt install nodejs npm修改 /etc/wsl.conf
sudo vim /etc/wsl.conf复制下面的内容
[interop]
appendWindowsPath = false重启
wsl --shutdown
wslGUI 界面
WSL2 中执行
sudo apt install xfce4Windows 中执行, 找到下面 WSL 对应的 IP 地址
ipconfig
在 ~/.bashrc 中添加, 将 IP 地址替换为你的
export DISPLAY=172.19.64.1:0下载 sourceforge vcxsrv, 完成后点击 xlaunch.exe 启动, 选择 one large window, 第二个不动, 最后参数添加 -ac

启动图形化界面, 然后在 WSL2 中运行 xfce4
sudo startxfce4

修改默认登录用户
WSL2 切换根目录位置
默认安装路径在 C 盘, 但是用久了会变大, 可以考虑移动目录到其他位置
查看虚拟机
wsl -l -v假设名字为 Ubuntu
wsl --shutdown导出 Ubuntu 保存为一个镜像, 这一步会比较慢, 相当于打一个快照以便后期恢复
wsl --export Ubuntu H:\wsl2-backup\WSL2Ubuntu.bak注销原先用户
wsl --unregister Ubuntu导入到一个新位置(F)
wsl --import Ubuntu F:\wsl2\ H:\wsl2-backup\WSL2Ubuntu.bak --version 2导入成功后可以再次查看一下
wsl -l -v如果不在第一个默认启动位置可以修改默认启动为 Ubuntu
wsl --set-default Ubuntu默认使用 wsl 登录会以 root 用户登录, 修改为之前的用户名
Ubuntu config --default-user kamilu修改内存大小
默认的 wsl2 占用的内存是主机的一半, 如果需要启用全部内存, 编辑 .wslconfig, 设置 memory 为全部内存即可
[wsl2]
memory=16GB