Amazon-Web-Services

vsftpd 斷開與 AWS 的 PASV 命令連接

  • November 2, 2020

這就是我所看到的:

$ telnet ec2-???-???-232-82.compute-1.amazonaws.com 21
Trying ???.???.232.82...
Connected to ec2-???-???-232-82.compute-1.amazonaws.com.
Escape character is '^]'.
220 (vsFTPd 2.3.5)
USER foo
331 Please specify the password.
PASS secret
230 Login successful.
PASV
Connection closed by foreign host.

為什麼會發生這種情況?

這是一部分/etc/vsftpd.conf

pasv_enable=YES
pasv_min_port=5000
pasv_max_port=5200

您可能需要為您的實例授權選擇的被動埠。這可以在 AWS 管理控制台中使用

ec2-authorize default -p <starting port>-<end port>

所以應該是

ec2-authorize default -p 5000-5200

在你的情況下。

編輯:當然,不要忘記記下公共地址

pasv_address=???.???.232.82

就像你指出的那樣。

對於 7 年後在這裡結束的其他人:PASV由於 vsftpd 在 ipv6 上偵聽,我在 EC2 實例上立即斷開連接時遇到了問題。

通過設置listen_ipv6=NO和固定listen=YES

引用自:https://serverfault.com/questions/524695