过程可跳过,拉到最下面有解决方法
之前服务端都是linux的没出现过问题,因为特殊需求需要在window服务端上开发,安装了宝塔面板FTP服务端是用的FileZilla Server 0.9.60。安装好在phpstorm上新建FTP怎么都连接不上去。提示vfs.provider.ftps/connect.error。通过查看服务器端日志
(000004) 2024/4/29 16:09:38 - (not logged in) (114.235.67.22)> PASS ****************
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> 230 Logged on
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> TYPE I
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> 200 Type set to I
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> FEAT
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> 211-Features:
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> MDTM
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> REST STREAM
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> SIZE
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> MLST type*;size*;modify*;
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> MLSD
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> UTF8
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> CLNT
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> MFMT
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> 211 End
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> PASV
(000004) 2024/4/29 16:09:38 - crm (114.235.67.22)> 227 Entering Passive Mode (122,51,55,3,11,189)
从提供的日志中可以看到,你的PHPStorm客户端成功地与服务器建立了连接,并成功地进行了登录,而且服务器也成功地切换到了被动模式(PASV)。在FTP中,被动模式是为了解决由于防火墙或路由器设置问题导致的数据连接问题。
我在腾讯云放行了21端口,在FTP中,单纯的放行21端口是不够的。FTP使用两个端口进行通信:一个是用来传输命令(通常是21端口),另一个是用来传输数据。在被动模式(PASV)中,服务器会动态打开一个高端口(通常是1024以上)来传输数据。
所以不仅放行21端口,还要放行一定范围的高端口用于数据传输。在FileZilla Server的设置里,设置这个端口范围(在“Edit” -> “Settings…” -> “Passive mode settings”里)。查看端口范围在腾讯云中放行这个范围,然后在宝塔安全中也放行一下 问题解决了。