我想使用弹性 IP 地址让支持 AWS Transfer Family SFTP 的服务器可通过自定义侦听器端口进行访问。
解决方法
如果可以将端口 22、2222、22000 或 2223 用作侦听器端口,请为服务器创建面向互联网的端点。
要将监听器端口更改为端口 22、2222、22000 或 2223 以外的端口,请按照以下步骤操作。
创建 Amazon Virtual Private Cloud (Amazon VPC) 并分配 IP 地址
完成以下步骤:
- 在与服务器相同的 AWS 区域内创建 Amazon VPC。
- 在要从中使用服务器的可用区内的 VPC 中创建子网。
**注意:**一台 Transfer Family 服务器最多可以支持三个可用区。
- 在与服务器相同的区域内最多分配三个弹性 IP 地址。您也可以自带 IP 地址范围(BYOIP)。
**注意:**弹性 IP 地址的数量必须与在其中使用服务器端点的可用区数量相一致。
创建具有内部 VPC 端点类型的支持 AWS Transfer Family SFTP 的服务器
完成以下步骤:
- 按照步骤创建只能从 VPC 内部访问的服务器端点。
- 创建服务器后,请从 AWS Transfer Family 控制台查看服务器的详细信息。在 Endpoint configuration(端点配置)下,记下 Private IPv4 Addresses(私有 IPv4 地址)。在创建网络负载均衡器时使用这些 IP 地址。
创建网络负载均衡器,并将服务器的 VPC 端点定义为该负载均衡器的目标
完成以下步骤:
- 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台。
- 在导航窗格中,选择负载均衡器。
- 选择创建负载均衡器。
- 在网络负载均衡器下,选择创建。
- 对于步骤 1: 配置负载均衡器,输入以下内容:
对于名称,输入负载均衡器的名称。
对于方案,选择面向互联网。
对于侦听器,将负载均衡器协议保留为 TCP。然后,将关联的负载均衡器端口更改为您的自定义侦听器端口。
对于 VPC,选择已创建的 Amazon VPC。
对于可用区,选择与公有子网关联的可用区,这些子网在与服务器端点一起使用的同一 VPC 中可用。
对于每个子网的 IPv4 地址,选择您分配的一个弹性 IP 地址。
- 选择下一步: 配置安全设置。
- 选择下一步: 配置路由。
- 对于步骤 3: 配置路由,输入以下内容:
对于目标组,选择新建目标组。
对于名称,输入目标组的名称。
对于目标类型,选择 IP。
对于协议,选择 TCP。
对于端口,输入 22。
注意: Transfer Family 服务器仅支持通过端口 22 进行通信。负载均衡器必须通过端口 22 与服务器通信。
在运行状况检查下,对于协议,选择 TCP。
- 选择下一步: 注册目标。
- 对于步骤 4: 注册目标,输入以下内容:
对于 Network(网络),确认选择要使用的 Amazon VPC。
对于 IP,输入服务器端点的私有 IPv4 地址。您在创建服务器后复制了这些 IP 地址。
- 选择 Add to list(添加到列表)。
- 重复步骤 10 和 11,直到输入所有服务器端点的私有 IP 地址。
- 选择 Next: 审核。
- 选择创建。
设置服务器和负载均衡器后,客户端会通过自定义端口侦听器与负载均衡器进行通信。然后,负载均衡器会通过端口 22 与服务器进行通信。
测试从某个弹性 IP 地址访问服务器
通过弹性 IP 地址或者网络负载均衡器的 DNS 名称,利用自定义端口连接到服务器。例如,以下 OpenSSH 命令会通过弹性 IP 地址和自定义端口连接到服务器:
**注意:**将 portNumber 替换为您的自定义端口号。然后,将 192.0.2.3 替换为您分配的弹性 IP 地址。
sftp -i sftpuserkey -P portNumber sftpuser@192.0.2.3
**重要事项:**要管理从客户端 IP 地址对服务器的访问,请使用负载均衡器的网络访问控制列表(网络 ACL)和安全组。如果网络负载均衡器的运行状况检查失败,则说明负载均衡器无法连接到服务器端点。要对连接问题进行故障排除,请检查以下条件:
- 确认服务器端点的关联安全组允许来自负载均衡器子网的入站连接。负载均衡器必须能够通过端口 22 连接到服务器端点。
- 确认服务器的状态为联机。
相关信息
将 SFTP 服务器直接迁移到 AWS