win10新版wsl2的使用


本篇文章会介绍win10中wsl2的安装和使用以及遇到的常见问题比如如何固定wsl2地址等问题的总结。

一、wsl2简介

wsl是适用于 Linux 的 Windows 子系统,安装指南:适用于 Linux 的 Windows 子系统安装指南 (Windows 10)

简单来说,以前想在windows中使用linux,需要安装vmware虚拟机,现在则不比这么麻烦了,直接安装linux子系统,秒开。

二、使用wsl2

按照官方文档安装好wsl2之后,再顺便安装下Windows 终端,一起使用,效果更佳。

安装好wsl2后,直接在菜单中找到对应的wsl终端直接打开即可,第一次用的时候让你初始化一个用户名和密码,根据提示几秒钟即可初始化完成。

安装好之后就可以愉快的玩耍了,貌似一切都ok。。。慢着,用久了,你会发现一些问题:

1. 安装软件太慢了

比如我使用的ubuntu20,安装和更新软件都特别慢,因为毕竟国内,这时候就要使用国内镜像进行加速[ 0 ]

第一步:备份源文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

第二步:编辑/etc/apt/sources.list文件

在文件最前面添加以下条目,之后保存即可生效(以阿里云镜像为例,操作前请做好相应备份):

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

2. wsl2地址每次重新开机之后都会发生变化

一般来说这不是什么大问题,但是别忘了我们要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

之后,每次电脑启动之后就会自动执行该脚本了

3.windows本地ssh登陆wsl2

首先,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。

4.局域网远程登陆wsl2

首先分析下为啥局域网其他机器无法连接wsl2

  • 第一个原因,windows防火墙没关闭或者没有设置入站规则
  • 第二个原因,也是最本质的原因,wsl2的地址是虚拟地址,并非是局域网中的物理地址

那怎么解决呢?

  1. 关闭防火墙或者设置入站规则
    其中设置入站规则是推荐的方式,网上教程较多,不赘述。
  2. 设置端口转发,让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
  1. 查看端口转发
netsh interface portproxy show all
  1. 删除端口转发
netsh interface portproxy delete v4tov4 listenport=9696 listenaddress=0.0.0.0

完成以上四步设置,即可在局域网使用securityCRT工具或者putty远程连接wsl了。

三、在wsl中使用docker

1.安装docker

正常来说,应当上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

2.安装docker-compose

同理,正常来说,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/

### Win10 WSL 使用教程:安装与配置 #### 一、检查系统版本 为了确保能够成功安装WSL,需确认当前操作系统满足最低要求。Windows 10 版本应为2004或更高版本(包括Windows 11),这是运行WSL的前提条件[^1]。 可以通过以下方法验证系统的具体版本号: 1. 打开“设置”。 2. 转至“系统” -> “关于”,查找“OS Build”。 如果版本低于2004,则需要升级到支持的版本后再继续操作。 #### 二、启用WSL功能 在符合条件的操作环境下,可以采用两种方式来完成初始安装: - **快速安装法** 对于已达到指定标准的Windows环境(即Win102004及以上或Win11),可通过PowerShell执行单条命令实现自动化部署过程:`wsl --install`[^2]。此指令会自动激活所需的Linux子系统以及虚拟机平台服务,并下载默认发行版Ubuntu。 - **手动安装流程** 当遇到特殊情况无法利用上述简便途径时,可按照更详细的步骤逐一处理: - 启动PowerShell作为管理员权限角色; - 输入 `dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart` 来开启WSL特性; - 接着通过 `dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart` 命令打开虚拟机器平台选项; - 配置完成后重启计算机以使更改生效; 随后,在微软商店搜索并获取期望使用Linux分布版本,比如推荐选用较新稳定性的 Ubuntu-22.04 LTS 发行包[^4]。下载完毕后双击启动该应用程序即可进入初始化界面创建账户名及其对应密码。 #### 三、优化体验——剪贴板共享 一旦基础架构搭建结束,用户便可享受跨平台无缝协作带来的便利之处之一便是剪贴板互访能力。这意味着可以在宿主机上的任意位置复制文字资料,再轻松粘贴于WSL终端之中进行编辑或其他用途而无需额外工具辅助[^3]。 ```bash echo "Hello from WSL!" | clip.exe ``` 以上实例展示了怎样借助内置实用程序将来自WSL的信息传递回Windows原生剪切板里去分享给其他软件使用。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值