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

介绍

在开发工具中,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.mzph.cn/news/89377.shtml

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

相关文章

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

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

Android 编译插桩操纵字节码

本文讲解如何编译插桩操纵字节码。 就使用 ASM 来实现简单的编译插桩效果,通过插桩实现在每一个 Activity 打开时输出相应的 log 日志。实现思路 过程主要包含两步: 1、遍历项目中所有的 .class 文件​ 如何找到项目中编译生成的所有 .class 文件&#…

基于C#的AE二次开发之IQueryFilter接口、ISpatialFilter接口、IQueryDef 接口的查询接口的介绍

一、开发环境 开发环境为ArcGIS Engine 10.2与Visual studio2010。在使用ArcEngine查询进行查询的时候主要使用三种查询接口IQueryFilter(属性查询) 、ISpatialFilter(空间查询) 、IQueryDef (多表查询) 那…

leetcode 133. 克隆图

leetcode 133. 克隆图 给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。 图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。 class Node { public int val;…

PHP自动识别采集何意网址文章正文内容

在做PHP采集内容时,用过querylist采集组件,但是这个插件采集页面内容时,都必须要写个采集选择器。这样比较麻烦,每个文章页面都必须指定一条采集规则 。就开始着手找一个插件可以能自动识别任意文章url正文内容并采集的&#xff0…

小黑下班品尝网红团结湖四川麻辣烫,吃的特别撑,支付宝抽到3元红包,耳机找到,开始接触强化学习的leetcode之旅:LCR 188. 买卖芯片的最佳时机

小黑代码 class Solution:def bestTiming(self, prices: List[int]) -> int:# 数组长度n len(prices)if n < 2:return 0# 结果变量profit 0# 记录第i天之前的股票价格最小值min_ prices[0]for i in range(1, n):if prices[i]-min_ > profit:profit prices[i]-min…

简易磁盘自动监控服务

本文旨在利用crontab定时任务(脚本请参考附件)来监控单个服务节点上所有磁盘使用情况&#xff0c;一旦超过既定阈值则会通过邮件形式告警相关利益人及时介入处理。 1. 开启SMTP服务 为了能够成功接收告警信息&#xff0c;需要邮件接收客户都安开启SMTP服务。简要流程请参考下…

Fortinet 2023上半年全球威胁态势研究报告:勒索软件检测成下降趋势,针对性攻击持续升温

近日&#xff0c;专注于推动网络与安全融合的全球网络安全领导者Fortinet&#xff08;NASDAQ&#xff1a;FTNT&#xff09;&#xff0c;发布《2023上半年全球威胁态势研究报告》。报告显示&#xff0c;2023 年上半年勒索软件检出数量继续下降、高级持续性威胁&#xff08;APT&a…

深度学习|如何确定 CUDA+PyTorch 版本

对于深度学习初学者来说&#xff0c;配置深度学习的环境可能是一大难题&#xff0c;因此本文主要讲解CUDA; cuDNN; Pytorch 三者是什么&#xff0c;以及他们之间的依赖关系。 CUDA CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由NVIDIA开发的用于并行计…

秋招在线人才测评考什么内容?

又是一年招聘季&#xff0c;各大高校都会组织校园招聘&#xff0c;这次我们就来了解一下秋季校园招聘究竟考什么。近些年来校园秋招已经广泛采用在线测评&#xff0c;尤其各行业龙头大厂们&#xff0c;网申、在线测评、小组无领导讨论&#xff0c;一面二面......各类纷杂的面试…

某瑞集团安全技术研发岗位面试

本文由掌控安全学院 - sbhglqy 投稿 一、自我介绍 阿吧阿吧&#xff0c;不多说 二、就ctf比赛经历方面提些问题 面试官&#xff1a;ctf打了多久了 我&#xff1a;两三年了。 面试官&#xff1a;得过什么奖项没有 我&#xff1a;本科的时候得过一个校一等奖。 面试官&#x…

华为云云耀云服务器L实例评测 | 实例使用教学之简单使用:通过 Docker 容器化技术在华为云云耀云服务器快速构建网站

华为云云耀云服务器L实例评测 &#xff5c; 实例使用教学之简单使用&#xff1a;通过 Docker 容器化技术在华为云云耀云服务器快速构建网站 介绍华为云云耀云服务器 华为云云耀云服务器 &#xff08;目前已经全新升级为 华为云云耀云服务器L实例&#xff09; 华为云云耀云服务器…

Docker 容器编排

是什么 Docker-Compose是 Docker 官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。 Compose 是 Docker 公司推出的一个工具软件&#xff0c;可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml&#xff0c;写好多个…

用CRM系统协助销售跟踪客户

客户跟踪对销售来说非常重要&#xff0c;销售不及时跟进很容易导致潜在客户流失。那么对于销售来说&#xff0c;该如何做好客户跟踪呢&#xff1f;或许可以使用CRM客户管理系统。下面来说说&#xff0c;CRM系统如何协助销售跟踪客户&#xff1f; 智能联系客户提醒 销售人员通…

【建造者模式】

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《20种Java设计模式》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#x…

在 Esp32 摄像头上实现边缘脉冲 FOMO 物体检测

轻松在 Esp32 相机上运行边缘脉冲 FOMO 物体检测的世界最佳指南。即使您是初学者 介绍 对象检测是检测图像内感兴趣的对象的任务。直到几年前,由于模型的复杂性和要执行的数学运算的数量惊人,这项任务还需要强大的计算机来完成。 然而,由于像Edge Impulse这样的平台,初学者…

Socks5代理IP是什么?有什么优点及如何使用?

随着网络威胁和数据泄露的数量不断增加&#xff0c;在浏览互联网时保护个人信息并保持匿名变得至关重要。实现此目的的一种有效方法是使用Socks5代理IP。如今Socks5代理被广泛应用于跨境电商/社媒平台、SEO业务、网络抓取等领域&#xff0c;在这篇文章中&#xff0c;我们将讨论…

Ajax

一、什么是Ajax <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wid…

gitee-快速设置

快速设置— 如果你知道该怎么操作&#xff0c;直接使用下面的地址 HTTPS SSH: gitgitee.com:liuzl33078235/esp-idf.git 我们强烈建议所有的git仓库都有一个README, LICENSE, .gitignore文件 初始化 readme 文件 Git入门&#xff1f;查看 帮助 , Visual Studio / TortoiseG…

mysql实际调优

一般实际调优的情况就不需要去考虑mysql数据库结构或者命名优化那些。做这些优化是大动作&#xff0c;也不是咱们一般人去接触到的。 所以我们针对mysql的调优其实大部分还是针对索引进行优化。 我们刚接触这个表的话可以先查询当前表中所有的索引 使用 SHOW INDEX FROM yo…