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 使用安全连接(可能对你来说没那么重要)和更简单的协议。
我已经使用 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 使用安全连接(可能对你来说没那么重要)和更简单的协议。