Linux系统编程开发环境搭建

开发环境搭建

桥接网络(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.mfbz.cn/a/553377.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Linux_IMX6ULL驱动开发]-总线设备驱动模型

目录 框架分层 总线驱动模型实现 上层驱动代码(leddrv.c)的实现以及解析 交叉依赖的避免 下层驱动的设备文件(board_A_led.c)的实现 下层驱动的驱动文件(chip_demo_gpio.c)的实现 框架分层 在之前&#xff0c;我们对于驱动的框架有过两种不同的框架。第一种框架&#xf…

如何爬出 Kotlin 协程死锁的坑?

作者&#xff1a;悬衡 一、前言 在 Java 中有一个非常经典的死锁问题, 就是明明自己已经占用了线程池, 却还继续去申请它, 自己等自己, 就死锁了, 如下图和代码: // 这段代码将死锁到天荒地老final ExecutorService executorService Executors.newSingleThreadExecutor();exe…

科学突破可能开创6G通信新时代

格拉斯哥大学开发的火柴盒大小的天线可以为全息通话、改进自动驾驶和更好的医疗保健的世界铺平道路。 格拉斯哥大学表示&#xff0c;这种创新的无线通信天线将超材料的独特特性与复杂的信号处理相结合&#xff0c;有助于构建未来的 6G 网络。 数字编码动态超表面天线&#xf…

前端请求发送成功,后端收到null

1、dishId为64&#xff0c;有数据 2、但是后端调试接不到数据&#xff0c;为null 3、形参部分缺少RequestBody接收JSON数据&#xff0c;加上即可

Kimichat炒股:7个提示词案例

●了解股票投资基本概念和知识 什么是有息负债率&#xff1f;用浅显明白的话语针对没有财务会计基础的小白进行解释 Kimi的回答&#xff1a; 有息负债率是一个财务指标&#xff0c;用来衡量一家公司在其负债中有多少是需要支付利息的。简单来说&#xff0c;就是公司借的钱中&…

获取公募基金持仓【数据分析系列博文】

摘要 从指定网址获取公募基金持仓数据&#xff0c;快速解析并存储数据。 &#xff08;该博文针对自由学习者获取数据&#xff1b;而在投顾、基金、证券等公司&#xff0c;通常有Wind、聚源、通联等厂商采购的数据&#xff09; 1. 导入必要的库&#xff1a; pandas 用于数据处理…

【第1节】书生·浦语大模型全链路开源开放体系

目录 1 简介2 内容&#xff08;1&#xff09;书生浦语大模型发展历程&#xff08;2&#xff09;体系&#xff08;3&#xff09;亮点&#xff08;4&#xff09;全链路体系构建a.数据b 预训练c 微调d 评测e.模型部署f.agent 智能体 3 相关论文解读4 ref 1 简介 书生浦语 InternLM…

深度Q-Learning在算法交易中的应用

一、说明 在《华尔街的随机漫步》一书中&#xff0c;作者伯顿马尔基尔&#xff08;Burton G. Malkiel&#xff09;声称&#xff1a;“一只蒙着眼睛的猴子向报纸的财经版面投掷飞镖&#xff0c;可以选择一个与专家精心挑选的投资组合一样好的投资组合。 如果我们让巴甫洛夫的狗接…

RabbitMQ-交换机

文章目录 交换机fanoutDirecttopicHeadersRPC 交换机 **交换机 **是消息队列中的一个组件&#xff0c;其作用类似于网络路由器。它负责将我们发送的消息转发到相应的目标&#xff0c;就像快递站将快递发送到对应的站点&#xff0c;或者网络路由器将网络请求转发到相应的服务器…

使用prompt_toolkit构建交互式命令行工具

prompt_toolkit是一个python库&#xff0c;用于构建命令行工具和终端应用。其官网介绍如下&#xff0c; prompt_toolkit is a library for building powerful interactive command line and terminal applications in Python. 安装命令如下&#xff0c; pip install prompt_to…

CCIA信息系统业务安全服务资质证书介绍条件要求

CCIA&#xff08;中国通信工业协会&#xff09;证书是由中国通信工业协会颁发的一种专业资质证书&#xff0c;旨在评估和认证信息化建设企业在信息化项目建设中提供的服务能力。该证书不涉及技术和产品标准&#xff0c;而是重点强调企业在行业服务方向、安全服务意识和专业服务…

基于Springboot的心灵治愈交流平台

基于SpringbootVue的心灵治愈交流平台的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页展示 系统公告 心理咨询师 心灵专栏 压力测试 小纸条 后台登录界面 后…

CST电磁仿真物体表面的Sheet结构和生成3D Model【基础教程】

由Sheet结构生成3D Model 使用Shell Solid and Thicken Sheet&#xff01; Modeling > Tools > Shape Tools > Shell Solid or Thicken Sheet Shell Solidor ThickenSheet会根据不同类型的模型提供两种完全不同的功能。 如033.由3D Model生成Cavity 所述&#xff…

量子密钥分发系统设计与实现(一):系统基本架构讨论

经过一段时间讨论&#xff0c;我们了解到量子密钥分发设备是当前量子保密通信系统的基础。从本文开始&#xff0c;我将开启量子密钥分发系统设计与实现系列&#xff0c;详细讨论量子密钥分发设备如何从0到1的搭建。 1.QKD系统总体讨论 QKD系统的核心功能就是为通信双方提供理论…

后端插入数据库问题

IDEA报错&#xff1a;Error updating database. Cause: java.sql.SQLException: Column count doesn’t match value count at row 1 1、看报错消息&#xff0c;SQLException&#xff0c;定位到SQL语句问题 并且看best guess最好猜测&#xff0c;再去找路径下的ShoppingCartMa…

第十二章 屏幕后处理效果

屏幕后处理效果是实现屏幕特效的常见方法。 建立一个基本的屏幕后处理的脚本 屏幕后处理指的是在渲染完整个场景得到屏幕图像后,再对这个图像进行一系列操作,实现各种屏幕特效。 想要实现屏幕后处理的基础在于抓取屏幕。Unity为我们提供了一个接口-OnRenderImage函数。 声…

【C语言回顾】函数

前言1. 函数的概念和分类2.库函数3. 自定义函数3.1 自定义函数的简单介绍3.2 自定义函数举例 4. 形参和实参4.1 形参4.2 实参4.3 形参和实参的关系4.3.1 理解4.3.2 举例代码和调试 5. 嵌套函数和链式访问5.1 嵌套函数5.2 链式访问 6. 函数的声明和定义6.1 单个文件6.2 多个文件…

Java PDF文件流传输过程中速度很慢,如何解决?

专栏集锦&#xff0c;大佬们可以收藏以备不时之需&#xff1a; Spring Cloud 专栏&#xff1a;http://t.csdnimg.cn/WDmJ9 Python 专栏&#xff1a;http://t.csdnimg.cn/hMwPR Redis 专栏&#xff1a;http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏&#xff1a;http://t.csdni…

Https网站接口被黑被恶意调取

背景&#xff1a; 维护的一个网站最近短信接口被黑&#xff0c;发送大量短信。起初以为是在网站内部操作&#xff0c;优化了发送短信前的操作&#xff0c;如添加图形验证码&#xff0c;屏蔽国外IP等。但后续还存在被调取情况&#xff0c;定位排查到是该接口在外部被恶意调取。 …

牛客Linux高并发服务器开发学习第二天

Gcc编译 利用gcc 生成应用时如果不加-o 和应用名&#xff0c;默认生成a.out 可以用./ a.out打开 Gcc工作流程 可执行程序Windows系统中为.exe Linux系统中为.out g也可以编辑c程序 gcc也可以编译cpp代码&#xff0c;只是在编译阶段gcc不能自动共和C程序使用的库进行联接&…
最新文章