一、在mac跳到wsl环境
1 2 3 4 5 6
| ssh Administrator@192.168.0.115
wsl
ssh tensor@wslhost
|
二、网络配置:局域网可访问WSL端口
以实现 在局域网其它电脑访问 wsl的服务.
1. 端口转发
方法:在win上添加 端口转发. 相关命令如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 1. 查看端口转发规则 netsh interface portproxy show all
# 2. 添加端口转换规则 netsh interface portproxy add v4tov4 listenport=8000 listenaddress=0.0.0.0 connectport=8081 connectaddress=172.24.11.211 # - 说明: 此命令可更新,所以如果ip变更,则更改后可直接执行
# 3. 删除端口转换规则 netsh interface portproxy delete v4tov4 listenport=4000 listenaddress=0.0.0.0
# 4. 看设定的端口有没有被监听,或者使用nc,telnet,curl等命令看对应的wsl端口是否开启 netstat -anp tcp
|
2. 防火墙配置
1 2 3 4 5 6 7 8 9 10 11
| 1. 查看 防火墙是否启用 netsh advfirewall show allprofiles state 2. 查看现有的防火墙规则(注意双引号) netsh advfirewall firewall show rule name=all | findstr "8000"
3. (重点)添加新的防火墙规则,例如允许特定端口: netsh advfirewall firewall add rule name="Port 8000" dir=in action=allow protocol=TCP localport=8000
4. 删除防火墙规则,例如删除上面创建的规则(以规则名称为key) netsh advfirewall firewall delete rule name="Port 8000"
|
3. 设置静态IP
编辑 /etc/wsl.conf ,添加:
1 2
| [network] generateResolvConf = false
|
三、在Windows中动态获取WSL2中的IP地址.
是在window通过wslhost(hostname) 访问wsl的方式. 可自动更新hostname
1 2 3
| ipaddr=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}') sed -i '/wslhost/d' /mnt/c/Windows/System32/drivers/etc/hosts echo "$ipaddr wslhost" >> /mnt/c/Windows/System32/drivers/etc/hosts
|
在 /etc/profile 中配置以上信息.
注意win中hosts文件权限问题.
四、wsl 磁盘迁移
WSL2迁移虚拟磁盘文件ext4.vhdx
「备份」
1 2 3 4 5 6 7 8
| wsl -l -v
wsl --export Ubuntu-20.04 E:\Ubuntu_bak.tar
wsl --unregister Ubuntu-20.04
|
「恢复」
从已经备份的其它文件恢复 wsl实例
1 2 3 4
| wsl --import Ubuntu-20.04 E:\WslUbuntu\ext4.vhdx F:\backup\wsl-ubuntu.tar
|
「恢复后的设置」
1 2
| ubuntu1804 config --default-user tensor
|
五、wsl磁盘空间清理
磁盘压缩。 尽量注意使用空间, 压缩有些不太可靠。
背景:用着用着 wsl的磁盘空间满了,打不开… 所以使用特定的方法对磁盘压缩,之后删除无用的文件。
清理WSL2的磁盘占用
1 2 3 4 5 6 7 8
| diskpart.exe
select vdisk file="E:\WslUbuntu\ext4.vhdx"
compact vdisk
|
六、刚安装的wsl如何更改系统文件路径
如果想使用更大的文件磁盘,则需要将wsl系统文件从C盘移动到其它盘,避免C盘占用过大。
首先,win系统默认安装wsl,其系统文件位于:
C:\Users\你的用户名\AppData\Local\Packages\发行版包名\LocalState\ext4.vhdx
因此,只要将这个文件移动过去,重新注册即可。
1 2 3 4 5 6 7 8 9 10 11 12
| wsl --shutdown
wsl --export Ubuntu-20.04 E:\Ubuntu_bak.tar
wsl --unregister Ubuntu-20.04
wsl --import Ubuntu-20.04 E:\WslUbuntu\ext4.vhdx E:\Ubuntu_bak.tar
|
七、修改进入wsl的默认用户
八、wsl安装docker
1 2 3 4 5 6 7 8
| sudo apt update sudo apt install docker.io docker --version
sudo usermod -aG docker $USER
sudo dockerd 2>&1 &
|