如果没有特别标明的都是表示WSL2
windows目录没有挂载
code
或者explorer.exe .
的一些命令无法使用时,使用以下的命令来关闭WSL
然后再重新启动即可。
wsl --shutdown
宿主机访问 WSL
文件
win+r
然后输入 \\wsl$
,或者直接在资源管理器地址栏中输入 \\wsl$
或者直接把 WSL
挂载到宿主机
# cmd
net use x: \\wsl$\Ubuntu-20.04
找到WSL的IP
局域网访问
netsh interface portproxy add v4tov4 listenport=3022 listenaddress=* connectaddress=ubuntu2004.wsl connectport=3022
netsh interface portproxy delete v4tov4 listenport=【宿主机windows平台监听端口】 listenaddress=0.0.0.0
netsh interface portproxy show all
netsh interface portproxy add v4tov4 listenport=22 connectaddress=127.0.0.1 listenaddress=* protocol=tcp
在WSL2中自动配置Windows 的IP地址
!/bin/sh
export WINIP=$(cat /etc/resolv.conf | grep 'nameserver' | cut -f 2 -d ' ')
export WSLIP=$(ip addr show eth0 | grep 'inet ' | cut -f 6 -d ' ' | cut -f 1 -d '/')
echo WINIP $WINIP
echo WSLIP $WSLIP
echo <Your password> | sudo -S sed -i "/winip/c $WINIP\twinip" /etc/hosts
echo <Your password> | sudo -S sed -i "/socks5/c socks5\t$WINIP 1080" /etc/proxychains.conf
如果想要在Windows侧设置WSL2的IP地址,有两种方式
1、从WSL2侧给windows设置wsl2的IP地址
2、在windows侧给windows设置wsl2的ip地址
第一种的方式的原理就是在wsl2通过xxx,来设置windows的/host
第二种方式的原理是通过xxx.wsl2host来设置windows的host
vim "+:%s/^.*winip/$WINIP\t\twinip/g" "+:%s/^.*wslip/$WSLIP\t\twslip/g" '+:wq' -E /mnt/c/Windows/System32/drivers/etc/hosts
需要 Windows 设置可写入,右键 host 文件,属性-安全-高级,把 Windows 登录用户给予“完全控制”权限即可
WSL的参数配置
在用户目录下创建 .wslconfig
文件
[wsl2]
memory=2GB
processors=4
swap=512MB
在WSL里使用Windows的资源管理打开WSL的文件夹
可以使用 explorer.exe .
打开当前文件夹,但是命令有点长,我们使用 alias
来设置一个短一点的命令:alias er=explorer.exe
,之后只要使用 er .
就可以使用 Windows 的资源管理器来打开当前的文件夹了。