我想让我的支持 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
**重要提示:**要管理从客户端 IP 地址对服务器的访问,请使用负载均衡器的网络访问控制列表(网络 ACL)和安全组。如果网络负载均衡器的运行状况检查失败,则说明负载均衡器无法连接到服务器端点。要解决此问题,请检查以下情况:
- 确认服务器端点的关联安全组允许来自负载均衡器子网的入站连接。负载均衡器必须能够通过端口 22 连接到服务器端点。
- 确认服务器的状态为联机。
相关信息
将 SFTP 服务器直接迁移到 AWS