NAT 代理服务 内网穿透

🌈 个人主页:Zfox_
🔥 系列专栏:Linux

目录

  • 一:🔥 NAT 技术背景
  • 二:🔥 NAT IP 转换过程
  • 三:🔥 NAPT
  • 四:🔥 代理服务器
    • 🦋 正向代理
      • 概述
      • 工作原理
      • 功能特点
      • 应用场景
    • 🦋 反向代理
      • 概述
      • 基本原理
      • 应用场景
    • 🦋 NAT 和代理服务器
  • 五:🔥 内网穿透 和 内网打洞
    • 🦋 内网穿透
      • 1. 背景
        • (1)私有IP地址的限制
        • (2)NAT(网络地址转换)的限制
        • (3)防火墙的限制
    • 🦋 内网打洞
      • 内网打洞的工作原理
      • 内网打洞的优缺点
        • 优点:
        • 缺点:
      • 适用场景
  • 六:🔥 总结
    • 🦋 数据链路层
    • 🦋 网络层
    • 🦋 传输层
    • 🦋 应用层
  • 七:🔥 共勉

一:🔥 NAT 技术背景

💬 今天我们来聊聊网络世界里一个超重要的技术 —— NAT(网络地址转换)。你有没有想过,为啥我们家里的电脑、手机,还有公司里的各种设备,都能同时连上网,但又不会互相冲突呢?这就得感谢 NAT

🕸️ IPv4 地址不够用,这事儿大家都清楚。NAT 就像是一个超级聪明的 “翻译官”,它能把我们内网里的私有IP地址(比如192.168.1.x)转换成公网能识别的全局IP地址。这样,我们就能在有限的公网IP下,让无数设备同时上网!

🌰 举个例子,学校里可能有几百台电脑,但学校只需要一个公网IP,NAT 就能搞定这一切。公网IP必须是独一无二的,但私有IP就随便多了,不同的局域网里完全可以重复用,一点儿问题都没有。

二:🔥 NAT IP 转换过程

那么这样在网络通信过程中势必会造成问题,因为私有IP并不是唯一的,所以私有IP不能出现在公网通信中的。解决这个问题的机制就是 NAT 机制。NAT 机制即在路由器进行转发时将报文源IP更换为 路由器WAN口IP 进行一次源IP地址替换! 这样就可以私有IP就不会出现在公网中!并且在通信过程中够可以层层向下找到唯一的主机!

NAT IP 转换过程

  • NAT 路由器将源地址从 10.0.0.10 替换成全局的 IP 202.244.174.37
  • NAT 路由器收到外部的数据时,又会把目标 IP 从 202.244.174.37 替换回 10.0.0.10
  • NAT 路由器内部,有一张自动生成的、用于地址转换的表 NAPT
  • 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系。

三:🔥 NAPT

🤔 那么问题来了,如果局域网内有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的 IP 都是相同的。那么 NAT 路由器如何判定将这个数据包转发给哪个局域网的主机?这时候 NAPT 来解决这个问题了。使用 IP+port 来建立这个关联关系。

NAPT

这种关联关系也是由 NAT 路由器自动维护的。例如在 TCP 的情况下,建立连接时就会生成这个表项;在断开连接后,就会删除这个表项。

路由器之中,进行转发时,维护了一张 NAPT 转换表。其中记录目的 IP + 端口号portWAN口IP + 端口号port 的映射关系,互为键值。这两个都具有唯一性:局域网唯一,公网唯一!源IP发生替换,源端口也可能发生替换!这样保证了映射的唯一性!

每个路由器在转发过程中都会生成一份NAPT 表,最终就可以到达公网进行通信!这样其实也说明了一个问题,公网是无法直接访问内网机器的,只有内网机器向公网发送过数据,建立过 NAPT 表,才能从外部进入内部!

所以 NAT 技术是有缺陷的,由于 NAT 依赖这个转换表, 所以有诸多限制:

  • 无法从 NAT 外部向内部服务器建立连接。
  • 转换表的生成和销毁都需要额外开销。
  • 通信过程中一旦 NAT 设备异常,即使存在热备,所有的 TCP 连接也都会断开。

使用 WIndows 访问我们的 Linux 服务端时,我们仔细观察会发现服务端接收到的IP地址和 WIndows 端是不一致的!
这也是由于路由器 NAT转发的结果!Linux 服务上的实际获取到的IP是出入口路由器的 WAN口IP

四:🔥 代理服务器

🦋 正向代理

概述

正向代理Forward Proxy是一种常见的网络代理方式,它位于客户端和目标服务器之间,代表客户端向目标服务器发送请求。正向代理服务器接收客户端的请求,然后将请求转发给目标服务器,最后将目标服务器的响应返回给客户端。通过这种方式,正向代理可以实现多种功能,如提高访问速度、隐藏客户端身份、实施访问控制等。

正向代理

工作原理

  • 客户端将请求发送给正向代理服务器。
  • 正向代理服务器接收请求,并根据配置进行处理,如缓存查找、内容过滤等。
  • 正向代理服务器将处理后的请求转发给目标服务器。
  • 目标服务器处理请求,并将响应返回给正向代理服务器。
  • 正向代理服务器将响应返回给客户端。

功能特点

  • 缓存功能:正向代理服务器可以缓存经常访问的资源,当客户端再次请求这些资源时,可以直接从缓存中获取,提高访问速度。
  • 内容过滤:正向代理可以根据预设的规则对请求或响应进行过滤,如屏蔽广告、阻止恶意网站等。
  • 访问控制:通过正向代理,可以实现对特定网站的访问控制,如限制员工在工作时间访问娱乐网站。
  • 隐藏客户端身份:正向代理可以隐藏客户端的真实 IP 地址,保护客户端的隐私。
  • 负载均衡:在多个目标服务器之间分配客户端请求,提高系统的可扩展性和可靠性。

应用场景

  • 企业网络管理:企业可以通过正向代理实现对员工网络访问的管理和控制,确保员工在工作时间内专注于工作,避免访问不良网站或泄露公司机密。
  • 公共网络环境:在公共场所如图书馆、学校等提供的网络环境中,通过正向代理可以实现对网络资源的合理分配和管理,确保网络使用的公平性和安全性。
  • 内容过滤与保护:家长可以通过设置正向代理来过滤不良内容,保护孩子免受网络上的不良信息影响。
  • 提高访问速度:对于经常访问的网站或资源,正向代理可以通过缓存机制提高访问速度,减少网络延迟。
  • 跨境电商与海外访问:对于跨境电商或需要访问海外资源的企业和个人,正向代理可以帮助他们突破网络限制,顺畅地访问海外网站和资源。

🦋 反向代理

概述

🛜 反向代理服务器 是一种网络架构模式,其作为 Web 服务器的前置服务器,接收来自客户端的请求,并将这些请求转发给后端服务器,然后将后端服务器的响应返回给客户端。这种架构模式可以提升网站性能、安全性和可维护性等。

反向代理

基本原理

🍑 反向代理服务器位于客户端和 Web 服务器之间,当客户端发起请求时,它首先会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端的 Web 服务器,并将 Web 服务器的响应返回给客户端。在这个过程中,客户端并不知道实际与哪个 Web 服务器进行了交互,它只知道与反向代理服务器进行了通信。

应用场景

  • 负载均衡:反向代理服务器可以根据配置的负载均衡策略,将客户端的请求分发到多个后端服务器上,以实现负载均衡。这有助于提升网站的整体性能和响应速度,特别是在高并发场景下。
  • 安全保护:反向代理服务器可以隐藏后端 Web 服务器的真实 IP 地址,降低其被直接攻击的风险。同时,它还可以配置防火墙、访问控制列表(ACL)等安全策略,对客户端的请求进行过滤和限制,以保护后端服务器的安全。
  • 缓存加速:反向代理服务器可以缓存后端 Web 服务器的响应内容,对于重复的请求,它可以直接从缓存中返回响应,而无需再次向后端服务器发起请求。这可以大大减少后端服务器的负载,提升网站的响应速度。
  • 内容过滤和重写:反向代理服务器可以根据配置的规则对客户端的请求进行过滤和重写,例如添加或删除请求头、修改请求路径等。这有助于实现一些特定的业务需求,如 URL 重写、用户认证等。
  • 动静分离:在大型网站中,通常需要将静态资源和动态资源分开处理。通过将静态资源部署在反向代理服务器上,可以直接从反向代理服务器返回静态资源的响应,而无需再次向后端服务器发起请求。这可以大大提升静态资源的访问速度。
  • CDN(Content Delivery Network,内容分发网络):就是采用了反向代理的原理。

🦋 NAT 和代理服务器

🍑 路由器往往都具备 NAT 设备的功能,通过 NAT 设备进行中转,完成子网设备和其他子网设备的通信过程。代理服务器看起来和 NAT 设备有一点像。客户端像代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器;服务器返回结果后,代理服务器又把结果回传给客户端。

那么 NAT 和代理服务器的区别有哪些呢?

  • 从应用上讲NAT 设备是网络基础设备之一,解决的是 IP 不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器。
  • 从底层实现上讲NAT 是工作在网络层,直接对 IP 地址进行替换。代理服务器往往工作在应用层。
  • 从使用范围上讲NAT 一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网做,也可以跨网。
  • 从部署位置上看NAT 一般集成在防火墙、路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上。

代理服务器是一种应用比较广的技术:

  • 翻墙:广域网中的代理。
  • 负载均衡:局域网中的代理。

代理服务器又分为正向代理和反向代理:

  • 正向代理:用于请求的转发(例如借助代理绕过反爬虫)。
  • 反向代理:往往作为一个缓存。

五:🔥 内网穿透 和 内网打洞

🦋 内网穿透

内网穿透是一种网络技术,用于解决内网设备与外部网络之间通信的问题。它可以让外部设备访问内网中的设备或服务,而无需直接暴露内网设备的IP地址,从而在一定程度上兼顾了安全性和可访问性。

1. 背景

在大多数网络环境中,内网设备(如家庭路由器内的设备、公司内部网络中的服务器等)通常被隐藏在路由器或防火墙之后,无法直接从外部网络访问。这主要是由于以下原因:

(1)私有IP地址的限制

内网设备通常使用私有IP地址(如192.168.x.x),这些地址只能在局域网内使用,无法在公网中直接访问。私有IP地址的范围包括:

  • 10.0.0.010.255.255.255
  • 172.16.0.0172.31.255.255
  • 192.168.0.0192.168.255.255

这些地址在互联网中是不可路由的,因此外部设备无法直接通过这些地址访问内网设备。

(2)NAT(网络地址转换)的限制

内网设备通过路由器访问外网时,路由器会将内网设备的私有IP地址转换为公网IP地址(即路由器的WAN口IP)。这个过程称为网络地址转换(NAT)。NAT的作用是:

  • 节省内公网IP地址资源。
  • 保护内网设备的安全性。

然而,NAT机制也导致了外部设备只能看到路由器的公网IP,而无法直接访问内网设备的私有IP。

(3)防火墙的限制

防火墙是网络中的安全屏障,通常会阻止外部设备直接访问内网设备,以保护内网的安全。防火墙的作用包括:

  • 阻止未经授权的访问。
  • 过滤恶意流量。
  • 保护内网设备免受攻击。

防火墙的限制进一步增加了内网设备对外部访问的难度。

内网穿透

如果今天可以做到:

首先我们拥有一台云服务器,并且在内网构建一台 Linux 机器,使用 22 端口部署了一个 SSH 服务,可以与云服务器建立连接。云服务器也部署一个服务,可以将机器上所有 8888 端口获取的数据转发到内网的 Linux 服务器上。这样,云服务器的 8888 端口与内网服务器的 22 端口就建立了映射。那么其他内网的机器可以通过访问云服务器的8888 端口直接访问到内网的 Linux 机器。这叫做 内网穿透技术

我们可以在云服务器上使用 frp 软件进行内网穿透服务:

  • 服务器:拥有一台具有公网IP地址的服务器,作为 FRP 的服务端。
  • 客户端:需要穿透的内网机器,作为 FRP 的客户端。

为什么要进行内网穿透呢?内网穿透有以下优点:

  • 成本效益:内网穿透可以避免购买服务器公网IP地址的高昂成本,同时也能实现公网服务的功能。
  • 访问限制:由于 NAT(网络地址转换)和防火墙的存在,内网中的设备通常无法直接从外网访问。内网穿透技术可以帮助绕过这些限制,使得内网服务可以被外网访问。
  • 资源共享:内网穿透使得个人或企业可以将其内网中的资源(如文件服务器、Web服务、数据库等)分享给外网的用户,而无需复杂的网络配置。
  • 远程管理:系统管理员可以通过内网穿透技术,从外部网络远程管理内网中的服务器或设备,方便进行维护和监控。可以实现远程访问公司服务器进行办公。
  • 开发与测试:开发者可以在内网环境中开发应用程序,并通过内网穿透技术让外网的测试人员或合作伙伴访问,以便进行测试和反馈。
  • 安全性:内网穿透可以提供一种更安全的远程访问方式。通过配置,可以限制哪些外部地址可以访问内网服务,从而保护内网资源不被未经授权的访问。

🦋 内网打洞

在上述场景中,客户端最终被云服务器获取的源IP是出入口路由器的 WAN口IP 。服务端通过配置会有内网服务器的 IP地址端口号。那么,可不可以将服务端的 IP+port 发给客户端,客户端的 IP+port 发给服务端呢?

答案是可以的。这样客户端就可以直接向内网服务器进行访问,服务端也可以直接给客户端发送数据。这种技术就叫做 内网打洞!这种方式直接跨过了云服务器,在出入口路由器上打了一个洞,可以直接进行访问。

内网打洞

内网打洞的工作原理

  1. 信息交换

    • 客户端和服务端通过云服务器交换彼此的 WAN口IP端口号
    • 云服务器作为中介,将客户端的 IP+port 发送给服务端,同时将服务端的 IP+port 发送给客户端。
  2. 建立直接连接

    • 客户端和服务端分别使用对方的 IP+port 尝试建立直接连接。
    • 由于双方的 WAN口IP端口号 已经交换,路由器会允许这种直接通信。
  3. 绕过云服务器

    • 一旦直接连接建立成功,客户端和服务端就可以绕过云服务器,直接进行数据传输。
    • 这种方式不仅减少了云服务器的负载,还提高了数据传输的效率。

内网打洞的优缺点

优点:
  • 高效性:直接通信减少了中间环节,提高了数据传输速度。
  • 降低成本:减少了对云服务器的依赖,降低了带宽和计算资源的消耗。
  • 灵活性:适用于需要频繁通信的场景,如实时音视频传输、在线游戏等。
缺点:
  • 路由器限制:部分路由器可能不支持 NAT 打洞,导致无法建立直接连接。
  • 安全性问题:直接暴露 WAN口IP端口号 可能增加被攻击的风险。
  • 复杂性:实现内网打洞需要对网络协议有较深的理解,且调试和维护成本较高。

适用场景

  • P2P 网络:如文件共享、区块链网络等。
  • 实时通信:如视频会议、在线游戏等。
  • 物联网设备:设备之间需要直接通信的场景。

需要注意的是,一些出入口路由器可能不允许进行内网打洞。这里我们只需要了解其原理即可。

六:🔥 总结

🦋 数据链路层

  • 数据链路层的作用:两个设备(同一种数据链路节点)之间进行传递数据。
  • 以太网:是一种技术标准;既包含了 数据链路层 的内容,也包含了一些 物理层 的内容。例如:规定了网络拓扑结构、访问控制方式、传输速率等。
  • 以太网帧格式
  • 理解 MAC 地址
  • 理解 ARP 协议
  • 理解 MTU

🦋 网络层

  • 网络层的作用:在复杂的网络环境中确定一个合适的路径。
  • 理解 IP 地址:理解 IP 地址MAC 地址的区别。
  • 理解 IP 协议格式
  • 了解网段划分方法
  • 理解如何解决 IP 数目不足的问题:掌握网段划分的两种方案。理解私有 IP公网 IP
  • 理解网络层的 IP 地址路由过程:理解一个数据包如何跨越网段到达最终目的地。
  • 了解 IP 数据包分包的原因
  • 了解 ICMP 协议
  • 了解 NAT 设备的工作原理

🦋 传输层

  • 传输层的作用:负责数据能够从发送端传输到接收端。
  • 理解 端口号的概念
  • 认识 UDP 协议:了解 UDP 协议的特点。
  • 认识 TCP 协议:理解 TCP 协议的可靠性。理解 TCP 协议的状态转化。
  • 掌握 TCP 的连接管理:确认应答、超时重传、滑动窗口、流量控制、拥塞控制、延迟应答、捎带应答特性。
  • 理解 TCP 面向字节流:理解粘包问题和解决方案。
  • 能够基于 UDP 实现可靠传输
  • 理解 MTUUDP/TCP 的影响

🦋 应用层

  • 应用层的作用:满足我们日常需求的网络程序,都在应用层。
  • 能够根据自己的需求:设计应用层协议。
  • 了解 HTTP 协议
  • 理解 DNS 的原理和工作流程

七:🔥 共勉

🎆 🧨 fq 草图讲解 彩蛋:
在这里插入图片描述

😋 以上就是我对 NAT & 代理服务 & 内网穿透 的理解, 觉得这篇博客对你有帮助的,可以点赞收藏关注支持一波~ 😉
在这里插入图片描述

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

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

相关文章

Apache IoTDB 树表双模型直播回顾(下)

2 月 26 日面向 Apache IoTDB 树表双模型的功能特性、适用场景、建模选择和未来规划,田原同学通过直播进行了全面解答。以下为直播讲稿(下),干货满满,建议收藏⬇️⬇️ ⚡️注意: 1. 功能演示部分请直接查看…

LabVIEW中交叉关联算法

交叉关联算法通过统计多通道信号间的相关性,抑制各通道独立的本底噪声,保留共有的有效信号成分。其数学本质为对多个通道信号进行两两相乘并累加,最终通过归一化处理得到降噪后的输出信号。 这个VI演示了如何在LabVIEW中执行信号的互相关分析…

手撸大模型-基础篇 简单线性回归模型预测房价

# NumPy Pandas Matplotlib import numpy as np import matplotlib.pyplot as plt 双特征,矩阵化 1. Min-Max 归一化及其逆操作 1.1 输入数据归一化 def normalize1(sample, data): max_value np.max(data) min_value np.min(data) return (samp…

使用UA-SPEECH和TORGO数据库验证自动构音障碍语音分类方法

使用UA-SPEECH和TORGO数据库验证自动构音障碍语音分类方法 引言 原文:On using the UA-Speech and TORGO databases to validate automatic dysarthric speech classification approaches 构音障碍简介 构音障碍是一种由于脑损伤或神经疾病(如脑瘫、肌萎缩侧索硬化症、帕金森…

React底层原理详解

React中Element&Fiber对象、WorkInProgress双缓存、Reconcile&Render&Commit、第一次挂载过程详解 在面试中介绍React底层原理时,需遵循逻辑清晰、层次分明、重点突出的原则,结合技术深度与实际应用场景。以下是结构化回答模板:…

el-table修改表格颜色

文章目录 一、el-table属性修改表格颜色1.1、header-row-class-name修改表头行颜色1.2、header-row-style修改表头样式1.3、row-class-name修改行颜色 二、el-table-column属性修改表格颜色2.1、class-name修改整列的颜色2.2、label-class-name修改列标题颜色 本文讲解vue修改e…

Graphics View画一个可调速的风机(pyqt)

效果如图: 风机具备调节转速的功能,转速通过扇叶旋转的快慢来区别,共分为四档,其中零档为静止状态,而一、二、三档则依次增加转速。在代码中,BlowerWrapper 类包含了可旋转的扇叶、风机外框以及选项三个主要…

SP脏迹Dirt生成器

常用生成器之一 用于模型表面生成污垢和脏迹 添加一个填充图层 添加黑色遮罩 添加生成器 选择Dirt 调整强度 如果UV有接缝就把Use Triplanar打开

AnyDesk 远程桌面控制软件 v9.0.2

AnyDesk 是一款功能强大的跨平台远程桌面控制软件。它支持 Windows、MacOS、Linux 和 Android 系统,同时 iOS 也在其支持范围内。其主要功能包括远程桌面控制,用户能远程访问其他计算机或移动设备,用于远程协作、支持和教授等,可实…

关于延迟任务线程池,Java提供的ScheduledThreadPoolExecutor,Spring提供的ThreadPoolTaskScheduler

今天讲解定时任务、延迟任务的线程池使用方式: 1、从 java 角度 2、从 Spring 框架角度 文章目录 Java提供:ScheduledExecutorService接口(创建延迟任务线程池)① 用法1:1. 重写afterExecute方法2. .schedule()方法调度…

Python PDF文件拆分-详解

目录 使用工具 将PDF按页数拆分 将PDF的每一页拆分为单独的文件 将PDF按指定页数拆分 根据页码范围拆分PDF 根据指定内容拆分PDF 将PDF的一页拆分为多页 在日常生活中,我们常常会遇到大型的PDF文件,这些文件可能难以发送、管理和查阅。将PDF拆分成…

链表的概念及功能实现

一、链表之单向链表 前面我们使用顺序储存结构实现的顺序表,虽然查询的时候很快,但在进行元素的增加或者删除的时候:比较麻烦,需要你去移动大量的元素把数据删除或者增加。 链表里的数据是以结点方式来表示的,每一个结点的组成是…

【Python 语法】算法合集

查找二分查找代码大 O 表示法 广度优先搜索代码 狄克斯特拉算法 递归递归调用栈 分而治之(divide and conquer,D&C)贪心教室调度问题背包问题集合覆盖问题 动态规划背包问题旅游行程最优化 遇到问题时, 如果不确定该如何 高效…

Android 应用开发中,证书、签名和加固简述

在 Android 应用开发中,证书、签名和加固是保障应用安全和完整性的重要机制,各自作用如下: 一、应用证书(Digital Certificate) 作用: 身份标识:证书包含开发者的公钥、组织信息等,用…

在什么情况下需要使用光谱相机呢?

1.需要捕捉不可见光信息时 光谱相机不仅能捕捉可见光,还能记录红外、紫外等波段的光谱信息。以下场景尤其适用: 环境监测:检测水质、空气污染物等肉眼无法观察的物质。 农业监测:分析植物的近红外反射率,判断作物健…

一周一个Unity小游戏2D反弹球游戏 - 球板的发球

前言 本文将实现当游戏开始时球在球板上,且不具备物理性,在Windows平台上通过点击屏幕来球发射,安卓平台上当手指触摸到屏幕上时进行发球,并此时开始具备物理性。 发球逻辑 首先在球板上创建一个球的发射点,新建一个空的游戏物体,并命名为BallPoint,并将其作为SpringBoa…

【算法】图论 —— Floyd算法 python

洛谷 B3647 【模板】Floyd 题目描述 给出一张由 n n n 个点 m m m 条边组成的无向图。 求出所有点对 ( i , j ) (i,j) (i,j) 之间的最短路径。 输入格式 第一行为两个整数 n , m n,m n,m,分别代表点的个数和边的条数。 接下来 m m m 行,每行三…

从实例出发,讲解BLE专业调试工具nRF Connect

nRF Connect是NORDIC Semiconductor提供的一套强大的低功耗蓝牙(BLE)开发工具和应用程序,本文从两个示例着手分析:iBeacon和Eddystone协议的信标Beacon 前置知识:什么是信标Beacon? 信标(Beacon…

[STM32]从零开始的STM32 BSRR、BRR、ODR寄存器讲解

一、前言 学习STM32一阵子以后,相信大家对STM32 GPIO的控制也有一定的了解了。之前在STM32 LED的教程中也教了大家如何使用寄存器以及库函数控制STM32的引脚从而点亮一个LED,之前的寄存器只是作为一个引入,并没有深层次的讲解,在教…

使用Truffle、Ganache、MetaMask、Vue+Web3完成的一个简单区块链项目

文章目录 概要初始化Truffle项目创建编写合约编译合约配置Ganache修改truffle-config.js文件编写迁移文件部署合约使用Truffle 控制台使用MetaMask和VueWeb3与链交互 概要 使用Truffle、Ganache、MetaMask、VueWeb3完成的一个简单区块链项目。 初始化Truffle项目 安装好truf…