如何在WSL2下搭建开发环境

这篇文章主要介绍“如何在WSL2下搭建开发环境”,在日常操作中,相信很多人在如何在WSL2下搭建开发环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在WSL2下搭建开发环境”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

10年的南开网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整南开建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“南开网站设计”,“南开网站推广”以来,每个客户项目都认真落实执行。

  • 1. 什么是WSL?

  • 2. 如何安装?

  • 3.如何连接WSL进行远程开发?

  • 4. 关于文件路径的对应

  • 5. 文件夹的绿光把我的眼睛闪瞎了怎么办?

  • 6. cmd太丑了,影响心情怎么办?

  • 7. WSL2 如何安装Docker

  • 8. 其它人如何访问我的WSL2上的服务

  • 9. 如何设置开机自启服务

  • 10. 固定WSL2 IP

  • 参考

1. 什么是WSL?

微软开发的windows下的Linux子系统。对Ubuntu20的兼容效果非常好,可以满足日常开发需求。 目前有两个版本:

  • WSL1:与主机共用一个网卡

  • WSL2:使用单独的虚拟网卡,与主机组成局域网。WSL2更适合开发,也是本文的主题

2. 如何安装?

官方安装文档传送门

懒得看快速安装步骤:

  1. 鼠标右键Windows图标,使用管理员打开Powershell

如何在WSL2下搭建开发环境

  1. 执行以下命令

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 下载安装Linux内核更新包

下载地址: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

这一步如果提示安装失败,重启电脑再安装即可

  1. Powershell执行一下命令,设置默认版版本WSL2

wsl --set-default-version 2

如果此处找不到wsl命令,先重启,然后重新安装内核更新包

  1. 在微软应用商店安装Ubuntu

访问不了商店,或者下载过慢的。可下载 离线安装包 进行安装

安装完成之后,直接通过开始菜单打开Ubuntu,或使用cmd输入Ubuntu,等待安装完成,配置用户名和密码即可。

小知识:如何下载微软商店应用离线安装包?

进入网址:https://www.microsoft.com/zh-cn/windows/

搜索需要安装的应用,比如Ubuntu. 然后点击搜索结果,进入应用获取界面。此时不要点击获取,否则还是会进入应用上带你进行下载。将页面链接复制下来,删除'#'号或'?'号后面的部分。例如Ubuntu的获取界面链接为

https://www.microsoft.com/zh-cn/p/ubuntu/9nblggh5msv6#activetab=pivot:overviewtab

则保留

https://www.microsoft.com/zh-cn/p/ubuntu/9nblggh5msv6

然后进入网址 https://store.rg-adguard.net/ ,填写并搜索刚才保留的链接,点击时间戳最新的搜索结果即可下载

如何在WSL2下搭建开发环境

  1. 最后,为了让WSL可以访问主机,需要新增一条防火墙策略。在PowerShell中执行

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow

3.如何连接WSL进行远程开发?

  1. VSCode 中直接安装Remote-WSL插件,即可开发

  2. 其他IDE如何连接? 其他IDE有的可以原生支持WSL2,有的不支持。不一定原生支持WSL2,可以通过开启ssh服务,实现远程开发。网上教程很多,大家直接参考就行,此处不再赘述。例如: https://cloud.tencent.com/developer/article/1538305

注意:部分IDE支持WSL1,其原理与WSL2相差甚远,无法兼容。还是需要使用SSH

SSH安装过程中,如果apt下载过慢,可以先更换为国内源,然后执行apt update再下载。例如中科大源,可参考 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

WSL2 systemctl 不可用,无法直接开机启动SSH服务,请参考本文第9节设置

4. 关于文件路径的对应

window盘符在WSL中的路径为/mnt

$ pwd
/mnt
$ ls
c  d  e

可使用以下命令创建软连接到家目录,方便使用 ln -s /mnt/盘符/路径 目标路径

5. 文件夹的绿光把我的眼睛闪瞎了怎么办?

由于Windows的文件权限控制方式与Linux不一样。WSL中查看Windows文件,权限位默认为777,shell中会给文件夹加上恶心的绿光。解决方案:

cd    #保证在 /home/用户名  目录下
dircolors -p > .dircolors    #如果已经存在 .dircolors文件,则会出错,应把 .dircolors 文件先移除,执行 rm .dircolors
vim .dircolors    #编辑 .dircolors 文件

找到 OTHER_WRITABLE ,大概在 60 行左右,把该行的 42 改为 49 即可

6. cmd太丑了,影响心情怎么办?

应用商店安装Windows Terminal。同样地也可以下载离线安装包 进行安装

也可以开启ssh服务后,使用xshell等远程终端工具连接

7. WSL2 如何安装Docker

Ubuntu发行版本可以直接安装docker,但注意不能配置cgroup为systemd。建议直接安装Windows版Docker,可以原生支持WSL2,兼容性更好。 具体参考: https://docs.docker.com/docker-for-windows/wsl/ 。此处不再赘述

8. 其它人如何访问我的WSL2上的服务

在Windows宿主机上安装nginx进行反向代理 下载地址: https://nginx.org/en/download.html 下载完成后,直接解压,修改conf/nginx.conf文件,配置代理

http{
    ...
    server {
        listen       80;    #监听端口
        server_name  localhost;
        
        location / {
            # 关于如何使用固定ip,请查看本文第10节
            # 可以测试一下自己的版本支不支持
            proxy_pass http://wsl的ip:你的服务端口
            
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_http_version 1.1;
            proxy_buffering off;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }
    ...
}

修改完成后,启动nginx.exe即可。然后使用Windows IP + nginx设置的监听端口即可让其他人也访问你的WSL2中的服务了

9. 如何设置开机自启服务

参考 https://zhuanlan.zhihu.com/p/47733615 以SSH为例,先在WSL中创建/修改/etc/init.wsl

sudo cat <

然后在Windows中设置自启动。按Win+R,输入:shell:startup,回车后会打开文件管理器并进入启动脚本路径。创建启动脚本ubuntu.vbs,内容如下

Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d Ubuntu -u root /etc/init.wsl start", vbhide

保存退出,下次重启即可生效

10. 固定WSL2 IP

WSL2 IP默认是不固定的。有两种方式可以曲线救国。

一种是在设置开机任务,开机时设置WSL IP。但由于宿主Windows的IP也会改变,所以强行设置IP可能会遇到IP冲突的情况。

另外一种是使用连接WSL2是配置hosts。设置开机任务,开机时修改Windows的hosts文件,将指定的域名指向WSL2的IP。实际使用中直接使用域名连接WSL2即可。

这里使用第二个方案。GitHub上已经有人开发了相关工具,我们直接使用即可

Github传送门: https://github.com/shayne/go-wsl2-host

详细使用步骤:

先下载wsl2host.exe,移动到合适的安装目录(服务会引用改文件,请合理放置)

使用管理员权限打开cmd或powershell,cd到wsl2host.exe所在目录,执行

./wsl2host.exe install

然后输入Windows的登陆用户名和密码(注意不是PIN)。没有报错即完成安装。 打开服务检查是否生效 如何在WSL2下搭建开发环境

如何在WSL2下搭建开发环境

如果没有启动,右键点击启动即可。如果出现报错"登陆失败.....",说明配置有误。右键-属性-登陆,重新配置以下用户名密码,保存后重新启动即可。

如何在WSL2下搭建开发环境

打开C:\Windows\System32\drivers\etc\hosts文件查看,会发现新增的hosts规则

192.168.100.183 ubuntu.wsl    # managed by wsl2-host

cmd中 ping ubuntu.wsl 即可看到效果

参考

  • https://docs.microsoft.com/zh-cn/windows/wsl/install-win10

  • https://cloud.tencent.com/developer/article/1538305

  • https://docs.docker.com/docker-for-windows/wsl/

  • https://zhuanlan.zhihu.com/p/47733615

到此,关于“如何在WSL2下搭建开发环境”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


本文标题:如何在WSL2下搭建开发环境
文章网址:http://scyanting.com/article/jiphes.html