SSH的魅力:为何它成为远程访问的首选

news2024/11/25 0:49:49

🐇明明跟你说过:个人主页

🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》🏅

🔖行路有良友,便是天堂🔖

目录

一、引言 

1、SSH简介

2、SSH的历史与发展

3、SSH的主要用途 

二、SSH技术基础

1、SSH协议概述

2、SSH协议的版本

3、SSH的工作原理

  ​编辑  三、SSH的安全特性

1、对称加密与非对称加密 

2、SSH使用的加密算法

四、SSH的高级应用

1、SSH隧道的应用场景

2、SSH与Git的集成 

3、SSH在DevOps中的应用


一、引言 

1、SSH简介

SSH(Secure Shell)是一种安全协议,用于在不安全的网络中执行安全的数据通信。它最初是由IETF(Internet Engineering Task Force,互联网工程任务组)的网络工作小组(Network Working Group)所制定,用于替代之前不安全的网络协议,如Telnet、Rlogin和Rsh。

SSH协议族由一系列协议组成,包括传输层协议(SSH-TRANS)、用户认证协议(SSH-USERAUTH)、连接协议(SSH-CONN)和会话协议(SSH-SESSION)等。这些协议在传输数据时提供了机密性(通过加密)和认证性(通过消息认证码和公钥技术)。

SSH的主要特点包括:

  1. 安全性:SSH通过加密和认证机制确保了数据传输的安全性,防止了数据在传输过程中被窃取或篡改。
  2. 远程登录:SSH提供了一种安全的远程登录方式,允许用户通过SSH客户端安全地登录到远程服务器,并执行命令或传输文件。
  3. 文件传输:SSH协议族中的SCP(Secure Copy)和SFTP(SSH File Transfer Protocol)提供了安全的文件传输功能,用于在本地和远程主机之间传输文件。
  4. 端口转发:SSH支持端口转发功能,可以将一个端口的流量转发到另一个端口,或者将本地端口的流量转发到远程主机上的某个端口。这有助于绕过网络防火墙或进行其他网络配置。
  5. 公钥认证:SSH支持基于公钥的认证方式,允许用户使用公钥和私钥对进行身份认证。这种认证方式比传统的密码认证更安全,因为私钥通常存储在本地,不易被窃取。
  6. 命令行界面:SSH客户端通常提供命令行界面,用户可以在命令行中输入命令并查看输出。这使得SSH成为一种非常灵活和强大的远程管理工具。

   

2、SSH的历史与发展

SSH(Secure Shell)的历史与发展可以追溯到1995年,当时芬兰赫尔辛基大学的研究员Tatu Ylönen为了解决早期远程登录协议(如Telnet、Rlogin和Rsh)的安全性问题,提出了SSH协议的概念。

SSH的初始版本,即SSH1.x,由Ylönen于1995年发布。这个版本通过CRC-32避免数据被篡改,并逐渐成为私有软件。SSH1.x的目标是替代那些不提供强认证和机密性保证的远程登录协议。

然而,随着技术的发展和安全需求的提升,SSH1.x逐渐被认为存在安全漏洞和局限性。因此,IETF(Internet Engineering Task Force,互联网工程任务组)成立了一个工作小组来制定新的SSH标准,即SSH2。

SSH2标准于2006年被采纳为正式标准,它采用了更强大的加密算法和协议机制,提供了更高的安全性和可靠性。SSH2在SSH1的基础上进行了大量的改进和扩展,包括支持多种加密算法、公钥认证、密钥交换等。

在SSH2标准发布后,OpenSSH成为了最流行的SSH实现之一。OpenSSH是一个开源项目,它遵循SSH2标准,并提供了丰富的功能和可移植性。OpenSSH可以在多种操作系统上运行,并且已经成为许多Linux发行版的默认SSH实现。

随着云计算和大数据技术的发展,SSH的安全性和便利性得到了更广泛的应用。SSH不仅用于远程登录和文件传输,还广泛用于自动化运维、云计算管理、安全审计等领域。

  

3、SSH的主要用途 

1. 安全的远程登录:

  • SSH允许用户安全地登录到远程计算机并执行命令。相比传统的Telnet和Rsh等远程登录协议,SSH通过加密传输的数据,保护用户凭证(如用户名和密码)和数据传输过程中的安全性。这使得SSH成为远程管理服务器、网络设备、云实例等的首选协议。

2. 安全的文件传输:

  • SSH提供了两种安全的文件传输方式:SCP(Secure Copy)和SFTP(SSH File Transfer Protocol)。SCP允许用户通过SSH连接在本地和远程主机之间复制文件,而SFTP则提供了一个类似于FTP的文件传输协议,但使用SSH进行加密和认证。这些工具可以确保文件在传输过程中不被窃取或篡改。

3. 端口转发:

  • SSH支持端口转发功能,允许用户将一个端口的流量转发到另一个端口,或者将本地端口的流量转发到远程主机上的某个端口。这可以用于绕过网络防火墙限制、访问内部网络资源或进行其他网络配置。SSH的端口转发功能可以分为本地端口转发、远程端口转发和动态端口转发。

4. 隧道/VPN(虚拟私人网络):

  • 通过SSH,用户可以创建一个安全的隧道或VPN,以加密和路由网络流量。这可以用于保护网络流量免受中间人攻击、穿越受限的网络环境或提供安全的远程访问。SSH隧道可以设置为动态隧道(如SOCKS代理)或静态隧道(如SSH隧道端口转发)。

5. 自动化运维:

  • SSH是自动化运维的重要工具之一。通过使用SSH,运维人员可以编写脚本来自动执行远程命令、部署软件、配置网络设备等。这大大提高了运维效率,并减少了人为错误的可能性。

6. 安全审计和监控:

  • SSH可以配置为记录用户活动、连接尝试和命令执行等详细信息。这些日志可以用于安全审计、入侵检测和故障排查。此外,SSH还可以与其他安全工具(如SIEM系统)集成,以提供更全面的安全监控和响应能力。

7. 多因素认证:

  • SSH支持多因素认证(MFA),通过结合不同的认证方法(如密码、公钥认证、指纹等)来提高访问的安全性。这可以确保只有经过授权的用户才能访问远程系统,并降低未经授权的访问风险。

  

二、SSH技术基础

1、SSH协议概述

SSH(Secure Shell)是一种用于在不安全网络中安全地进行远程登录和执行命令的协议。它通过加密通信和身份认证来保护通信的安全性,并提供了远程登录、文件传输、远程执行命令、隧道和端口转发等功能。

SSH 协议由以下几个组成部分构成:

  1. 传输层协议(SSH Transport Layer Protocol):负责建立安全通道,保护通信过程中的数据传输安全。它使用加密算法和密钥协商协议来加密和认证通信数据,防止数据在传输过程中被窃听、篡改和伪造。
  2. 用户认证协议(SSH User Authentication Protocol):负责对客户端进行身份验证,确保只有经过授权的用户才能访问服务器。它支持多种身份认证方式,如密码、公钥、证书等,用户可以根据自己的需求和安全策略选择合适的身份认证方式。
  3. 连接协议(SSH Connection Protocol):负责在安全通道上建立连接,实现客户端和服务器之间的命令执行、文件传输和端口转发等功能。它提供了一系列命令和功能,使用户可以在远程服务器上执行各种操作,如登录、执行命令、传输文件等。

SSH 协议的主要特点包括:

  • 加密通信:使用加密算法对通信数据进行加密,保护数据在传输过程中的安全性。
  • 身份认证:支持多种身份认证方式,确保只有经过授权的用户才能访问服务器。
  • 会话管理:支持会话管理和多路复用,可以在同一个连接上执行多个会话和命令。
  • 端口转发:支持端口转发和隧道技术,实现安全的网络访问和数据传输。
  • 可靠性和稳定性:提供稳定可靠的远程访问和管理功能,适用于各种网络环境和操作系统平台。

   

2、SSH协议的版本

SSH 协议有两个主要版本:SSH-1 和 SSH-2。

SSH-1:

  • SSH-1 是最早的 SSH 版本,于 1995 年由 Tatu Ylönen 开发。
  • 它使用了较弱的加密算法和认证机制,存在安全漏洞和缺陷,如容易受到中间人攻击等。
  • SSH-1 使用了 RSA 算法进行密钥交换和身份认证,但密钥交换过程中没有进行完全的验证,容易受到中间人攻击。
  • SSH-1 的安全性受到了一些质疑,因此现在已经较少使用。

SSH-2:

  • SSH-2 是对 SSH-1 的改进和扩展,于 2006 年由 IETF(Internet Engineering Task Force)发布。
  • SSH-2 引入了更强大的加密算法和认证机制,提供了更安全、更可靠的远程登录和通信功能。
  • 它支持多种加密算法和密钥交换协议,如 RSA、DSA、ECDSA、Diffie-Hellman 等,提供了更灵活和可靠的安全机制。
  • SSH-2 在安全性、性能和功能方面都有较大的改进,成为了当前主流的 SSH 协议标准,被广泛应用于各种操作系统和平台中。

SSH-2 是目前主流的 SSH 协议版本,提供了更强大、更安全、更可靠的远程登录和管理功能,是用户进行安全远程通信的首选协议。

  

3、SSH的工作原理

SSH(Secure Shell)的工作原理基于加密通信和身份认证,主要分为以下几个步骤:

1. 建立连接:

  • 客户端向服务器发起连接请求,请求建立 SSH 连接。
  • 服务器响应连接请求,协商连接参数和加密算法。

2. 密钥交换:

  • 客户端和服务器通过 Diffie-Hellman 密钥交换协议协商会话密钥。
  • 客户端和服务器生成各自的密钥对,其中包括公钥和私钥。

3. 身份认证:

  • 客户端向服务器发送身份认证请求,提供用户身份信息。
  • 服务器验证客户端提供的身份信息,确认客户端的身份。

4. 会话加密:

  • 客户端和服务器使用协商好的会话密钥对通信数据进行加密和解密。
  • 所有的通信数据都经过加密处理,保护数据在传输过程中的安全性。

5. 数据传输:

  • 客户端和服务器之间通过安全通道进行数据传输,包括远程登录、执行命令、传输文件等操作。
  • 所有的通信数据都经过加密处理,防止数据在传输过程中被窃听、篡改和伪造。

6. 断开连接:

  • 客户端或服务器主动发起断开连接请求,终止 SSH 会话。
  • 断开连接后,会话密钥失效,通信数据无法解密,保护数据的安全性。

    三、SSH的安全特性

1、对称加密与非对称加密 

对称加密和非对称加密是两种常见的加密算法,它们在加密和解密过程中的使用方式有所不同:

对称加密(Symmetric Encryption):

  • 对称加密使用同一个密钥(称为对称密钥)进行加密和解密。
  • 加密和解密过程中使用相同的密钥,因此称为对称加密。
  • 对称加密算法通常具有较高的加密速度和效率。
  • 常见的对称加密算法有 DES(Data Encryption Standard)、AES(Advanced Encryption Standard)等。

非对称加密(Asymmetric Encryption):

  • 非对称加密使用一对密钥(称为公钥和私钥)进行加密和解密。
  • 公钥用于加密数据,私钥用于解密数据;或者私钥用于加密数据,公钥用于解密数据。
  • 非对称加密算法的加密和解密密钥是不同的,因此称为非对称加密。
  • 非对称加密算法通常具有较低的加密速度和效率,但提供了更高的安全性。
  • 常见的非对称加密算法有 RSA(Rivest-Shamir-Adleman)、DSA(Digital Signature Algorithm)、ECC(Elliptic Curve Cryptography)等。

对称加密和非对称加密各有其优缺点,可以根据实际需求和安全性要求选择合适的加密算法。通常情况下,对称加密用于加密大量数据或对称密钥的安全传输,而非对称加密用于安全的身份认证和密钥交换等场景。

  

2、SSH使用的加密算法

SSH 协议可以使用多种加密算法来保护通信数据的安全性,包括对称加密算法、非对称加密算法和哈希算法等。常见的 SSH 加密算法包括:

对称加密算法:

  • AES(Advanced Encryption Standard):AES 是一种高级加密标准,被广泛用于对称加密中,提供了高效、安全的加密和解密功能。在 SSH 中,AES 通常用于对会话数据进行加密和解密。

非对称加密算法:

  • RSA(Rivest-Shamir-Adleman):RSA 是一种常见的非对称加密算法,用于身份认证、密钥交换和数字签名等场景。在 SSH 中,RSA 通常用于密钥交换和身份认证,客户端和服务器可以使用 RSA 密钥对进行安全通信。
  • ECDSA(Elliptic Curve Digital Signature Algorithm):ECDSA 是一种基于椭圆曲线的数字签名算法,也常用于非对称加密和身份认证。在 SSH 中,ECDSA 通常用于生成和验证数字签名,确保通信数据的完整性和真实性。

哈希算法:

  • SHA(Secure Hash Algorithm):SHA 是一组安全散列算法,常用于生成消息摘要和验证数据完整性。在 SSH 中,SHA 通常用于生成消息认证码(MAC),确保通信数据的完整性和可靠性。

四、SSH的高级应用

1、SSH隧道的应用场景

SSH 隧道(SSH Tunnel)是一种通过 SSH 协议建立的加密通道,用于在不安全的网络环境中安全地传输数据。SSH 隧道的应用场景包括但不限于以下几个方面:

1. 安全访问内部网络资源:

  • 通过 SSH 隧道可以安全地访问内部网络资源,如数据库、文件共享、Web 服务等。
  • 用户可以通过 SSH 隧道在远程设备上访问内部网络资源,而无需直接暴露内部网络给公共网络。

2. 加密远程桌面访问:

  • 使用 SSH 隧道可以加密远程桌面(RDP、VNC)的访问流量,保护远程桌面会话中的数据安全性。
  • 用户可以通过 SSH 隧道远程访问桌面应用程序,而无需担心数据在传输过程中被窃听或篡改。

3. 绕过网络屏蔽和防火墙限制:

  • 在网络屏蔽或防火墙限制的网络环境中,可以使用 SSH 隧道绕过限制,访问被屏蔽的服务或网站。
  • SSH 隧道可以将网络流量通过 SSH 加密通道传输,使得网络流量看起来像是 SSH 通信,从而避免被检测和屏蔽。

4. 安全传输文件:

  • 通过 SSH 隧道可以安全地传输文件,保护文件在传输过程中的机密性和完整性。
  • 用户可以使用 SCP(Secure Copy)或 SFTP(SSH File Transfer Protocol)等工具通过 SSH 隧道传输文件,而无需担心文件泄露或被篡改。

5. 建立安全的代理服务:

  • 使用 SSH 隧道可以建立安全的代理服务,通过代理服务器访问互联网资源,保护用户的隐私和数据安全。
  • 用户可以在本地主机上建立 SSH 隧道代理,然后通过代理服务器访问互联网,实现安全的网络连接和数据传输。

   

2、SSH与Git的集成 

SSH 与 Git 的集成是一种常见的方式,用于在 Git 版本控制系统中进行安全的身份认证和数据传输。下面是 SSH 与 Git 集成的基本步骤:

1. 生成 SSH 密钥对:

  • 首先,在本地计算机上生成 SSH 密钥对,包括公钥和私钥。
  • 可以使用 ssh-keygen 命令生成 SSH 密钥对,并指定保存密钥对的路径和文件名。

2. 将公钥添加到 Git 服务器:

  • 将生成的 SSH 公钥添加到 Git 服务器的用户账户中,用于身份认证。
  • 在 Git 服务器上,一般有一个 SSH 公钥管理页面或配置文件,可以将用户的公钥添加到其中。

3. 配置 Git 客户端:

  • 配置 Git 客户端,使其使用 SSH 协议进行通信和身份认证。
  • 可以使用 git config 命令设置 Git 客户端的 SSH 相关配置,如设置 SSH 私钥路径、SSH 用户名等。

4. 使用 SSH 访问 Git 仓库:

  • 使用 SSH 协议访问 Git 仓库,通过 SSH 密钥对进行安全的身份认证。
  • 在执行 Git 操作时,如 clone、push、pull 等,Git 客户端会使用 SSH 密钥对进行身份认证,确保数据传输的安全性和可靠性。

通过以上步骤,可以将 SSH 与 Git 集成起来,实现安全的身份认证和数据传输,保护 Git 仓库中的代码和文件的安全性和完整性。SSH 提供了一种安全的通信机制,用于保护 Git 客户端和服务器之间的通信,确保数据在传输过程中不被窃听、篡改和伪造。

  

3、SSH在DevOps中的应用

1. 远程服务器管理:

  • DevOps 团队经常需要管理多台远程服务器,包括配置管理、软件部署、监控和故障排查等任务。
  • SSH 提供了安全、可靠的远程登录方式,使得 DevOps 工程师可以通过 SSH 远程登录到服务器进行管理操作。

2. 自动化部署:

  • DevOps 团队通常使用自动化工具(如 Ansible、Chef、Puppet 等)进行软件部署和配置管理。
  • 这些自动化工具通常会使用 SSH 协议与目标服务器进行通信,执行部署脚本和配置文件,实现自动化部署和配置管理。

3. 版本控制系统:

  • Git 是 DevOps 团队常用的版本控制系统,用于管理和协作开发项目代码。
  • Git 使用 SSH 协议进行安全的身份认证和数据传输,保护代码在传输过程中的安全性和完整性。

4. 持续集成与持续交付:

  • DevOps 团队通常会构建持续集成和持续交付(CI/CD)流水线,实现自动化的软件构建、测试和部署。
  • CI/CD 工具(如 Jenkins、GitLab CI、Travis CI 等)通常会使用 SSH 协议与目标服务器进行通信,执行部署任务和触发自动化流程。

5. 容器编排与管理:

  • 容器编排平台(如 Kubernetes、Docker Swarm 等)用于管理和调度容器化应用程序。
  • SSH 协议可以用于与容器主机进行通信,执行容器管理命令和监控操作,实现容器编排和管理。

6. 安全审计与监控:

  • SSH 提供了安全的远程登录和通信方式,能够记录用户的登录和操作日志。
  • DevOps 团队可以通过 SSH 登录日志进行安全审计和监控,及时发现异常行为和安全风险。

   

💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺

🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!

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

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

相关文章

大学物理实验 期末复习笔记整理(个人复习笔记/侵删/有不足之处欢迎斧正)

一、误差和数据处理 1. 系统误差是指在重复性条件下,对同一被测量进行无限多次测量所得结果的平均值与被测量的真值之差。它通常是由于测量设备、测量方法或测量环境等因素引起的,具有重复性、单向性和可测性。而随机误差则是由于测量过程中一系列有关因…

CP AUTOSAR之CANXL Driver详细说明(正在更新中)

本文遵循autosar标准:R22-11 1 简介及功能概述 本规范描述了AUTOSAR 基础软件模块CAN XL 驱动程序的功能、API和配置。   本文档的基础是[1,CiA610-1]和[2,CiA611-1]。假设读者熟悉这些规范。本文档不会再次描述CAN XL 功能。   CAN XL 驱动程序是最低层的一部…

NETBIOS和DNS

Netbios NETBIOS只能工作在局域网。 NetBIOS(Network Basic Input/Output System, 网络基本输入输出系统)是一种接入服务网络的接口标准。主机系统通过WINS服务、广播及lmhosts文件多种模式,把NetBIOS名解析对应的IP地址,实现信…

MySQL中JOIN连接的实现算法

目录 嵌套循环算法(NLJ) 简单嵌套循环(SNLJ) 索引嵌套循环(INLJ) 块嵌套循环(BNLJ) 三种算法比较 哈希连接算法(Hash Join) 注意事项: 工…

Linux入门攻坚——22、通信安全基础知识及openssl、CA证书

Linux系统常用的加解密工具:OpenSSL,gpg(是pgp的实现) 加密算法和协议: 对称加密:加解密使用同一个秘钥; DES:Data Encryption Standard,数据加密标准&…

最后一块石头的重量 II ,目标和,一和0

最后一块石头的重量 II(0-1背包问题 将石头尽可能分为两堆重量一样的,进行相撞则为0 class Solution {public int lastStoneWeightII(int[] stones) {int sum0;for(int x:stones){sumx;}int targetsum/2;int[] dpnew int[target1];//dp[j]表示最大石堆的…

kubeflow简单记录

kubeflow 13.7k star 1、Training Operator 包括PytorchJob和XGboostJob,支持部署pytorch的分布式训练 2、KFServing快捷的部署推理服务 3、Jupyter Notebook 基于Web的交互式工具 4、Katib做超参数优化 5、Pipeline 基于Argo Workflow提供机器学习流程的创建、编排…

上海亚商投顾:沪指窄幅震荡 两市成交额跌破万亿

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日缩量震荡,深成指、创业板指小幅调整,黄白二线分化明显。合成生物概念反复活跃…

网络安全之动态路由RIP详解

RIP:路由信息协议 RIP分为三个版本:RIPV1,RIPV2(在IPv4中使用),RIPNG(在IPv6中使用) RIPV1是一种有类别的距离矢量型路由协议(不传递网络掩码)。 RIPV2是一种无类别的距离矢量型路…

【机器学习】自然语言引导下的单目深度估计:泛化能力与鲁棒性的新挑战

自然语言引导下的单目深度估计:泛化能力与鲁棒性的新挑战 一、自然语言引导下的单目深度估计进展二、泛化能力与鲁棒性的挑战三、评估方法与实验验证四、代码实例与未来展望 在人工智能领域,单目深度估计一直是一个备受关注的热点问题。通过单张图片推断…

IIoT:数据融合在工业物联网中的应用——青创智通

工业物联网解决方案-工业IOT-青创智通 随着科技的不断发展,工业物联网(IIoT)已经逐渐渗透到各个行业,为企业的生产和管理带来了前所未有的便利。 然而,与此同时,海量的数据也为企业带来了挑战。如何将这些…

Llama 3 超级课堂

https://github.com/SmartFlowAI/Llama3-Tutorial/tree/main 第一节作业 streamlit run web_demo.py /root/share/new_models/meta-llama/Meta-Llama-3-8B-Instruct

【痕迹】QQ+微信朋友圈和聊天记录分析工具1.0.3

【痕迹】QQ微信朋友圈和聊天记录分析工具1.0.3 (1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。 (2)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型…

Mybatis报错sql injection violation, syntax error: TODO :IDENTIFIER

今天被这个报错搞了一下午 <select id"getMmZxZffs" resultType"cn.vetech.asms.pay.service.freepwdpay.vo.ZxZffsQueryVO" parameterType"cn.vetech.asms.pay.service.freepwdpay.dto.ZxZffsQueryDTO">select t.A skFs,t.B,t.C skFsm…

Web前端一套全部清晰 ⑥ day4 CSS.2 复合选择器、CSS特性、背景属性、标签的显示模式

别人的议论&#xff0c;那是别人的&#xff0c;你的人生&#xff0c;才是你的 —— 24.5.7 一、复合选择器 定义&#xff1a;由两个或多个基础选择器&#xff0c;通过不同的方式组合而成 作用&#xff1a;更准确、更高效的选择目标元素&#xff08;标签&#xff09; 1.后代选择…

软件设计师-应用技术-数据结构及算法题4

考题形式&#xff1a; 第一题&#xff1a;代码填空 4-5空 8-10第二题&#xff1a;时间复杂度 / 代码策略第三题&#xff1a;拓展&#xff0c;跟一组数据&#xff0c;把数据带入代码中&#xff0c;求解 基础知识及技巧&#xff1a; 1. 分治法&#xff1a; 基础知识&#xff1…

FMEA助力智能电网升级:构建安全、高效、可靠的电力网络

随着科技的不断进步&#xff0c;智能电网已成为现代电力行业的重要发展方向。而在这个过程中&#xff0c;FMEA&#xff08;失效模式和影响分析&#xff09;作为一种重要的质量管理工具&#xff0c;正日益发挥着其在智能电网建设中的赋能作用。本文将从FMEA的基本概念出发&#…

WIFI模块UDP电脑端调试

一&#xff0c;两端都是电脑端 1&#xff0c;电脑本机的IP地址 192.168.137.1 2&#xff0c;新建两个不同的连接&#xff0c;注意端口 二&#xff0c;WIFI 模块和电脑端连接 1&#xff0c;设置模块端目标IP和端口&#xff0c;电脑端只接收数据的话&#xff0c;IP、端口可随…

cmake进阶:目录属性之 INCLUDE_DIRECTORIES说明二

一. 简介 前面几篇文章学习了 cmake的一些目录属性&#xff0c;主要有两个重要的目录属性INCLUDE_DIRECTORIES 属性、LINK_DIRECTORIES 属性。文章如下&#xff1a; cmake进阶&#xff1a;目录属性之 INCLUDE_DIRECTORIES-CSDN博客 本文学习 父目录的 INCLUDE_DIRECTORIES …

three.js 效果细节提升

1. three.js 效果细节提升 加载模型时&#xff0c;给模型设置接受阴影&#xff0c;反射阴影 gltfLoader.load("./model/court-transformed.glb", (gltf) > {gltf.scene.traverse(child > {if (child.isMesh) {child.castShadow true; // 设置阴影可以投射阴…