工具篇 | WSL使用入门教程以及基于WSL和natApp内网穿透实践 - 对比VMWare

news2024/11/19 17:41:23

介绍

在开发工具中,Windows Subsystem for Linux (WSL)VMWare 它们都可以实现了在 Windows 上运行 Linux系统。

文章概览

WSL Vs VMWare

我们将简单比对 WSL 和 VMWare,在性能、资源消耗等方面的差异,以协助您做出更加明确的选择。

深入探索 WSL使用细节与实践

本文主要研究 WSL 在现代开发中的应用和优势,并将深入探讨其对开发流程的影响。

💡 提示: 在选定工具时,要考虑好自身具体使用场景,例如资源、性能和开发便利性。工具本身是为人服务,没有优劣之分,只在于用的人。


2 WSL的安装和配置

2.1 准备工作

💡 必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。 如果使用的是更早的版本,请参阅手动安装页。

同时,需要启用虚拟化技术,可以在BIOS或UEFI设置中进行调整。在任务管理器中可以看是否开启了虚拟化技术,如图所示:
在这里插入图片描述

2.2 安装步骤

1. 开启Windows功能

打开“控制面板” > “程序” > “启用或关闭Windows功能”,勾选如下内容(我勾的可能多了,可以把Hyper-V去掉):
在这里插入图片描述

2. 设置WSL默认版本

打开 PowerShell 并以管理员身份运行。键入以下命令来设置WSL默认使用的版本:

wsl --set-default-version 2

3. 安装Linux系统

由于网络问题,我这里选择应用商店进行安装Linux系统。打开 Microsoft Store,并从中选择 Linux 系统进行安装,如 Ubuntu。
在这里插入图片描述

2.3 配置Linux系统

完成安装后,运行已经安装的 Linux 系统,首次运行将要求您创建一个用户帐户和密码。

2.4 完成与验证

至此,WSL 应该已经配置好并可以使用了。您可以通过在 PowerShell 中输入 wsl 命令来运行 Linux,也可以直接从开始菜单运行您安装的 Linux 发行版。
在这里插入图片描述

💡 提示: 要确保一切运行顺利,请务必按照指引一步步来进行操作,并确保系统满足所有的前提条件。


3 WSL与VMWare快速对比

维度WSLVMware
系统资源占用WSL的系统资源占用相对较低,因为它是直接在Windows内核上运行,无需模拟整个操作系统。VMware需要模拟整个操作系统,因此会占用更多的系统资源。
性能WSL的性能通常优于VMware,因为它直接在Windows内核上运行,无需通过任何虚拟化层。VMware的性能可能会受到虚拟化层的影响,尤其是在进行高强度计算时。
兼容性WSL与Windows的兼容性非常好,可以直接访问Windows文件系统,并在Windows和Linux之间无缝切换。但是,WSL可能无法完全支持所有Linux应用程序和功能。VMware可以运行任何Linux发行版,并完全支持所有Linux应用程序和功能。但是,它不能像WSL那样直接访问Windows文件系统,或在Windows和Linux之间无缝切换。
易用性WSL易于安装和使用,特别是对于那些主要使用Windows但偶尔需要访问Linux功能的用户来说。VMware的安装和配置可能会更复杂一些,但它提供了更多的自定义选项和控制。

💡 提示: 选择 WSL 还是 VMWare,主要取决于具体需求和使用场景,需要权衡性能、资源消耗和使用便利性。


通过WSL无缝将代码运行至Linux环境

4.1 接入WSL目录

通过 IntelliJ IDEA 在 \\wsl$ 目录下创建项目
在这里插入图片描述
我在该目录下创建了一个java-demo的环境:
在这里插入图片描述

4.2 配置运行环境

4.3.1 安装 JDK

为了将项目可以运行在Linux中,我们需要安装JDK环境

sudo apt update
sudo apt install openjdk-11-jdk

在这里插入图片描述

4.3.2 验证 JDK 安装

通过运行下面的命令来确认 JDK 是否已成功安装和配置:

java -version

在这里插入图片描述

4.4 在Ubuntu中执行jar包

我们找到Main方法的位置,执行如下命令:
在这里插入图片描述
可以看到操作系统和版本号成功打印出来了。


5 基于NatApp实现远程访问虚拟机

在我们的日常开发工作中,能够远程访问和操作虚拟机大大提升了工作的灵活性和效率。这一章,我们将使用NatApp这一专业的内网穿透工具,实现远程访问虚拟机的目标。

5.1 内网穿透与NatApp简介

内网穿透是一种网络技术,能够让你在任何地方都可以访问到局域网中的设备,就像直接连接到局域网一样。NatApp则是一款优秀的内网穿透工具,以其稳定性和高效性受到了开发者的喜爱。

NatApp的主要优势在于其简单易用,能快速实现远程访问,而无需复杂的网络配置和设置。下面,我们将指导你如何配置和使用NatApp来实现远程访问虚拟机。

5.2 配置与使用NatApp

5.2.1 下载与安装

首先,需要访问NatApp官方网站下载对应的客户端,并按照提示完成安装过程。

5.2.2 创建穿透任务

  1. 打开NatApp客户端并登录。
  2. 购买隧道,使用免费隧道即可。
  3. 根据下图完成创建。
    在这里插入图片描述

5.2.3 启动穿透服务

修改安装的客户端目录下的config.ini文件,authtoken直接从之前的网页那边复制。
在这里插入图片描述
在这里插入图片描述

5.3 测试与验证

双击natapp.exe就建立成功了。
在这里插入图片描述
当然,在远程连接之前需要在ubuntu中安装ssh服务,具体安装教程可以见参考文献的第二点。接下来,我们在另一台机器进行远程连接,我所使用的远程连接工具是mobaXterm:
在这里插入图片描述s
输入上面的网址和端口号,就连接成功了。如同使用云服务一样。
在这里插入图片描述

💡 小提示: 在使用NatApp时,请确保网络稳定,并注意保护你的网络安全,避免暴露重要的个人信息和网络资源。

注意事项

  • 确保Windows防火墙允许SSH服务的入站连接。
  • 在进行内网穿透时,要格外注意网络安全,尤其是暴露了22端口之后。
  • 使用强密码,并考虑使用SSH密钥对进行身份验证,以增强安全性。

总结

在本文中,我们详细探讨了**WSL(Windows Subsystem for Linux)**的安装、配置和使用,指导读者如何在Windows系统中轻松设置和运行Linux环境。我们比较了WSL与VMWare在性能、资源消耗和使用便利性方面的差异,揭示了WSL在开发者日常工作中的实用性和优势。最后,我们还深入讲解了如何在WSL中通过IntelliJ IDEA开发Java项目,并在Ubuntu中配置和运行Java环境,实现在Linux下无缝运行Java项目。通过WSL,开发者可以更加高效、便捷地利用Linux的功能和特性,优化开发流程和提升工作效率。


参考文献

  1. WSL 使用教程 - 知乎
  2. 【WSL】WSL折腾之旅(3)SSH远程连接 - 知乎
  3. Windows 11 安装 WSL2 - 知乎
  4. 适用于 Linux 的 Windows 子系统文档 - microsoft官方

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1046560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

专业级操作,如何快速批量虚化多个视频的背景边框

如果你是一名视频编辑爱好者,或者是一名需要处理大量视频素材的专业人士,那么你可能会对如何快速处理和虚化视频的背景边框感到困惑。这里,我们就为你提供一种方法,使用固乔剪辑助手工具,你可以轻松实现批量虚化多个视…

ATA-8000系列射频功率放大器——应用场景介绍

ATA-8000系列是一款射频功率放大器。其P1dB输出功率500W,饱和输出功率最大1000W。增益数控可调,一键保存设置,提供了方便简洁的操作选择,可与主流的信号发生器配套使用,实现射频信号的放大。 图:ATA-8000系…

Kubernetes基本概念简介

零 引入 在传统的应用程序部署中,需要手动配置和管理服务器、网络和存储等基础设施,并且随着应用程序规模的增长,管理复杂性也会大大增加。Kubernetes通过自动化和抽象化的方式,解决了这些挑战,使得应用程序可以以一种…

sdk下载慢的解决办法

Android studio版本:为Android Studio 4.1.1, 先完成Android Studio软件安装,打开Android Studio,点击File -> settings->Android SDK,按照开发需要安装sdk platform、SDK Tools工具。 sdk下载慢解决办法 1、…

Nuxt 菜鸟入门学习笔记六:路由

文章目录 路由 Routing页面 Pages导航 Navigation路由参数 Route Parameters路由中间件 Route Middleware路由验证 Route Validation Nuxt 官网地址: https://nuxt.com/ 路由 Routing Nuxt 的一个核心功能是文件系统路由器。pages/目录下的每个 Vue 文件都会创建一…

【ACL2023】Event Extraction as Question Generation and Answering

论文题目:Event Extraction as Question Generation and Answering 论文来源:ACL2023 论文链接:Event Extraction as Question Generation and Answering - ACL Anthology 代码链接:GitHub - dataminr-ai/Event-Extraction-as-…

PowerDsigner 数据库逆向pdm数模 常见数据库连接问题

本文章记录本人在使用powerdsigner工具,反向工程生成项目数据库表结构以及表关系的过程中遇到的两个常见问题。 问题1:Could not Initialize JavaVM 问题2:Non SQL Error : Could not load class oracle.jdbc.OracleDriver 环境&#xff1…

枚举enum

使用enum关键字定义提供枚举类的对象,多个对象用逗号分开,结尾用分号结束提供构造方法,给属性赋值使用public statiac final来修饰是属性提供get方法提供toString方法 public enum Season {SPRING("春天", "春暖花开"),…

都用HTTPS了,还能被查出浏览记录?

最近,群里一个刚入职的小伙因为用公司电脑访问奇怪的网站,被约谈了。他很困惑 —— 访问的都是HTTPS的网站,公司咋知道他访问了啥? 实际上,由于网络通信有很多层,即使加密通信,仍有很多途径暴露…

达梦数据库使用杂记

1、DM管理工具打开后一片白 这是因为上一次把对象导航窗口手动关闭了,后面再重新打开时默认就不显示了; 只需要到窗口-视图-对象导航 打开即可 2、 查询语句需要带表空间名,如:select * from "表空间名"."表名&…

混合IT基础设施的安全挑战与缓解策略

自从“身份是新的边界”这句格言问世以来,公司已经开始扩展他们的能力和运营,超越了基于本地、办公室基础设施的范围。采用云原生技术意味着组织正在寻求扩大传统工作流程,而无需投入时间和资源来建立物理数据中心和其他硬件基础设施。 身份…

2023版 STM32实战4 滴答定时器精准延时

SysTick简介与特性 -1- SysTick属于系统时钟。 -2- SysTick定时器被捆绑在NVIC中。 -3- SysTick可以产生中断,且中断不可屏蔽。 SysTick的时钟源查看 通过时钟树可以看出滴答的时钟最大为72MHZ/89MHZ 通过中文参考手册也可以得到这个结论 代码编写(已经验证&a…

苹果曾考虑基于定位控制AirPods Pro自适应音频

在一次最近的采访中,苹果公司的高管Ron Huang和Eric Treski透露,他们在开发AirPods Pro自适应音频功能时,曾考虑使用GPS信号来控制音频级别。这个有趣的细节打破了我们对AirPods Pro的固有认知,让我们对苹果的创新思维有了更深的…

十三,打印辐照度图

上节HDR环境贴图进行卷积后,得到的就是辐照度图,表示的是周围环境间接漫反射光的积分。 现在也进行下打印,和前面打印HDR环境贴图一样,只是由于辐照度图做了平均,失去了大量高频部分,因此,可以…

unity 限制 相机移动 区域(无需碰撞检测)

限制功能原著地址:unity限制相机可移动区域(box collider)_unity限制相机移动区域_manson-liao的博客-CSDN博客 一、创建限制区域 创建一个Cube,Scale大小1,添加组件:BoxCollder,调整BoxColld…

花式打印0~100中3的倍数

列表解析3的倍数负步长切片倒序,iter、zip函数配合实现分行格式打印。 (本笔记适合熟悉python列表解析式的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程…

【开发篇】九、SpringBoot整合ES(ElasticSearch)

文章目录 1、整合2、简单示例3、一点补充4、增删改查索引与文档 1、整合 整合思路都一样&#xff0c;先起步依赖或普通依赖&#xff0c;再配置&#xff0c;再封装的操作对象。先引入依赖&#xff1a; <dependency> <groupId>org.springframework.boot</grou…

电子签章软件怎么安装?选本地私有还是SaaS云?

出于高效便捷、安全防伪&#xff0c;以及跟上数字化转型趋势的考虑&#xff0c;越来越多的企业开始考虑使用电子签章软件。 但是每当企业考虑购买电子签章软件时&#xff0c;往往都会面对本地私有部署和SaaS公有云两种不同的电子签章软件安装部署方式&#xff0c;而不知道到底应…

使用c++实现输出爱心(软件:visual Studio)

#include <iostream> using namespace std;int main() {//爱心曲线方程(x^2y^2-a)^3-x^2*y30double a 0.5;//定义绘图边界double bound 1.3 * sqrt(a);//x,y坐标变化步长double step 0.05;//二维扫描所有点,外层逐层扫描for (double y bound; y > -bound; y - ste…

DeepSpeed4Science:利用先进的AI系统优化技术实现科学发现

本文转载自微软 DeepSpeed 团队官方知乎账号&#xff1a;zhihu.com/people/deepspeed&#xff0c;由微软 DeepSpeed 团队翻译自官方英文博客&#xff1a;Announcing the DeepSpeed4Science Initiative: Enabling large-scale scientific discovery through sophisticated AI sy…