如何在具有自定义侦听器端口的 AWS Transfer Family SFTP 启用的服务器终端节点上启用弹性 IP 地址?
上次更新时间:2021 年 8 月 9 日
我想让我的 AWS Transfer Family SFTP 启用的服务器可以使用弹性 IP 地址访问,并且侦听器端口不能为端口 22。
解决方法
如果可以将端口 22 用作侦听器端口,则为服务器创建面向互联网的终端节点。
但是,如果必须将侦听器端口更改为端口 22 以外的其他端口(用于迁移),请按照以下步骤操作:
创建 Amazon Virtual Private Cloud (Amazon VPC) 并分配 IP 地址
- 在与服务器相同的 AWS 区域内创建 Amazon VPC。
- 在要从中使用服务器的可用区内的 VPC 中创建子网。
注意:一台 AWS Transfer Family 服务器最多可以支持三个可用区。 - 在与服务器相同的区域内最多分配三个弹性 IP 地址。您也可选择自带 IP 地址 (BYOIP)。
注意:弹性 IP 地址的数量必须与在其内使用服务器终端节点的可用区数量相一致。
创建具有内部 VPC 终端节点类型的 AWS Transfer Family SFTP 启用的服务器
- 请按照以下步骤创建只能从 VPC 内部访问的服务器终端节点。
- 创建服务器后,请从 AWS Transfer Family 控制台查看服务器的详细信息。在终端节点配置下,记下私有 IPv4 地址。您需要这些 IP 地址才能创建网络负载均衡器。
创建一个网络负载均衡器,并将服务器的 VPC 终端节点定义为该负载均衡器的目标
- 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台。
- 在导航窗格中选择负载均衡器。
- 选择创建负载均衡器。
- 在网络负载均衡器下,选择创建。
- 对于第 1 步:配置负载均衡器,请输入以下内容:
对于名称,输入负载均衡器的名称。
对于方案,选择面向互联网。
对于侦听器,保留负载均衡器协议为 TCP。然后,将关联的负载均衡器端口更改为您的自定义侦听器端口。
对于 VPC,选择已创建的 Amazon VPC。
对于可用区,选择与公有子网关联的可用区,这些子网在与服务器终端节点一起使用的同一 VPC 中可用。
对于每个子网的 IPv4 地址,选择您分配的一个弹性 IP 地址。 - 选择下一步:配置安全设置。
- 选择下一步:配置路由。
- 对于第 3 步:配置路由,输入以下内容:
对于目标组,选择新建目标组。
对于名称,输入目标组的名称。
对于目标类型,选择 IP。
对于协议,选择 TCP。
对于端口,输入 22。
注意:AWS Transfer Family 服务器仅支持通过端口 22 进行通信。负载均衡器必须通过端口 22 与服务器通信。
对于运行状况检查下的协议,选择 TCP。 - 选择下一步:注册目标。
- 对于第 4 步:注册目标,输入以下内容:
对于网络,确认选择了您要使用的 Amazon VPC。
对于 IP,输入服务器终端节点的私有 IPv4 地址。创建服务器后,您复制了这些 IP 地址。 - 选择添加到列表。
- 重复第 10 步和第 11 步,直到您输入所有服务器终端节点的私有 IP 地址为止。
- 选择下一步: 检查。
- 选择创建。
设置服务器和负载均衡器后,客户端通过自定义端口侦听器与负载均衡器进行通信。然后,负载均衡器通过端口 22 与服务器通信。
测试从某个弹性 IP 地址访问服务器
使用弹性 IP 地址或网络负载均衡器的 DNS 名称,通过自定义端口连接到服务器。例如,以下 OpenSSH 命令使用弹性 IP 地址和自定义端口连接到服务器:
注意:将 [port] 替换为您的自定义端口。然后,请将 192.0.2.3 替换为您分配的弹性 IP 地址。
sftp -i sftpuserkey -P [port] sftpuser@192.0.2.3
重要提示:使用在负载均衡器上为子网配置的网络访问控制列表(网络 ACL),从客户端 IP 地址管理对服务器的访问。网络 ACL 权限在子网级别设置,因此规则适用于使用该子网的所有资源。您不能使用安全组来控制从客户端 IP 地址的访问权限,因为负载均衡器的目标类型设置为 IP,而不是实例。这意味着,负载均衡器不会保留源 IP 地址。如果网络负载均衡器的运行状况检查失败,则说明负载均衡器无法连接到服务器终端节点。要解决此问题,请检查以下项目:
- 确认该服务器终端节点关联的安全组允许来自负载均衡器上配置的子网的入站连接。负载均衡器必须能够通过端口 22 连接到服务器终端节点。
- 确认服务器的状态为联机。