WSL使用记录
# 命令
安装默认Linux
版本
# 查看Linux发行版本
wsl --list --online
# 安装默认版本 Ubuntu
wsl --install
# 安装特定的 Linux 发行版
wsl --install --distribution <Distribution Name>
# 列出已安装的 Linux 发行版
wsl --list --verbose
# 将 WSL 版本设置为 1 或 2
wsl --set-version <distribution name> <versionNumber>
# 设置默认 WSL 版本
wsl --set-default-version <Version>
# 设置默认 Linux 发行版
wsl --set-default <Distribution Name>
# 更新 WSL
wsl --update
# 检查 WSL 状态
wsl --status
# 关闭
wsl --shutdown
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 迁移
# 先终止正在运行的wsl
wsl --shutdown
# 将需要迁移的Linux,进行导出
wsl --export Ubuntu D:/export.tar
# 导出完成之后,就需要将原有的分发进行卸载
wsl --unregister Ubuntu
# 然后将导出的文件放到需要保存的地方,进行导入即可
wsl --import Ubuntu D:\export\ D:\export.tar --version 2
2
3
4
5
6
7
8
# 配置代理
配置 WSL2 使用 Windows 代理上网 (opens new window)
export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')
alias setss='export https_proxy="http://${hostip}:7890";export http_proxy="http://${hostip}:7890";export all_proxy="socks5://${hostip}:7890";'
alias unsetss='unset all_proxy'
2
3
需要代理的时候输入 setss
即可设置代理,取消代理就 unsetss
,或者新开一个窗口。
# 开启SSH
切换到root
用户,并编辑配置文件:
vim /etc/ssh/sshd_config
修改以下四个位置
Port = 22 # 去掉前面的#号
ListenAddress 0.0.0.0 #去掉前面的#号
PasswordAuthentication yes # 将 no 改为 yes 表示使用帐号密码方式登录
PermitRootLogin yes # 允许root用户登录
2
3
4
重启sshd
服务
dpkg-reconfigure openssh-server #用于安装RSA_KEY
sudo service ssh restart #重启SSH服务
2
# 一些问题
# wsl ping 不通主机
需要设置主机防火墙规则,详情参考 WSL 的 Issue (opens new window) New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
# Clash开启TUN模式,wsl无法联网
调整 WSL 网络配置:打开 WSL 终端并执行以下命令来编辑 WSL 的网络配置文件
/etc/wsl.conf
:如果文件不存在,创建一个新的文件。添加以下内容:
[network] generateResolvConf = false
1
2这将阻止 WSL 自动生成 DNS 配置文件并使用系统级 DNS 配置。
设置 WSL DNS 配置:在 WSL 终端中,编辑
/etc/resolv.conf
文件,并确保其内容与 Windows 主机系统的 DNS 设置相匹配,以确保正确的 DNS 解析。例如,如果在 Windows 主机上的 DNS 服务器是 "192.168.1.1",那么你的 /etc/resolv.conf 文件应该类似于:
nameserver 192.168.1.1
1检查 Clash 配置:确保 Clash 客户端的 TUN 模式配置正确,并且上游代理等相关设置正确。
检查防火墙和安全软件:确保 Windows 防火墙、杀毒软件或其他安全软件没有阻止 WSL 访问互联网。尝试临时禁用防火墙或者按照 Clash 和 WSL 的网络需求进行必要的防火墙和安全软件配置。
重新启动网络服务:在 WSL 终端中,尝试重新启动网络服务以应用新的配置:
service networking restart
1
# CLash 开启TUN模式后,git无法无法使用 git clone/push,kex ssh 密钥错误
开启TUN模式后,clash接管全局的网络,但是clash不支持22端口,所以指定git使用443端口即可
编辑~/.ssh/config
文件,添加以下内容
Host github.com
Hostname ssh.github.com
Port 443
User git
2
3
4