WSL2:开发环境安装

写在前面

一、安装WSL2

  • 以管理员身份运行CMD,执行以下命令即可WSL和Linux的默认Ubuntu发行版:
wsl --install
  • 等待安装完成后,重启计算机即可,输入以下命令可以查看安装的WSL版本信息;

查看版本

二、初始化WSL2上的Ubuntu

  • 打开开始菜单,点击Ubuntu,即可调出Ubuntu系统的终端(就像一个远程服务器一样!):

启动Ubuntu终端

  • 设置用户名和密码如下:
    设置用户名和密码

  • 设置完成后,在CMD中执行以下命令可以查看已经安装的Lunix发行版本:

查看Linux版本

  • 注意重启电脑后,需要打开一次Ubuntu终端以启动Ubuntu;
  • 其他的一些错误解决如下:

1. Error: 0x80040326 Error code: Wsl/Service/0x80040326

三、安装跨平台的终端

  • 这个主要是因为CMD只能执行Windows的命令,而WSL对应的Linux发行版的命令需要用别的终端执行,就会显得比较混乱,因此可以下载Windows终端软件,对这些不同的终端作统一的管理(界面也好看一点);
  • Windows终端的下载地址:https://apps.microsoft.com/store/detail/windows-terminal-preview/9N8G5RFZ9XK3?hl=zh-cn&gl=cn
  • 安装后,可以在Windows终端中切换不同的控制台终端,比如CMD、PowerShell和Ubuntu等:

Windows终端

  • 另外,将PowerShell升级到Powershell7以上,因为Windows自带的版本比较低:

升级PowerShell

四、安装远程服务器的必要工具

  • 从这一步开始,配置的过程就和用虚拟机或者真正的远程服务器类似了;
  • 一些对应关系如下:
    • 远程服务器:WSL下的Ubuntu;
    • 远程路由器:Windows;
    • 本地开发/客户端:Windows;

1. 替换源

  • 执行以下命令打开源配置文件:
sudo vim /etc/apt/sources.list
  • 在里面增加源连接如下:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

2. 安装必要工具

  • 执行以下命令安装必要工具:
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget git ca-certificates build-essential net-tools -y
sudo apt install g++ gdb make ninja-build rsync zip -y

五、配置远程服务器的SSH

1. 在服务器上安装SSH服务

  • 在Ubuntu上执行以下命令以重新安装SSH服务:
# 卸载原有的ssh
sudo apt remove openssh-server
# 重新安装ssh
sudo apt install openssh-server -y
# 启动ssh服务
sudo service ssh start
# 查看ssh服务状态
sudo service ssh status
# 设置ssh开机自启动
sudo systemctl enable ssh
  • 查看服务器上的ip地址:
    查看ip

  • 然后就可以在本地通过以下命令连接服务器了:

ssh连接

  • 注意重启服务器之后还需要重启SSH服务,这样本地才能通过SSH远程连接;

2. 固定服务器的ip地址

  • 这里用到的是端口转发技术:

    • 端口转发:将路由器的某个端口和内网的某个ip对应起来,外部的消息就可以由该端口转发给内网的ip,只能单向转发;
    • 端口映射:将路由器的某个端口和内网的某个ip映射起来,外部的消息可以由该端口发给内网的ip,内网的ip也可以经该端口向外界发送消息,是双向映射;
  • 服务器中打开ssh配置文件:

sudo vim /etc/ssh/sshd_config
  • 设置端口转发,转发的端口是2000:

端口转发

  • 这里相当于是将本地电脑(充当服务器)的端口2000和WSL(充当服务器)的ssh对应起来,访问服务器的端口号2000就能转发到WSL的ssh服务;

  • 执行以下命令使服务器上的修改生效:

# 打开防火墙的2000端口
sudo ufw allow 2000
# 重启ssh服务
sudo service ssh restart
# 重启防火墙
sudo ufw reload
  • 以管理员身份在PowerShell配置端口转换:
netsh interface portproxy add v4tov4 listenport=2100 listenaddress=0.0.0.0 connectport=2000 connectaddress=localhost

配置端口转换

  • 这里相当于是将本地电脑(充当路由器)的端口2100监听到的消息转发到本地电脑(充当服务器)的端口2000上;
  • 用以下命令查看本地电脑的2100端口的监听:
netstat -ano | findstr :2100

打开端口监听

  • 如果执行上述命令没有返回结果,则还需要在服务中启动IP Helper服务:

打开服务

  • 最后,就可以通过访问本地电脑(路由器)的2100端口访问服务器的ssh服务:

访问ssh

六、使用VS Code管理远程文件系统

1. 安装插件

  • 在VS Code的扩展中搜索安装remote development插件:

安装插件

  • 如果安装失败,记得检查VS Code是否已升级到最新版本;

2. 新增SSH配置

  • 安装后,会在左边栏出现远程资源管理器
  • 打开远程资源管理器,选择远程,点击下方的SSH栏右方的“+”按钮;
  • 在弹出的命令行中输入SSH连接命令;

输入ssh命令

  • 选择要更新的配置文件,这里选第一个;
    选择更新的配置文件
  • 这样就在配置文件中新增了一个SSH远程主机连接配置;

3. 连接远程主机

  • 点击左下角的绿色按钮,打开远程窗口:

打开远程窗口

  • 在弹出的选项中选择Connect to Host

选择连接到主机

  • 选择刚刚新建的远程主机地址:

选择远程主机配置

  • 当然这里也可以直接输入user@host格式的远程主机地址;
  • 在弹出窗口的上方命令行中输入密码,即可连接远程主机的文件系统:

输入密码

  • 选择Open Folder,在上方命令行中选择要打开的文件夹(通常选择根目录):
    选择打开的文件夹

  • 然后,就可以在左方看到该文件夹下的所有文件,而且可以很方便地查看和编辑文件中的内容:

查看和编辑文件

七、使用VS进行远程开发

1. 安装所需的开发包

  • 控制面板->程序->程序和功能->卸载或更改程序中,找到安装的VS软件,右键更改调出VS安装器;

调出安装器

  • 勾选以下安装包安装即可;

勾选安装包

勾选安装包

2. 创建新项目

  • 安装完成后,创建一个Linux的C++项目:

选择项目

创建项目

3. 配置远程连接

  • 打开工具->选项,配置远程连接:

配置远程连接

连接到远程主机

  • 打开项目->xxx属性->常规->平台工具集,选择WSL2 GCC Toolset

4. 编写代码和运行程序

  • 新建一个.cpp文件,然后点击GDB调试程序,即可将源代码迁移至服务器并在服务器上编译该程序,最后在控制台中执行;
  • VS的Linux 控制台可以在调试->Linux控制台中调出;

运行程序

  • 然后在服务器的/projects路径下,能够找到创建的TinyWebserver项目,里面有源代码、可重定位目标文件.o以及可执行目标文件.out

服务器上的生成文件

5. 创建文件夹

  • 通过创建文件夹可以分类管理用于不同用途的代码文件;
  • 点击解决方案资源管理器面板的右上角的显示所有文件按钮,可以显示文件资源管理器中的目录结构;

显示所有文件

  • 然后右键添加就可以创建新的文件夹了;

猜你喜欢

转载自blog.csdn.net/weixin_43992162/article/details/129437692