热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AWS33.AWS中创建NAT网关

AWS中创建NAT网关什么是NAT网关?NAT代表网络地址转换。NAT网关是一种设备,用于使私有子网中的实例能够连接到互联网或其他AWS服务。它阻止互联网启动与私有子网中存在的实例

AWS中创建NAT网关

=== 什么是 NAT 网关?




  • NAT 代表 网络地址转换

  • NAT 网关是一种设备,用于使私有子网中的实例能够连接到互联网其他 AWS 服务

  • 阻止互联网启动私有子网中存在的实例的连接

  • 它将流量从私有子网中的实例转发到互联网或其他 AWS 服务,然后将响应发送回实例

  • 当流量转到互联网时,使用 NAT 设备的地址更改实例 IP 地址

  • 我们有 2 种 NAT 设备



  • NAT 实例

  • NAT 网关



  • NAT 实例使用 Amazon Linux AMI

  • NAT 实例限制取决于您针对该区域的实例类型限制

  • NAT 实例不支持 IPv6 流量

  • NAT 网关的使用量按小时向客户收费

  • NAT 网关不支持 IPv6 流量

  • AWS 建议使用 NAT 网关,因为它们比 NAT 实例提供更好的可用性和带宽


=== 架构图

image

== 实验步骤

=== 创建新的VPC




  • 请确保您位于美国东部(弗吉尼亚北部)us-east-1 区域

  • 顶部菜单导航到 VPC

  • 单击左侧菜单中的您的 VPC

  • 在这里,您可以看到所有 VPC 的列表,无需对现有和默认 VPC 执行任何操作,我们将创建一个新的 VPC

  • 单击创建 VPC按钮。



  • 名称标签: 输入用于向您的 VPC 标识的 VPC 名称。例如:MyVPC

  • IPv4 CIDR 块: 输入 10.0.0.0/16

  • IPv6 CIDR 块: 无需更改此设置,请确保选中"无 IPv6 CIDR 块"

  • 租期: 无需更改此设置,请确保选中"默认"



  • 现在单击创建 VPC按钮


image




  • 创建VPC后,它将显示详细信息如下所示


image



=== 创建公有子网和私有子网




  • 对于公有子网,单击左侧菜单中的子网,然后单击创建子网

    ** VPC ID :从您之前创建的列表中选择 MyVPC

    ** 子网名称 :输入名称 MyPublicSubnet

    ** 可用区 : 选择 无首选项

    ** IPv4 网段:输入范围 10.0.0.0/24

    ** 单击"创建子网"

  • 让我们启用自动将公有 IP 分配给在此子网中创建的实例

    ** 选择 MyPublicSubnet ,单击"操作"

    ** 单击"编辑子网设置"

    ** 启用自动分配公有 IPv4 地址:选中

    ** 点击保存

  • 现在,默认情况下,在 MyPublicSubnet 中启动的实例将分配公有 IP

  • 对于私有子网,再次单击"创建子网"

    ** VPC ID :从您之前创建的列表中选择 MyVPC

    ** 子网名称 :输入名称 MyPrivateSubnet

    ** 可用区 : 选择 无首选项

    ** IPv4网段:输入范围10.0.1.0/24

    ** 单击"创建子网"


image



=== 创建和配置互联网网关




  • 单击左侧菜单中的互联网网关,然后单击创建互联网网关



  • 名称标签:MyInternetGateway

  • 单击创建互联网网关



  • 从列表中选择您创建的互联网网关



  • 单击"操作"

  • 单击附加到VPC

  • 从列表中选择您创建的MyVPC,然后单击连接互联网网关


image



=== 创建公有路由表




  • 从左侧菜单中转到路由表,然后单击创建路由表



  • 名称: 输入"PublicRouteTable"

  • VPC: 从列表中选择"MyVPC"

  • 单击创建路由表



  • 现在,将子网关联到路由表

  • 单击 PublicRouteTable,单击操作



  • 然后转到"子网关联"选项卡

  • 从列表中选择"MyPublicSubnet"

  • 单击保存关联




=== 更新路由表并配置公网网关




  • PublicRouteTable:添加允许公网流量流向 VPC 的路由

  • 选择"PublicRouteTable"

  • 转到"路由"选项卡,然后单击编辑路由按钮。

  • 然后单击添加路由按钮。

  • 指定以下值:



  • 目标:输入 0.0.0.0/0

  • 目标:从下拉菜单中选择互联网网关,选择MyInternetGateway

  • 点击保存更改


image




  • 现在,在MyPublicSubnet启动的实例将可以访问互联网

  • MyVPC 提供了另一个现有路由表。它是在创建 VPC 时创建的主路由表。我们将在创建 NAT 网关时使用它




=== 在公有子网中启动 EC2 实例




  • 请确保您位于美国东部(弗吉尼亚北部)us-east-1 区域。

  • 顶部菜单导航到 EC2

  • 左侧面板,单击"实例",然后单击"启动新实例"


==== (1)控制台启动实例

image

==== (2)选择系统镜像

image

==== (3)选择实例类型

image

==== (4)配置实例




  • 实例数:输入 1

  • 网络 : 选择MyVPC

  • 子网 :选择"MyPublicSubnet"

  • 自动分配公共 IP:使用子网设置(启用)

  • 将所有其他设置保留为默认值。单击"下一步:添加存储"


==== (5)添加存储

image

==== (6)添加标签

image

==== (7) 配置安全组




  • 添加 SSH:




. 选择类型: 选择 SSH

. 协议:TCP

. 端口范围:22


. 源:选择"任何位置"




  • 点击下一步 `审核和启动


==== (8) 审核启动




  • 检查所有选定的设置,无误点击启动

  • 选择现有密钥对,确认并单击启动实例


image



=== 在私有子网中启动 EC2 实例




  • 请确保您位于美国东部(弗吉尼亚北部)us-east-1 区域。

  • 顶部菜单导航到 EC2

  • 左侧面板,单击"实例",然后单击"启动新实例"


==== (1)控制台启动实例

image

==== (2)选择系统镜像

image

==== (3)选择实例类型

image

==== (4)配置实例




  • 实例数:输入 1

  • 网络 : 选择MyVPC

  • 子网 :选择"MyPrivateSubnet"

  • 自动分配公共 IP:使用子网设置(禁用)

  • 将所有其他设置保留为默认值。单击"下一步:添加存储"


==== (5)添加存储

image

==== (6)添加标签

image

==== (7) 配置安全组




  • 分配安全组:选择"选择现有安全组"

  • 从列表中选择刚刚创建的安全组

  • 点击下一步 审核和启动


==== (8) 审核启动




  • 检查所有选定的设置,无误点击启动

  • 选择现有密钥对,确认并单击启动实例


image::/图片/07图片/现有密钥.png[现有密钥]




  • 然后单击每个实例,然后输入名称为 MyPublicEC2Server 和 MyPrivateEC2Server 以便分辨EC2


image



=== SSH 进入公有和私有 EC2 实例并测试互联网连接




  • SSH 进入 MyPublicEC2Server 实例

  • 切换到 root 用户sudo su

  • 使用以下命令运行更新



  • yum -y update



  • 由于互联网网关MyInternetGateway连接到MyPublicSubnet因此更新将成功完成


image




  • 让我们从MyPublicEC2Server 进入 MyPrivateEC2Server

  • 为了通过SSH进入到 MyPrivateEC2Server 中,首先,我们需要在公共EC2(即MyPublicEC2Server)中创建PEM文件,并从本地计算机中的test1.pem复制密钥数据

  • 我们需要 test1.pem 才能SSH。我们将从您的本地计算机(之前在启动 EC2 实例时下载)复制 test1.pem 中的密钥数据。

  • 要复制 test1.pem 的内容,请在文本编辑器中打开该文件复制整个内容

  • 要在 MyPublicEC2Server 中创建 test1.pem,请运行





vim test1.pem




  • 现在按以下键插入数据(您可以看到插入在最后一个弹出,然后您可以粘贴键)。

  • 单击"i"

  • 注意:在编辑器中,复制并粘贴类似于以下示例的密钥


image




  • 保存文件

  • 点击esc,输入以下命令保存退出





:wq




  • 检查文件是否已正确创建。





ls

image




  • 更新 test1.pem 的权限





chmod 400 test1.pem




  • 使用 MyPrivateEC2Server 的私有 IP 地址进行连接





ssh -i "test1.pem" ec2-user@10.0.1.158

image




  • 切换到根用户





sudo su




  • 使用以下命令运行更新





yum -y update




  • 由于私有子网中的 EC2 实例不提供互联网访问,因此您将无法获得更新

  • 一段时间后,它将失败,并显示以下消息


image



=== 创建 NAT 网关




  • NAT 网关用于提供对私有子网内实例互联网访问

  • **导航到 VPC **页面。

  • 确保您仍在弗吉尼亚北部地区

  • 在左侧面板中,单击 NAT 网关

  • 单击"创建 NAT 网关"



  • 名字: MyNATGateway

  • 子网 :在 MyVPC 中选择 MyPublicSubnet

  • 弹性 IP 分配 ID:单击分配弹性 IP

  • 分配新弹性公网IP后,单击创建NAT网关



  • 请注意,NAT 网关始终在公有子网中创建

  • NAT 网关将在几分钟内创建。创建后,状态将更改为"可用"


image



=== 更新路由表并配置 NAT 网关




  • 导航到左侧面板中的路由表

  • 您可以看到两个可用于 MyVPC 的路由表


image




  • 附加 Nat 网关,请选择主路由表(与您创建的路由表不同)。

  • 转到"路由"选项卡,然后单击编辑路由按钮。

  • 然后单击添加路由按钮。

  • 指定以下值



  • 目标:输入 0.0.0.0/0

  • 目标:选择 NAT 网关,加载NAT 网关后,选择您创建的 NAT 网关

  • 点击保存更改



  • 完成所有配置后,应如下所示


image




  • 现在,在 MyPrivateSubnet 中启动的实例可以通过 NAT 网关访问互联网




=== 从私有子网内的实例测试互联网连接




  • SSH 回到 MyPrivateEC2Server

  • 使用以下命令运行更新





yum -y update

image




  • 您可以看到更新已在终端中成功完成

  • 这表明MyPrivateEC2Server可以访问互联网






推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
author-avatar
周小范范
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有