本篇文章会介绍win10中wsl2的安装和使用以及遇到的常见问题好比如何固定wsl2地址等问题的总结。html
wsl是适用于 Linux 的 Windows 子系统,安装指南:适用于 Linux 的 Windows 子系统安装指南 (Windows 10)mysql
简单来讲,之前想在windows中使用linux,须要安装vmware虚拟机,如今则不比这么麻烦了,直接安装linux子系统,秒开。linux
按照官方文档安装好wsl2以后,再顺便安装下Windows 终端,一块儿使用,效果更佳。redis
安装好wsl2后,直接在菜单中找到对应的wsl终端直接打开便可,第一次用的时候让你初始化一个用户名和密码,根据提示几秒钟便可初始化完成。sql
安装好以后就能够愉快的玩耍了,貌似一切都ok。。。慢着,用久了,你会发现一些问题:docker
好比我使用的ubuntu20,安装和更新软件都特别慢,由于毕竟国内,这时候就要使用国内镜像进行加速[ 0 ]。ubuntu
第一步:备份源文件windows
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
第二步:编辑/etc/apt/sources.list文件bash
在文件最前面添加如下条目,以后保存便可生效(以阿里云镜像为例,操做前请作好相应备份):ssh
vi /etc/apt/sources.list deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
通常来讲这不是什么大问题,可是别忘了咱们要wsl是干啥的,咱们老是但愿可以在windows中访问wsl中的一些服务,好比安装的mysql、redis等,若是wsl的ip地址老是变化,岂不是每次开机都要在windows中手动设置一次ip地址[ 1 ]?固定ip地址的方法比较简单,直接运行如下脚本便可,我这里安装了docker,有些小伙伴没安装docker则须要修改下脚本才行。
@echo off setlocal enabledelayedexpansion wsl -u root service docker start | findstr "Starting Docker" > nul if !errorlevel! equ 0 ( echo docker start success :: set wsl2 ip wsl -u root ip addr | findstr "192.168.169.2" > nul if !errorlevel! equ 0 ( echo wsl ip has set ) else ( wsl -u root ip addr add 192.168.169.2/28 broadcast 192.168.169.15 dev eth0 label eth0:1 echo set wsl ip success: 192.168.169.2 ) :: set windows ip ipconfig | findstr "192.168.169.1" > nul if !errorlevel! equ 0 ( echo windows ip has set ) else ( netsh interface ip add address "vEthernet (WSL)" 192.168.169.1 255.255.255.240 echo set windows ip success: 192.168.169.1 ) ) pause
将它保存到文件,好比划分虚拟局域网&启动docker.bat
,而后将其放到windows启动目录下[ 2 ]:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
以后,每次电脑启动以后就会自动执行该脚本了
首先,wsl中已经安装的ssh是不完整的或者有问题的,因此不管你怎么改都不会生效,甚至ssh服务都没法正常启动,正确的作法是先卸载ssh再从新安装。
sudo apt-get purge openssh-server # purge 是卸载并删除配置文件 sudo apt-get install openssh-server
而后修改配置文件/etc/ssh/sshd_config,新增以下配置
PermitRootLogin yes
修改PasswordAuthentication
配置项为yes,修改Port
端口号为2222
(22端口比较特殊,windows可能会使用到)
使用命令 service sshd restart
重启ssh服务
作完以上修改以后,解决了第一个问题,即如何在windows使用工具ssh链接wsl2, 接下来要作的事情是如何在局域网中远程登录wsl2。
首先分析下为啥局域网其余机器没法链接wsl2
- 第一个缘由,windows防火墙没关闭或者没有设置入站规则
- 第二个缘由,也是最本质的缘由,wsl2的地址是虚拟地址,并不是是局域网中的物理地址
那怎么解决呢?
interface portproxy add v4tov4 listenport=【宿主机windows平台监听端口】 listenaddress=0.0.0.0 connectport=【wsl2平台监听端口】 connectaddress=【wsl2平台ip】
好比,我这里使用以下命令配置了win10 IpV4协议端口号2222转发到地址为192.168.169.2的wsl端口号2222
netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=2222 connectaddress=192.168.169.2
netsh interface portproxy show all
netsh interface portproxy delete v4tov4 listenport=9696 listenaddress=0.0.0.0
完成以上四步设置,便可在局域网使用securityCRT工具或者putty远程链接wsl了。
正常来讲,应当上docker官网按照安装文档来安装,可是你会发现及时你更新了源,安装速度仍然特别慢,高速打开方式[ 3 ]为
sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
同理,正常来讲,docker-compose的安装方式应该遵循官方网站的指导 https://docs.docker.com/compose/install/ ,可是会很是慢,仍是要另辟蹊径[ 4 ]
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
最后,欢迎关注个人私有博客~ https://blog.kdyzm.cn/