我想使用彈性 IP 地址,以存取已啟用 AWS Transfer Family SFTP 的伺服器。但是,接聽程式連接埠不能是連接埠 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 位址,才能執行建立 Network Load Balancer 的步驟。
建立 Network Load Balancer,並將伺服器的 VPC 端點定義為負載平衡器的目標
- 開啟 Amazon Elastic Compute Cloud (Amazon EC2) 主控台。
- 在導覽窗格中,選擇負載平衡器。
- 選擇建立負載平衡器。
- 在 Network Load Balancer 下,選擇建立。
- 對於步驟 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 位址或 Network Load Balancer 的 DNS 名稱,透過自訂連接埠連線至伺服器。例如,下列 OpenSSH 命令透過彈性 IP 位址和自訂連接埠連線至伺服器:
**注意:**將 [port] 取代為您的自訂連接埠。然後,將 192.0.2.3 取代為您配置的彈性 IP 位址。
sftp -i sftpuserkey -P [port] sftpuser@192.0.2.3
**重要:**若要從用戶端 IP 位址管理對伺服器的存取,請使用負載平衡器上的網路存取控制清單 (network ACL) 和安全群組。如果 Network Load Balancer 運作狀態檢查失敗,則負載平衡器無法連線至伺服器端點。若要對此問題進行疑難排解,請檢查下列條件:
- 確認該伺服器端點的相關安全群組允許來自負載平衡器的子網路的輸入連線。負載平衡器必須能夠通過連接埠 22 連線至伺服器端點。
- 確認該伺服器的狀態為線上。
相關資訊
將 SFTP 伺服器平移遷移至 AWS