【AWS实验】 配置中转网关及对等连接

文章目录

    • 实验概览
    • 目标
    • 实验环境
    • 任务 1:查看网络拓扑并创建基准
    • 任务 2:创建中转网关
    • 任务 3:创建中转网关挂载
    • 任务 4:创建中转网关路由表
      • 任务 4.1:创建路由表关联
      • 任务 4.2:创建路由传播
    • 任务 5:更新 VPC 路由表
      • 任务 5.1:网络验证
    • 任务 6:创建与远程区域中转网关的对等连接
      • 任务 6.1:记录远程区域的中转网关 ID
      • 任务 6.2:创建中转网关对等连接
      • 任务 6.3:接受中转网关对等连接请求 – 远程区域
      • 任务 6.4:更新路由表关联 – 远程区域
      • 任务 6.5:更新中转网关路由表 – 远程区域
      • 任务 6.6:更新 VPC 路由表 – 远程区域
      • 任务 6.7:网络验证
    • 任务 7:创建路由筛选条件
      • 任务 7.1:网络验证
    • 任务 8:可视化和分析网络(可选)
      • 任务 8.1:将网络可视化
      • 任务 8.2:分析路由
    • 总结

实验概览

可以使用对等连接来连接 Amazon Virtual Private Cloud (Amazon VPC)。但是,如果无法集中管理连接策略,那么跨多个 Amazon VPC 管理点到点连接可能会造成运营成本高昂且操作繁琐。对于本地连接,需要将 AWS VPN 附加到每个单独的 Amazon VPC。当 VPC 数量增长到数百个时,这种解决方案的构建可能非常耗时,而且难以管理。

使用 AWS Transit Gateway只需要创建和管理从中央网关到网络中每个 VPC、本地数据中心或远程办公室的一条连接。中转网关就像一个轮轴,控制着流量在连接的所有网络之间的路由方式,而这些网络就像辐条一样。这种轴辐式模型可以显著简化管理工作并降低运营成本,因为每个网络只需连接到中转网关,而不是连接到所有其他网络。将任何新的 VPC 连接到中转网关,然后该 VPC 就会自动向连接到中转网关的所有其他网络开放。这种易连接性让您能够随着需求的增长轻松地扩展网络。

在本实验中,将通过中转网关来构建和配置路由,这些中转网关具有不同的复杂程度。首先,将检查现有 VPC、子网、路由表和 Amazon Elastic Compute Cloud (Amazon EC2) 实例。然后,将创建一个中转网关并将四个现有 VPC 附加到该网关。需要研究中转网关上的默认路由表,该路由表可以让附加到中转网关的 VPC 进行多对多通信。在确认中转网关正常运行后,需要修改该中转网关上的路由表,以便隔离特定 VPC 之间的通信。最后,需要跨区域边界建立两个中转网关的对等连接,以便展示如何配置具有中转网关的全局网络。

能够在不同 AWS 区域之间建立中转网关对等连接,客户就可以扩展这种连接,并建立跨多个 AWS 区域的全局网络。使用区域间中转网关对等连接的流量会始终留在 AWS 全球网络中,永远不会通过公共互联网。这可以减少威胁载体,例如常见攻击和分布式拒绝服务 (DDoS) 攻击。区域间中转网关对等连接可以加密区域间的流量,而且不会发生单点故障。

目标

完成本实验后,将能够:

  • 配置中转网关
  • 将 VPC 附加到中转网关
  • 使用 AWS Transit Gateway 控制和自定义路由
  • 建立两个区域之间的中转网关对等连接
  • 使用 Network Manager 可视化和分析您的网络

实验环境

本实验在主区域的不同 VPC 上预置了四个 EC2 实例。在远程区域中预置了一个 EC2 实例和一个中转网关。将在主区域中配置一个中转网关,将 VPC 附加到该中转网关,更新路由,然后验证主区域中的所有 EC2 实例是否能相互通信。然后,将建立中转网关与远程区域的对等连接,并验证所有 EC2 实例之间的网络连接。最后,将创建路由筛选条件来限制特定 VPC 之间的连接

所有后端组件(例如 Amazon EC2 实例和 AWS Identity and Access Management (IAM) 角色)都已内置于实验中。

AWS Transit Gateway:将 Amazon VPC 和本地网络连接到单个网关。利用 Transit Gateway,网络将得到简化并可以扩展。

Amazon VPC:在定义的虚拟网络中启动 AWS 资源。这种虚拟网络与您在自己的数据中心中运行的传统网络极其相似,并且可以让使用 AWS 的可扩展基础设施。

AWS Transit Gateway Network Manager:跨 AWS 和本地站点集中管理您的网络。在集中式控制面板中将您的全局网络可视化为逻辑示意图或地图。通过 Amazon CloudWatch 指标和事件监控您的网络,以便了解网络拓扑、路由和连接状态的变化。

下图显示了为本实验预置的资源以及在实验开始时连接这些资源的方式:

image-20230903111427122


任务 1:查看网络拓扑并创建基准

在此任务中,使用互联网控制消息协议 (ICMP) 来验证命令主机与其他主机之间的网络可访问性。已经配置了四个 Amazon EC2 实例,标记为主机 A 到 D,这些实例位于同一个主区域,每个都有自己的 VPC。主机 A 在一个公有子网中,将被用作命令主机。下图显示了实验环境中的当前配置:

image-20230903111650516

现在,对每个实例的私有 IP 地址执行 Ping 操作。IP 地址可以在实验页面的左侧找到。完成后续步骤后,在文本编辑器中记录结果。表的示例如下:

image-20230903112101373

表 A:Ping 测试结果

主机结果
主机 B通过/失败
主机 C通过/失败
主机 D通过/失败

运行以下命令。将 替换为EC2的 HostB IP 地址:【重复上述步骤,对 HostCHostD 执行 Ping 操作。】

ping <Host IP address>

image-20230903112447138

注意:由于每个主机都在自己的私有子网中,而且各主机之间没有配置路由,预计对每个主机执行的 ICMP Ping 操作都会出现超时失败。


任务 2:创建中转网关

在此任务中,将在主区域创建一个中转网关中转网关是一种网络传输枢纽,可以将同一账户或不同账户内挂载的资源(VPC 和 VPN)互联。

image-20230903112550937

AWS 管理控制台中,使用 AWS 搜索栏搜索 VPC,然后从结果列表中选择该服务。

在左侧导航窗格中,向下滚动到 Transit Gateways(中转网关)部分。

选择 Transit Gateways(中转网关)。

在页面顶部,选择 Create transit gateway(创建中转网关)。

image-20230903112746441

配置以下各项:

  • Name tag(名称标签):maintransitgw
  • Amazon side ASN(Amazon 端 ASN):65001
  • 取消选中 VPN ECMP support(VPN ECMP 支持)
  • 取消选中 Default route table association(原定设置路由表关联)
  • 取消选中 Default route table propagation(原定设置路由表传播)
  • 选择 创建中转网关 按钮。

现在已将私有自治系统编号 (ASN) 用于中转网关,并为附加到中转网关的 VPC 启用了 DNS 支持。

PS:边界网关协议 (BGP) 会话的 AWS 端的自治系统编号 (ASN)。可以使用原定设置的 ASN,也可以在 64512-65534 或 4200000000-4294967294 范围内指定私有 ASN。

页面顶部将显示一条绿色边框,内容为:

image-20230903113103975

image-20230903113135455

注意:中转网关处于待处理状态几分钟后,会变为可用状态。

在文本编辑器中记录中转网关 ID。(本实验中转网关ID:tgw-0ab8c846a55b43bc2)

image-20230903113237904

附加信息:中转网关充当一种区域虚拟路由器,用于路由在 VPC 和 VPN 连接之间流动的流量。


任务 3:创建中转网关挂载

在此任务中,需要将 VPC 附加到中转网关,如下图所示:

image-20230903113334721

在左侧导航窗格的 Transit Gateways(中转网关)部分中,选择 Transit Gateway Attachments(中转网关挂载)。

在页面顶部,选择 Create transit gateway attachment(创建中转网关挂载)按钮。

image-20230903113439939

配置以下各项:

  • Name tag - optional(名称标签 – 可选):vpc-a
  • Transit Gateway ID(中转网关 ID):选择中转网关 ID
  • Attachment type(挂载类型):VPC
  • VPC ID:选择名为 vpc-a 的 VPC
  • 选择 Create transit gateway attachment(创建中转网关挂载)按钮。

image-20230903113723980

重复上述步骤,将vpc-bvpc-cvpc-d 附加到中转网关。

提示:请等待所有中转网关挂载的状态均变为可用,然后再继续下一项任务。

image-20230903113956640


任务 4:创建中转网关路由表

在此任务中,需要使用中转网关路由表为中转网关挂载配置路由路由表可以控制所有关联挂载的流量的流动方式。

在左侧导航窗格的 Transit Gateways(中转网关)部分中,选择 Transit Gateway Route Tables(中转网关路由表)。

在页面顶部,选择 Create transit gateway route table(创建中转网关路由表)按钮。

配置以下各项:

  • Name Tag - optional(名称标签 – 可选):maintransitgw-rt
  • Transit Gateway ID(中转网关 ID):选择中转网关 ID
  • 选择 Create transit gateway route table(创建中转网关路由表)按钮。

image-20230903114220727

image-20230903114257871

注意:中转网关路由表处于待处理状态几分钟后,会变为可用状态。

image-20230903114332978

image-20230903114400459

任务 4.1:创建路由表关联

在此任务中,需要将中转网关路由表与中转网关挂载相关联。将挂载与路由表关联之后,流量就可以从挂载发送到目标路由表

注意:一个中转网关挂载只能与一个路由表相关联。每个路由表可以关联零到多个挂载,并可以将数据包转发到其他挂载。

选择 maintransitgw-rt 中转网关路由表。 选择 Associations(关联)选项卡。

选择 Create association(创建关联)

配置以下各项:

  • Choose attachment to associate(选择要关联的挂载):选择名称标签为 vpc-a 的挂载 ID
  • 选择 Create association(创建关联)按钮。

image-20230903114602531

重复上述步骤,将 vpc-bvpc-cvpc-d 的关联添加到路由表中。

注意:创建每个关联可能需要几分钟时间。请刷新页面,直到所有挂载的状态都显示为 Associated(已关联)。

image-20230903115103428


任务 4.2:创建路由传播

在此任务中,需要使用路由传播将路由表中的路由添加到挂载。添加传播之后,路由可以从挂载传播到目标中转网关路由表。一个挂载可以传播到多个路由表。

选择 Propagations(传播)选项卡。

选择 Create propagation(创建传播)按钮。

image-20230903115136605

配置以下各项:

  • 选择要传播的挂载:选择名称标签为 vpc-a 的挂载 ID
  • 选择 Create propagation(创建传播)按钮。

image-20230903115208471

重复上述步骤,为 vpc-bvpc-cvpc-d 创建传播。

传播创建完成后,可以在 Routes(路由)选项卡上查看填充的所有 VPC 的子网。

image-20230903115307640


任务 5:更新 VPC 路由表

在此任务中,将为每个 VPC 中的子网添加一个路由指向作为目标目的地的中转网关。这样,发往本地子网以外的任何私有子网的任何流量都将通过路由流向中转网关。

在左侧导航窗格中,向上滚动到 Virtual Private Cloud 部分,然后选择 Route Tables(路由表)。

选择名为 vpc_a-public 的路由表。

image-20230903115514401

从页面顶部的 *Actions* (操作)菜单中,选择 Edit routes(编辑路由)。

image-20230903115614998

选择****Add route****(添加路由),然后配置以下各项:

  • Destination(目的地):10.0.0.0/8
  • Target(目标):复制并粘贴您在任务 1 中复制的中转网关 ID
  • 选择 Save changes(保存更改)按钮。

TGW

注意:对于目标,您也可以键入 tgw-,并选择名为 maintransitgw 的中转网关。

image-20230903120030617

PS:重复上述步骤,为每个路由使用相同目的地,将相应路由添加到 vpc_b-privatevpc_c-privatevpc_d-private 路由表。

任务 5.1:网络验证

运行以下命令。将 替换为EC2的 HostB IP 地址:【重复上述步骤,对 HostCHostD 执行 Ping 操作。】

ping <Host IP address>

请注意,HostE 位于远程区域,请重复之前的步骤,对 HostE 执行 Ping 操作

思考:针对 HostBHostCHostD 的网络可访问性测试本应是成功的。但针对 HostE 的测试却失败了。为什么?

image-20230903121229362


任务 6:创建与远程区域中转网关的对等连接

在此任务中,将在主区域中转网关与远程区域中转网关之间建立对等连接。AWS Transit Gateway 使用自治系统编号 (ASN) 与另一个中转网关建立对等连接。用于对等连接的路由协议是边界网关协议 (BGP)

任务 6.1:记录远程区域的中转网关 ID

AWS 管理控制台中,使用 AWS 搜索栏搜索VPC ,然后从结果列表中选择该服务。

现在将 AWS 区域切换到为远程区域,即切换AWS区域us-east-1

在 AWS 管理控制台的右上角,选择 Region name(区域名称)。

image-20230903122027216

在左侧导航窗格中,向下滚动到 Transit Gateways(中转网关)部分,然后选择 Transit Gateways(中转网关)。

在文本编辑器中记录远程网关的中转网关 IDtgw-0d1ba3be61f49fab9

image-20230903122238401


任务 6.2:创建中转网关对等连接

在此任务中,将添加与远程区域中转网关的对等连接。将在主区域中配置对等连接。

现在,将 AWS 区域更改回主区域

在左侧导航窗格中,向下滚动到 Transit Gateways(中转网关)部分,然后选择 Transit Gateway Attachments(中转网关挂载)。

在页面顶部,选择 Create transit gateway attachment(创建中转网关挂载)按钮。

配置以下各项:

  • Name tag - optional(名称标签 – 可选):remote-vpc-e
  • Transit Gateway ID(中转网关 ID):选择中转网关
  • Attachment type(挂载类型):Peering Connection(对等连接)
  • Account(账户):My account(我的账户)
  • Region(区域):选择远程区域名称
  • Transit gateway (accepter)(中转网关(接受方)):复制并粘贴您在上一部分中记录的远程区域的中转网关 ID
  • 选择 Create transit gateway attachment(创建中转网关挂载)按钮。

image-20230903122804744

注意:挂载的状态将依次变为正在发起请求等待接受

image-20230903122859850

image-20230903122936191


任务 6.3:接受中转网关对等连接请求 – 远程区域

目标中转网关必须批准对等连接请求。在此任务中,将允许从主区域远程区域的对等连接。

现在将 AWS 区域更改为远程区域

注意:如果收到内容为 An error occurred, Transit Gateway Attachment tgw-attach-xxxxxxxx was deleted or does not exist.(出现错误,中转网关挂载 tgw-attach-xxxxxxxx 被删除或不存在。)的错误消息,请忽略。

在左侧导航窗格中,向下滚动到 Transit Gateways(中转网关)部分,然后选择 Transit Gateway Attachments(中转网关挂载)。

要确认,请选择 接受 按钮。

image-20230903125020735

image-20230903125045752

image-20230903125425679

image-20230903125927067

image-20230903125958431

注意:挂载的状态可能需要几分钟的时间才能从待处理变为可用

任务 6.4:更新路由表关联 – 远程区域

在此任务中,需要将挂载关联到路由表。这样,流量就可以从挂载发送到目标路由表。

在左侧导航窗格中,向下滚动到 Transit Gateways(中转网关)部分,然后选择 Transit Gateway Route Tables(中转网关路由表)。

选择 remote-rt 中转网关路由表。

选择 Associations(关联)选项卡。

选择 Create association(创建关联)按钮。

配置以下各项:

  • Choose attachment to associate(选择要关联的挂载):选择不带名称标签且 Resource Type(资源类型)为 peering(对等连接)的挂载 ID
  • 选择 Create association(创建关联)按钮。

image-20230903132103435

image-20230903132650355


任务 6.5:更新中转网关路由表 – 远程区域

在此任务中,将修改远程区域中转网关的默认路由,以便指向对等中转网关。通过执行这一操作,可以将本地子网以外的流量路由到对等中转网关。

选择 Routes(路由)选项卡。

选择 CIDR 为 0.0.0.0/0 的路由。

*Actions* (操作)菜单中,选择 Replace static route(替换静态路由)。

此时将显示 Replace static route(替换静态路由)页面。

配置以下各项:

  • Choose attachment(选择挂载):选择远程对等连接的挂载 ID,该连接没有名称标签且 Resource Type(资源类型)为 peering(对等连接)
  • 选择 Replace static route(替换静态路由)按钮。

image-20230903132753256

image-20230903132851695

image-20230903132943323


任务 6.6:更新 VPC 路由表 – 远程区域

在此任务中,将添加默认路由以便指向中转网关。这样,HostE 就能够向中转网关发送非本地流量。

在左侧导航窗格中,向上滚动到 Virtual Private Cloud 部分,然后选择 Route Tables(路由表)。

选择 vpc_e-private 路由表。

*Actions* (操作)菜单中,选择 Edit routes(编辑路由)。

选择 *Add route*(添加路由),然后配置以下各项:

  • Destination(目的地):0.0.0.0/0
  • Target(目标):复制并粘贴远程区域的中转网关 ID
  • 选择 Save changes(保存更改)按钮。

image-20230903133335654

注意:对于目标,您也可以键入 tgw-,并选择名为 remote-tgw 的中转网关。

任务 6.7:网络验证

重复任务 1 中的步骤,对 HostBHostCHostDHostE 执行 Ping 操作。记录结果。

请注意,命令主机仍然无法对 HostE 执行 Ping 操作。更新主区域中的路由,以便命令主机可以对 HostE 执行 Ping 操作。

解决方案

注意:在更新路由之后,您应能够访问所有主机。

1、更新主区域的路由表关联

确保您位于控制台中的主区域内。

在左侧导航窗格中,向下滚动到 Transit Gateways(中转网关)部分,然后选择 Transit Gateway Route Tables(中转网关路由表)。

选择 maintransitgw-rt 中转网关路由表。

选择 Associations(关联)选项卡。

选择 Create association(创建关联)按钮。

配置以下各项:

  • Choose attachment to associate(选择要关联的挂载):选择名称标签为 remote-vpc-e 的 Attachment ID(挂载 ID)
  • 选择 Create association(创建关联)按钮。

image-20230903134941391

2、更新主区域的中转网关路由表

其次,添加静态路由表以从远程区域添加 VPC E 子网,从而指向对等连接中转网关关联。这样,中转网关就可以路由发送到 VPC E 的流量。

选择 Routes(路由)选项卡。

选择 Create static route(创建静态路由)

配置以下各项:

  • CIDR:10.0.0.0/16
  • Choose attachment(选择挂载):选择名称标签为 remote-vpc-e 的挂载 ID
  • 选择 Create static route(创建静态路由)按钮。

注意:选择 Routes(路由)选项卡,查看新路由。如果没有立即显示,请在几秒钟后刷新页面,直到路由显示。

image-20230903135226138

image-20230903135314473

image-20230903135420983

网络验证

重复任务 1 中的步骤,对 HostBHostCHostDHostE 执行 Ping 操作。记录结果。

命令主机现在应该能够成功对 HostE 执行 Ping 操作。

image-20230903135539125

任务 7:创建路由筛选条件

在此任务中,将使用黑洞路由来筛选流量。可以为 VPC B 和 VPC D 中的子网创建黑洞路由,如下图所示:

image-20230903135638781

中转网关路由表中的黑洞路由会丢弃与路由匹配的流量。

AWS 管理控制台中,使用 AWS 搜索栏搜索 VPC,然后从结果列表中选择该服务。

在左侧导航窗格中,向下滚动到 Transit Gateways(中转网关)部分,然后选择 Transit Gateway Route Tables(中转网关路由表)。

选择 maintransitgw-rt 中转网关路由表。

*Actions* (操作)菜单中,选择 Create static route(创建静态路由)。

此时将显示 Create static route(创建静态路由)页面。

配置以下各项:

  • CIDR*:10.2.2.0/24
  • 选择 Blackhole(黑洞)
  • 选择 Create static route(创建静态路由)按钮。

注意:选择 Routes(路由)选项卡,查看新路由。如果没有立即显示,请在几秒钟后刷新页面,直到路由显示。

image-20230903152614682

image-20230903152724669

重复上述步骤,为 VPC D 子网 (10.4.4.0/24) 添加黑洞路由。

image-20230903152853431

任务 7.1:网络验证

重复任务 1 中的步骤,对 HostBHostCHostDHostE 执行 Ping 操作。记录结果。

注意:针对 HostB 和 HostD 的网络可访问性测试应该会失败。

image-20230903153113680

任务 8:可视化和分析网络(可选)

在此任务中,需要使用 Network Manager 在集中式控制面板中将全局网络可视化为逻辑示意图或地图。然后,使用路由分析器来检查命令主机与 HostE 之间的路由。

AWS 管理控制台中,使用 AWS 搜索栏搜索VPC ,然后从结果列表中选择该服务。

在左侧导航窗格中,选择 Network Manager(网络管理器)。

选择 Transit Gateway Network Manager(中转网关网络管理器)卡的链接文本。

image-20230903153458616

选择 Get Started(开始使用)。

选择 *Create global network*(创建全局网络)或 Create global network(创建全球网络)。

image-20230903153604334

配置以下各项:

  • Name(名称):TGW-Network
  • Description(描述):Transit Gateway Network
  • 选择 Next(下一步)。
  • 取消选择 Add core network in your global network(在全局网络中添加核心网络)
  • 选择 Next(下一步)。
  • 选择 Create global network(创建全局网络)按钮。

image-20230903153712090

image-20230903153745785

image-20230903153803176

image-20230903153842162

等待 Global network State(全局网络状态)显示可用

Global networks(全局网络)窗格中,选择 TGW-Network 名称的超链接。

从左侧导航窗格中选择 Transit gateways(中转网关)。

选择 Register Transit Gateway(注册中转网关),以便添加要监控的中转网关。

image-20230903154312185

选择两个中转网关,然后选择 注册中转网关 按钮。

image-20230903154432454

注意:状态可能需要几分钟的时间才能从待处理变为可用。请时不时刷新浏览器页面,直到状态显示为可用

image-20230903154544064

任务 8.1:将网络可视化

要查看网络,在左侧导航窗格中选择 Transit gateway network(中转网关网络)。

查看 Geography(地理位置)、Topology tree(拓扑树)和 Monitoring(监控)选项卡。

image-20230903154724101

在此控制面板上,您可以将全局网络可视化为拓扑图和地图。您可以查看使用率指标,如输入/输出的字节数、输入/输出的数据包和丢失的数据包。您还可以查看有关拓扑、路由和上/下行连接状态变化的提醒。

image-20230903154951931

image-20230903155033092

image-20230903155358527

任务 8.2:分析路由

选择 Route Analyzer(路由分析器)选项卡。

配置以下各项:

Source(源)

  • Transit Gateway(中转网关):maintransitgw
  • Transit Gateway attachment(中转网关挂载):vpc-a
  • IP address(IP 地址):复制并粘贴 CommandHostPrivateIP 公有IP 地址
  • 选择 Include return path in results(在结果中包含返回路径)

Destination(目的地)

  • Transit Gateway(中转网关):remote-tgw
  • Transit Gateway attachment(中转网关挂载):vpc-e
  • IP address(IP 地址):复制并粘贴实验页面左侧的 HostE IP 地址

要分析网络路径,请选择 Run route analysis(运行路由分析)按钮。

可以查看命令主机与 HostE 之间的转发和返回网络路径。可以使用这一功能排除两个终端节点之间的网络问题

image-20230903155555695
image-20230903155758505

总结

  • 配置中转网关
  • 将 VPC 附加到中转网关
  • 使用 AWS Transit Gateway 控制和自定义路由
  • 建立两个区域之间的中转网关对等连接
  • 使用网络管理器可视化和分析您的网络

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

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

相关文章

Android JNI系列详解之ndk-build工具的使用

一、Android项目中使用ndk-build工具编译库文件 之前介绍过CMake编译工具的使用&#xff0c;今天介绍一种ndk自带的编译工具ndk-build的使用。 ndk-build目前主要有两种配置使用方式&#xff1a; 如上图所示&#xff0c;第一种方式是Android.mkApplication.mkgradle的方式生成…

SpringBoot初级开发--服务请求(GET/POST)所有参数的记录管理(8)

服务端在定位错误的时候&#xff0c;有时候要还原现场&#xff0c;这就要把当时的所有入参参数都能记录下来&#xff0c;GET还好说&#xff0c;基本NGINX都会记录。但是POST的请求参数基本不会被记录&#xff0c;这就需要我们通过一些小技巧来记录这些参数&#xff0c;放入日志…

C++ struct 笔记(超级详细)

今日碎碎念&#xff1a;我在学C语言时经常用到结构体struct&#xff0c;之后在写C程序时遇到在struct中定义构造函数和成员函数的情况&#xff0c;这在c语言中是从未遇到过的&#xff0c;觉得奇怪&#xff0c;想到之前并没有真正系统学习C里的struct&#xff0c;有必要今天详细…

企业架构LNMP学习笔记8

1、 运维人员需要考虑安全性、稳定性。 安装&#xff1a; 解压进入到目录&#xff1a; shell > tar zxf php-7.2.12.tar.gz shell > cd php-7.2.12 安装依赖软件&#xff1a; yum -y install libxml2-devel libjpeg-devel libpng-devel freetype-devel curl-devel op…

uniapp 微信小程序 获取用户头像和昵称

一、背景 自2022年10月25日后&#xff0c;小程序 wx.getUserProfile 接口 被收回&#xff0c;通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像&#xff0c;昵称将统一返回 “微信用户”。如需获取用户头像昵称&#xff0c;可以手动获取&#xff0c;具体步骤&…

Java单元测试及常用语句 | 京东物流技术团队

1 前言 编写Java单元测试用例&#xff0c;即把一段复杂的代码拆解成一系列简单的单元测试用例&#xff0c;并且无需启动服务&#xff0c;在短时间内测试代码中的处理逻辑。写好Java单元测试用例&#xff0c;其实就是把“复杂问题简单化&#xff0c;建单问题深入化“。在编写的…

Shell脚本练习——系统应用相关

显示系统信息 [rootwenzi data]#cat systemInfo.sh #/bin/bash RED"\E[1;31m" GREEN"\E[1;32m" END"\E[0m" echo -e "$GREEN----------------------Host systeminfo--------------------$END" echo -e "HOSTNAME: $REDho…

没有 JavaScript 计时器的自动播放轮播 - CSS 动画

先看效果&#xff1a; 再看代码&#xff08;查看更多&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>计时器</title><style>* {padding: 0;margin: 0;box-siz…

WorkManager的基本使用

目录 一、WorkManager概述1. WorkManager的作用&#xff1a;2. WorkManager的各个角色 二、依赖库的导入三、WorkManager几种基本使用1. 单一任务的执行2. 数据 互相传递3. 多个任务 顺序执行4. 重复执行后台任务5. 约束条件6. 证明 app被杀掉之后&#xff0c;还在后台执行 四、…

Linux - Docker 安装使用 常用命令 教程

Docker 官方文档地址: Get Started | Docker 中文参考手册: https://docker_practice.gitee.io/zh-cn/ 1.什么是 Docker 1.1 官方定义 最新官网首页 # 1.官方介绍 - We have a complete container solution for you - no matter who you are and where you are on your contain…

[SWPUCTF 2022]——Web方向 详细Writeup

SWPUCTF 2022 ez_ez_php 打开环境得到源码 <?php error_reporting(0); if (isset($_GET[file])) {if ( substr($_GET["file"], 0, 3) "php" ) {echo "Nice!!!";include($_GET["file"]);} else {echo "Hacker!!";} }e…

Python爬虫抓取经过JS加密的API数据的实现步骤

随着互联网的快速发展&#xff0c;越来越多的网站和应用程序提供了API接口&#xff0c;方便开发者获取数据。然而&#xff0c;为了保护数据的安全性和防止漏洞&#xff0c;一些API接口采用了JS加密技术这种加密技术使得数据在传输过程中更加安全&#xff0c;但也给爬虫开发带来…

QT基础教程之九Qt文件系统

QT基础教程之九Qt文件系统 文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库&#xff0c;提供了跨平台的文件操作能力。Qt 通过QIODevice提供了对 I/O 设备的抽象&#xff0c;这些设备具有读写字节块的能力。下面是 I/O 设备的类图&#xff08;Qt5&#xff09;&#…

ROS 2官方文档(基于humble版本)学习笔记(一)

ROS 2官方文档&#xff08;基于humble版本&#xff09;学习笔记&#xff08;一&#xff09; 一、安装ROS 2二、按教程学习1.CLI 工具配置环境使用turtlesim&#xff0c;ros2和rqt安装 turtlesim启动 turtlesim使用 turtlesim安装 rqt使用 rqt重映射关闭turtlesim 由于市面上专门…

浅析Linux虚拟网络技术

文章目录 概述Tap/tun设备tun/tap的工作机制 Bridge网桥Bridge的工作机制Bridge IP 相关参考 概述 在传统的网络环境中&#xff0c;一台物理主机包含一张或多张网卡&#xff0c;要实现与其它物理主机之间的通信&#xff0c;需要将自身的网卡通过路由器或者交换机连接到外部的物…

Python零基础超详细教程:字典(Dictionary)相关介绍使用

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! Python字典是另一种可变容器模型&#xff0c; 且可存储任意类型对象&#xff0c;如字符串、数字、元组等其他容器模型。 python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 一、创建字典 字典由键和对应值…

ThreeJS 模型中内嵌文字

之前有过模型中内嵌html网页&#xff0c;地址☞threeJS 模型中加载html页面_threejs 加载dom元素_小菜花29的博客-CSDN博客 这次是纯粹的在模型中嵌入文本信息&#xff0c;进行简单的文字展示 展示效果图 1. 使用FontLoader文字加载器 引入文本json文件&#xff0c;代码如下…

事务的总结

数据库事务 数据库事务是一个被视为单一的工作单元的操作序列。这些操作应该要么完整地执行&#xff0c;要么完全不执行。事务管理是一个重要组成部分&#xff0c;RDBMS 面向企业应用程序&#xff0c;以确保数据完整性和一致性。事务的概念可以描述为具有以下四个关键属性描述…

04-过滤器和拦截器有什么区别?【Java面试题总结】

过滤器和拦截器有什么区别&#xff1f; 运行顺序不同&#xff1a;过滤器是在 Servlet 容器接收到请求之后&#xff0c;但在 Servlet被调用之前运行的&#xff1b;而拦截器则是在Servlet 被调用之后&#xff0c;但在响应被发送到客户端之前运行的。 过滤器Filter 依赖于 Servle…

VB.NET 如何将某个Excel的工作表中复制到另一个的Excel中的工作表中https://bbs.csdn.net/topics/392861034

参考http://share.freesion.com/306372/可以实现直接拷贝指定表 Private Sub Excel复制工作簿()Dim myExcelApp As New Microsoft.Office.Interop.Excel.ApplicationmyExcelApp.Workbooks.Open(System.Environment.CurrentDirectory "\\测试用例.xlsx", Type.Missin…