我已经使用 Pure-FTPd 和 Ubuntu 20.04 设置了一个新的 FTP 服务器。当我不激活 TLS 时,我可以毫无问题地连接到我的服务器。
首先,我使用以下命令创建了一个自签名证书:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 3650
然后我使用此命令激活了 TLS,并重新启动了服务:
echo "2" > /etc/pure-ftpd/conf/TLS
systemctl restart pure-ftpd
在 FileZilla 中,我使用显式设置进行连接。证书显示正确。它甚至说 TLS 连接已建立,但随后我收到了 ECONNREFUSED 错误消息。
防火墙开放以下端口:21、22、989、990
UFW 在服务器本身上已停用。
系统日志或 Pure-FTPd 日志中没有任何内容。我没有主意了,真心希望有人能帮助我。
答案1
如果你收到证书提示,你可以连接。 这经济拒绝可能指的是目录列表的数据连接,因为您尚未打开数据端口。
--passiveportrange <minport:maxport>
在 Pure-FTPd 中,您可以使用命令行开关配置数据端口。并且您需要在防火墙中打开这些端口。
普通的未加密 FTP 可能有效,因为你的防火墙能够跟踪未加密的 FTP 控制连接并根据需要打开数据端口(在内置的 Windows 防火墙中,该功能称为“状态 FTP 过滤”)。当控制连接加密时,这是不可能的。
顺便说一句,990 仅用于隐式 TLS 连接,通常也不需要它。而且 989 根本不必为 FTP 开放。