PhpStorm vsftpd 问题:500 非法端口命令

PhpStorm vsftpd issue: 500 Illegal PORT command

我已经使用 this tutorial 在我的 Ubuntu 16.04 上安装了一个 vsftpd。

我可以使用 FileZilla 连接到服务器,但不能通过 PhpStorm。当我尝试将文件上传到服务器时出现此错误:

Failed to transfer file 'C:\xampp\htdocs\sherkat\artisan.php': cant open output connection for file "ftps://SERVER-IP/artisan.php". Reason: "500 Illegal PORT command.".

我的配置有什么问题?

FTP 协议支持两种数据连接模式。在称为 "active"(默认)的传统模式中,在客户端发送的每个命令上,服务器都会创建一个返回客户端的连接,并使用它来发送响应。由于防火墙的存在,这在如今(实际上,在过去 20 多年里)的大多数设置中是不可能的。

还有一种模式,叫做"passive",响应的数据连接也是由客户端发起的。它可以毫无问题地穿过防火墙。

按 "Advanced options..." 按钮,选中 "Passive mode" 选项,一切顺利!


附带说明一下,更好的方法是使用 SFTP 协议。如果您可以通过 SSH 连接到您的 Ubuntu 盒子,很可能您也可以使用 SFTP 将文件传输到它,而无需任何其他设置。 FTP 是一个古老而复杂的协议。 SFTP 使用安全连接(可能对你来说没那么重要)和更简单的协议。