Linux系统编程开发环境搭建

news2024/12/23 11:06:48

开发环境搭建

桥接网络(Bridged Network)、网络地址转换(NAT, Network Address Translation)和主机模式网络(Host-only Networking)

在虚拟化环境中,常见的三种网络模式是桥接网络(Bridged Network)、网络地址转换(NAT, Network Address Translation)和主机模式网络(Host-only Networking)。这三种模式各有特点,适用于不同的应用场景:

  1. 桥接网络(Bridged Network)

    • 定义:桥接网络将虚拟机直接连接到宿主机的网络,使得虚拟机表现得就像是连接在物理网络上的另一台独立的计算机。虚拟机会在物理网络上获得一个独立的网络地址。
    • 用途:适用于需要虚拟机与外部网络中的其他设备进行直接通信的场景。
    • 特点:虚拟机可以被网络中的其他设备直接访问,同时也能访问到外部的网络资源。
  2. 网络地址转换(NAT, Network Address Translation)

    • 定义:在NAT模式下,虚拟机共享宿主机的IP地址,通过宿主机进行网络通信。虚拟机的网络流量会经过NAT设备进行地址转换,然后才发送到外部网络。
    • 用途:适用于当虚拟机只需要访问互联网,而无需从外部网络直接被访问的场景。
    • 特点:虚拟机不会在外部网络上显示独立的网络地址,这提供了一定程度的隔离和保护。
  3. 主机模式网络(Host-only Networking)

    • 定义:在这种模式下,虚拟机只能与宿主机通信,不能直接访问外部网络。虚拟机和宿主机通常会在一个隔离的私有网络内进行交互。
    • 用途:适用于测试和开发环境,当你需要隔离虚拟机,防止其访问或被外部网络访问时。
    • 特点:虚拟机与外部网络完全隔离,仅与宿主机在私有网络中交互。

每种网络模式提供不同层级的网络访问和安全性,选择哪种模式取决于你的具体需求,如是否需要虚拟机与外部设备通信,或者你对网络隔离和安全性的考虑。

开启ssh

sudo apt install openssh-server

SSH(Secure Shell)是一种网络协议,用于在不安全的网络中安全地进行远程登录和其他网络服务。SSH通过加密连接,为在网络上发送的数据提供安全保护,防止中间人攻击和数据泄露。它是远程管理服务器或设备最常用和最可靠的方法之一。

SSH的主要功能包括:

  1. 远程控制:允许用户安全地登录到另一台计算机上,并在安全的环境中执行命令和操作。
  2. 数据传输:提供安全的网络服务,如文件传输(使用SCP或SFTP协议)和端口转发。
  3. 端口转发:能够将本地端口通过加密隧道重定向到远程服务器的端口,或者相反,这在需要安全地访问内部网络资源的场景中非常有用。

SSH工作原理:

  • 加密:SSH 使用多种加密技术来保护数据传输过程中的隐私和完整性。这些加密技术包括对称加密、非对称加密和哈希算法。
  • 认证:SSH 支持多种认证机制,如基于密码的认证和更安全的基于公钥的认证。
  • 通道:通过建立一个加密的通道,所有通过SSH协议传输的数据都将在此通道中被加密,从而保护数据不被外部监听或篡改。

使用场景:

  • 系统管理员:管理服务器,执行维护任务,安装和更新软件。
  • 开发者:部署应用程序,管理生产环境。
  • IT安全专家:安全地访问敏感数据和系统,执行安全审核和监控。

SSH 是远程计算机管理和维护的基石,因其安全性和功能性,被广泛用于企业和个人项目中。

XshellXftp 是由韩国NetSarang Computer, Inc.开发的两款软件,主要用于网络管理和文件传输。它们广泛应用于管理远程服务器和传输文件,特别受到系统管理员和网络专业人士的欢迎。下面分别介绍这两款软件的功能和用途:

Xshell

Xshell 是一款功能强大的终端仿真软件,用于通过SSH(Secure Shell)、TELNET、RLOGIN、SFTP、SERIAL等协议安全地访问远程Unix/Linux服务器。它通常用于执行远程服务器命令、管理系统、进行系统维护或远程教育等任务。

主要特点包括

  • 多标签界面:可以在一个窗口中打开多个会话标签,方便同时管理多个连接。
  • 强大的安全功能:提供SSH的加密功能,确保数据传输的安全。
  • 高级脚本功能:支持自动化脚本,使用户能够自动执行重复任务。
  • 用户界面定制:允许用户根据自己的喜好和需求定制界面。

链接到虚拟机

首先查询虚拟机ip

daic@daic:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.128.128  netmask 255.255.255.0  broadcast 192.168.128.255
        inet6 fe80::a650:6a3f:15c4:a819  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:1c:d4:10  txqueuelen 1000  (Ethernet)
        RX packets 38172  bytes 48497180 (48.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14371  bytes 1338628 (1.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 871  bytes 97518 (97.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 871  bytes 97518 (97.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

image-20240417111547743image-20240417111636642

链接成功后

image-20240417111935024

Xftp

Xftp 是一款基于Windows的文件传输程序,用于在本地计算机与远程服务器之间安全地传输文件。它支持SFTP和FTP两种协议,适用于需要高级文件传输功能的用户。

主要特点包括

  • 直观的图形用户界面:使文件传输过程简单易懂。
  • 支持拖放操作:用户可以简单地拖放文件来上传或下载。
  • 同步更新功能:可以同步本地文件夹和远程文件夹的内容,保证双方数据的一致性。
  • 安全的文件传输:通过SSH加密文件传输,保证数据在传输过程中的安全。

应用场景

  • 系统管理:系统管理员使用Xshell和Xftp来管理服务器,进行系统更新、配置和故障排除。
  • 开发和部署:开发人员可以使用这些工具来部署代码到测试或生产服务器。
  • 教育和培训:在教育领域,讲师可以使用Xshell进行远程教学演示。

总之,Xshell和Xftp是两款功能丰富且专业的软件,对于需要频繁进行远程系统管理和文件传输的用户来说,是非常有用的工具。

公钥和私钥

公钥和私钥是非对称加密中的两个基本概念,它们共同构成了密钥对。在非对称加密体系中,公钥和私钥是成对存在的,它们之间有数学上的依赖关系,但从一个密钥计算出另一个密钥在实际操作中是不可行的。这种加密方式的特点是用公钥加密的数据只能用对应的私钥解密,反之亦然。下面是公钥和私钥的主要作用和区别:

公钥的作用

  1. 加密数据:任何人都可以使用公钥来加密数据,但只有持有对应私钥的接收者能够解密这些数据。这确保了信息在传输过程中的保密性。
  2. 验证签名:公钥还用于验证由私钥生成的数字签名。这可以确认消息确实是由私钥的持有者发送,并且消息在传输过程中未被篡改。

私钥的作用

  1. 解密数据:私钥主要用于解密用公钥加密的数据。这保证了只有私钥的持有者才能阅读经过加密的信息。
  2. 生成签名:私钥用于创建数字签名,这种签名附加在消息上,任何人都可以用相对应的公钥来验证这个签名的有效性。

公钥和私钥的区别

  1. 分发方式

    • 公钥:可以公开分发,任何需要与密钥持有者安全通信的人都可以使用。
    • 私钥:必须保密,只有密钥的持有者知道。泄露私钥将导致通信的安全性受到威胁。
  2. 功能用途

    • 公钥主要用于加密信息和验证签名。
    • 私钥主要用于解密信息和生成签名。
  3. 安全性要求

    • 公钥因为是公开的,不需要特别的安全保护措施。
    • 私钥必须高度保密和安全,一旦泄露,相关的安全通信即被破坏。

应用场景

  • HTTPS:在网络安全通信中,如HTTPS协议,服务器的公钥通常包含在SSL/TLS证书中,客户端使用它来加密与服务器的通信。
  • 电子邮件加密:使用如PGP(Pretty Good Privacy)的工具,发送者可以使用接收者的公钥来加密邮件,只有接收者的私钥才能解密。
  • 软件签名:开发者使用私钥对软件进行签名,用户可以通过公钥验证软件是否未被篡改且确实来自该开发者。

非对称加密提供了一种在不安全的网络环境中安全传输数据的方法,并确保了信息的机密性和完整性。公钥和私钥的这种分离应用使得非对称加密在现代通信系统中变得非常重要和普遍。

通过vscode远程到虚拟机

通过remote_explore插件来连接

image-20240417144936964 image-20240417145010132

在使用Visual Studio Code (VSCode) 远程连接到虚拟机并设置编译器路径时,你通常会用到VSCode的Remote Development扩展,特别是Remote - SSH扩展,用来连接到运行在虚拟机上的Linux环境。设置编译器路径需要你首先确定你的项目所需的编译器已经在虚拟机上正确安装,然后在VSCode中进行适当的配置。这里是一些具体的步骤:

步骤 1: 安装和设置Remote - SSH扩展

  1. 在VSCode中安装“Remote - SSH”扩展。
  2. 打开VSCode的命令面板(Ctrl+Shift+P),输入并选择“Remote-SSH: Connect to Host…”,然后输入你的虚拟机的SSH详情(IP地址和用户名)。
  3. 如果提示,输入你的SSH密码或使用SSH密钥。

步骤 2: 安装和确认编译器

在远程虚拟机上安装所需的编译器(如GCC, Clang等)。你可以通过SSH终端在虚拟机上执行这一步。例如,如果是Ubuntu或Debian系统,可以使用以下命令安装GCC:

sudo apt update
sudo apt install build-essential

步骤 3: 设置编译器路径

  1. 在远程虚拟机上,确定编译器的路径。例如,GCC的路径通常是/usr/bin/gcc。你可以使用which gcc命令来查找GCC的路径。
  2. 在VSCode中,打开你的项目文件夹。
  3. 打开或创建一个.vscode目录,并在该目录中创建一个settings.json文件(如果还没有的话)。
  4. settings.json文件中配置编译器路径。这通常涉及到修改语言特定的设置。例如,如果你在使用C/C++,并使用了C/C++扩展(由Microsoft提供),你可以这样设置GCC编译器的路径:
{
    "C_Cpp.default.compilerPath": "/usr/bin/gcc"
}

步骤 4: 验证设置

  1. 使用VSCode的终端(确保它是连接到远程服务器的终端),尝试编译你的项目来确保编译器路径设置正确。

注意事项

  • 确保在.vscode/settings.json中的设置是针对远程环境的。VSCode的Remote - SSH扩展会让你在远程环境中独立配置设置。
  • 如果你在使用其他编程语言或环境(如Python、Java等),可能需要设置不同的环境变量或路径。

通过上述步骤,你应该能够成功地在VSCode中远程连接到虚拟机并设置编译器路径。如果有其他具体需求或遇到问题,可以根据实际情况进行相应的调整和排错。

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

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

相关文章

好用的Python开发工具合集

​ Python是一种功能强大且易于学习的编程语言&#xff0c;被广泛应用于数据科学、机器学习、Web开发等领域。随着Python在各个领域的应用越来越广泛&#xff0c;越来越多的Python开发工具也涌现出来。但是&#xff0c;对于新手来说&#xff0c;选择一款合适的Python开发工具可…

OpenHarmony开发实例:【鸿蒙.bin文件烧录】

使用HiBurn烧录鸿蒙.bin文件到Hi3861开发板 鸿蒙官方文档的“Hi3861开发板第一个示例程序”中描述了——如何使用DevEco Device Tool工具烧录二进制文件到Hi3861开发板&#xff1b; 本文将介绍如何使用HiBurn工具烧录鸿蒙的.bin文件到Hi3861开发板。 获取HiBurn工具 通过鸿蒙…

云仓酒庄品酒师培训破大世界基尼斯纪录,市场专业化趋势势如破竹

近日&#xff0c;云仓酒庄举办的品酒师培训活动成功创下大世界基尼斯纪录&#xff0c;这一荣誉不仅彰显了云仓酒庄在酒类培训领域的专业实力&#xff0c;更折射出酒类市场专业化趋势的势如破竹。随着酒类市场的日益成熟和消费者品鉴需求的提升&#xff0c;酒类市场专业化趋势对…

通义千问:官方开放API开发基础

目录 一、模型介绍 1.1主要模型 1.2 计费单价 二、前置条件 2.1 开通DashScope并创建API-KEY 2.2 设置API-KEY 三、基于DashScope SDK开发 3.1 Maven引入SDK 3.2 代码实现 3.3 运行代码 一、模型介绍 通义千问是由阿里云自主研发的大语言模型&#xff0c;用于理解和分…

Vitis HLS 学习笔记--BLAS库之WideType

目录 1. WideType 数据类型 2. WideType 类模板参数 2.1 SFINAE技术 3. WideType 类中的函数 3.1 operator[](unsigned int p_Idx) 3.2 operator(const WideType& p_w) const 3.3 getValAddr() 3.4 operator const t_TypeInt() 4. 总结 1. WideType 数据类型 在 …

Java+saas模式 智慧校园系统源码Java Android +MySQL+ IDEA 多校运营数字化校园云平台源码

Javasaas模式 智慧校园系统源码Java Android MySQL IDEA 多校运营数字化校园云平台源码 智慧校园即智慧化的校园&#xff0c;也指按智慧化标准进行的校园建设&#xff0c;按标准《智慧校园总体框架》中对智慧校园的标准定义是&#xff1a;物理空间和信息空间的有机衔接&#…

前端学习<四>JavaScript基础——26-闭包

闭包的引入 我们知道&#xff0c;变量根据作用域的不同分为两种&#xff1a;全局变量和局部变量。 函数内部可以访问全局变量和局部变量。 函数外部只能访问全局变量&#xff0c;不能访问局部变量。 当函数执行完毕&#xff0c;本作用域内的局部变量会销毁。 比如下面这样…

Ubuntu20从0开始选择合适版本手动安装cuda,torch-geometric,jax

一个全新的ubuntu20台式机&#xff0c;在Additional Drivers安装nvidia-470-server&#xff08;一开始安装450&#xff0c;cunda版本只能到11.0&#xff0c;torch有些库用不了&#xff0c;可以直接切换点击Apply Changes重启就行&#xff09; nvidia-smi查看CUDA Version可到…

Redis 配置与使用 (Linux 虚拟机Windows客户端)

Centos7 安装Redis详细教程 - JcongJason - 博客园 (cnblogs.com) 安装 下载redis安装包并解压 # 下载&#xff0c;我是在root下执行的下载&#xff0c;所以我的下载目录为&#xff1a;/root/redis-5.0.5&#xff0c;这里按照自己的实际情况调整 wget https://download.redi…

JVM、maven、Nexus

一、jvm简介 1.应用程序申请内存时出现的三种情况&#xff1a; ①OOM:内存溢出&#xff0c;是指应用系统中存在无法回收的内存或使用的内存过多&#xff0c;最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了&#xff0c;系统会提示内存溢出&#xff0c…

css3实现微信扫码登陆动画

在做微信扫码登陆时&#xff0c;出现一个背景光图上下扫码动画&#xff0c;用css3图片实现。 实现原理&#xff1a; 1.准备一个渐变的背景.png图 2.css动画帧实现动画 看效果&#xff1a; css代码&#xff1a; #wx-scan{position: absolute;top:0px;left: 50%;z-index: 3;ma…

错误分析 (Machine Learning研习十九)

错误分析 您将探索数据准备选项&#xff0c;尝试多个模型&#xff0c;筛选出最佳模型&#xff0c;使用 Grid SearchCV微调其超参数&#xff0c;并尽可能实现自动化。在此&#xff0c;我们假设您已经找到了一个有前途的模型&#xff0c;并希望找到改进它的方法。其中一种方法就…

数据密集型应用系统设计 PDF 电子书(Martin Kleppmann 著)

简介 《数据密集型应用系统设计》全书分为三大部分&#xff1a; 第一部分&#xff0c;主要讨论有关增强数据密集型应用系统所需的若干基本原则。首先开篇第 1 章即瞄准目标&#xff1a;可靠性、可扩展性与可维护性&#xff0c;如何认识这些问题以及如何达成目标。第 2 章我们比…

JQuery(四)---【使用JQuery实现动画效果】

目录 前言 一.隐藏和显示 1.1使用方法 1.2案例演示(1) 1.3隐藏/显示效果一键切换 二.淡入淡出效果 2.1使用方法 2.2案例演示(fadeIn) 2.3案例演示(fadeOut) 2.4案例演示(fadeToggle) 2.5案例演示(fadeTo) 三.滑动 3.1使用方法 3.2案例演示(slideDown) 3.3案例演示…

三道模拟题

P1003 [NOIP2011 提高组] 铺地毯 题目描述 原题点这里-->P1003 [NOIP2011 提高组] 铺地毯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺…

黑马头条项目结构

微服务架构具有许多优点&#xff0c;其中一些主要优点包括&#xff1a; 松耦合性&#xff1a;每个微服务都是独立的&#xff0c;可以独立部署、独立扩展和独立更新&#xff0c;这种松耦合性使得系统更加灵活&#xff0c;易于维护和演化。 技术多样性&#xff1a;由于每个微服务…

鸿蒙开发 @ohos/hypium找不到问题

用的是最新的 开发工具 DevEco Studio 3.1.1 新建的空项目 报错 ohpm ERROR: Install failed ENOENT: no such file or directory, stat ‘E:\win\Project\MyApplication1\oh_modulesohos\hypium’ 解决方式 当前项目中 \oh_modules.ohpmohoshypium1.0.6\oh_modules 这里面有o…

算法练习第19天|222.完全二叉树的节点个数

222.完全二叉树的节点个数 222. 完全二叉树的节点个数 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/count-complete-tree-nodes/description/ 题目描述&#xff1a; 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。题目数据保…

SpringBoot版本配置问题与端口占用

前言 ​ 今天在配置springboot项目时遇到了一些问题&#xff0c;jdk版本与springboot版本不一致&#xff0c;在使用idea的脚手架创建项目时&#xff0c;idea的下载地址是spring的官方网站&#xff0c;这导致所下载的版本都是比较高的&#xff0c;而我们使用最多的jdk版本是jdk…

淘宝API接口开发系列:采集商品视频,属性,sku价格,详情图等

淘宝API接口开发是一个复杂的过程&#xff0c;涉及到与淘宝开放平台的对接&#xff0c;以及理解和使用其提供的API。如果你想采集商品视频、属性、SKU价格、详情图等信息&#xff0c;你需要遵循淘宝开放平台的开发者文档&#xff0c;并确保你的应用已经获得了适当的权限。 1.请…