WSL使用记录

# 命令

官方文档 (opens new window)

安装默认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
1
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
1
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'
1
2
3

需要代理的时候输入 setss 即可设置代理,取消代理就 unsetss ,或者新开一个窗口。

# 开启SSH

切换到root用户,并编辑配置文件:

vim /etc/ssh/sshd_config
1

修改以下四个位置

Port = 22 # 去掉前面的#号
ListenAddress 0.0.0.0		#去掉前面的#号
PasswordAuthentication yes # 将 no 改为 yes 表示使用帐号密码方式登录
PermitRootLogin yes # 允许root用户登录
1
2
3
4

重启sshd服务

dpkg-reconfigure openssh-server		#用于安装RSA_KEY
sudo service ssh restart 		#重启SSH服务
1
2

# 一些问题

# wsl ping 不通主机

需要设置主机防火墙规则,详情参考 WSL 的 Issue (opens new window) New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow

# Clash开启TUN模式,wsl无法联网

  1. 调整 WSL 网络配置:打开 WSL 终端并执行以下命令来编辑 WSL 的网络配置文件 /etc/wsl.conf

    如果文件不存在,创建一个新的文件。添加以下内容:

    [network]
    generateResolvConf = false
    
    1
    2

    这将阻止 WSL 自动生成 DNS 配置文件并使用系统级 DNS 配置。

  2. 设置 WSL DNS 配置:在 WSL 终端中,编辑 /etc/resolv.conf 文件,并确保其内容与 Windows 主机系统的 DNS 设置相匹配,以确保正确的 DNS 解析。

    例如,如果在 Windows 主机上的 DNS 服务器是 "192.168.1.1",那么你的 /etc/resolv.conf 文件应该类似于:

    nameserver 192.168.1.1
    
    1
  3. 检查 Clash 配置:确保 Clash 客户端的 TUN 模式配置正确,并且上游代理等相关设置正确。

  4. 检查防火墙和安全软件:确保 Windows 防火墙、杀毒软件或其他安全软件没有阻止 WSL 访问互联网。尝试临时禁用防火墙或者按照 Clash 和 WSL 的网络需求进行必要的防火墙和安全软件配置。

  5. 重新启动网络服务:在 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
1
2
3
4

参考链接 (opens new window)

上次更新: 2023/08/11, 16:37:29
最近更新
01
go-admin-ui项目仿写练手1-登录页
06-29
02
maven依赖问题
06-17
03
JVM相关命令
02-21
更多文章>