PhpStorm部署功能无法连接FTP服务器,其他工具可正常连接
PhpStorm Deployment FTP连接失败但FileZilla/VSCode可正常连接
我在使用PhpStorm的Deployment功能连接FTP服务器时遭遇失败,但使用FileZilla或VSCode的ftp-simple扩展却能正常连接。相关日志如下:
2023-02-24 02:22:03,691 [ 136847] FINE - #c.j.p.w.c.RemoteConnection - Opening connection to ftp://%host%:21/ in @1dd6f261 2023-02-24 02:22:03,744 [ 136900] FINE - #c.j.p.w.c.s.SocketWrapper - Default socket connection to %host%/88.99.160.97:21 60000 2023-02-24 02:22:03,791 [ 136947] WARN - #c.j.p.w.c.RemoteConnection - Retrying connecting to ftp://%host%:21/ in @1dd6f261: 1 iterations org.apache.commons.vfs2.FileSystemException: Unknown message with code "Could not connect to FTP server on "%host%".". at com.jetbrains.plugins.webDeployment.connections.PatchedFtpFileSystem.getClient(PatchedFtpFileSystem.java:109) at org.apache.commons.vfs2.provider.ftp.FtpFileObject.doGetChildren(FtpFileObject.java:103) at org.apache.commons.vfs2.provider.ftp.FtpFileObject.doListChildren(FtpFileObject.java:355) at org.apache.commons.vfs2.provider.AbstractFileObject.getChildren(AbstractFileObject.java:1043) at org.apache.commons.vfs2.provider.ftp.FtpFileObject.getChildren(FtpFileObject.java:343) at org.apache.commons.vfs2.provider.AbstractFileObject.getChild(AbstractFileObject.java:984) at com.jetbrains.plugins.webDeployment.connections.RemoteConnectionPool.lambda$createConnection$0(RemoteConnectionPool.java:255) at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:246) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "%host%". at org.apache.commons.vfs2.provider.ftp.FtpClientFactory$ConnectionFactory.createConnection(FtpClientFactory.java:230) at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:57) at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.createClient(FTPClientWrapper.java:77) at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.createClient(FTPClientWrapper.java:70) at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.getFtpClient(FTPClientWrapper.java:82) at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.<init>(FTPClientWrapper.java:52) at org.apache.commons.vfs2.provider.ftp.FtpFileSystem.createWrapper(FtpFileSystem.java:117) at com.jetbrains.plugins.webDeployment.connections.PatchedFtpFileSystem.access$000(PatchedFtpFileSystem.java:21) at com.jetbrains.plugins.webDeployment.connections.PatchedFtpFileSystem$FtpClientFactory.create(PatchedFtpFileSystem.java:29) at com.jetbrains.plugins.webDeployment.connections.PatchedFtpFileSystem$FtpClientFactory.create(PatchedFtpFileSystem.java:22) at org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:58) at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:899) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:429) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:354) at com.jetbrains.plugins.webDeployment.connections.PatchedFtpFileSystem.getClient(PatchedFtpFileSystem.java:106) ... 16 more Caused by: java.net.ConnectException: Connection refused at java.base/sun.nio.ch.Net.pollConnect(Native Method) at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672) at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:549) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:633) at com.jetbrains.plugins.webDeployment.config.sockets.SocketWrapper.connect(SocketWrapper.java:50) at org.apache.commons.net.SocketClient._connect(SocketClient.java:253) at org.apache.commons.net.SocketClient.connect(SocketClient.java:212) at org.apache.commons.vfs2.provider.ftp.FtpClientFactory$ConnectionFactory.createConnection(FtpClientFactory.java:169) ... 30 more 2023-02-24 02:22:12,827 [ 145983] FINE - #c.j.p.w.c.s.SocketWrapper - Default socket connection to %host%/88.99.160.97:21 60000 2023-02-24 02:22:14,876 [ 148032] WARN - #c.j.p.w.c.RemoteConnection - Connection cancelled to ftp://%host%:21/ in @1dd6f261 2023-02-24 02:22:15,605 [ 148761] INFO - #c.i.j.JdkEx - === TabbingMode: disabled (true,true,true,true) === 2023-02-24 02:22:15,609 [ 148765] INFO - #c.i.j.JdkEx - === TabbingMode: disabled (true,true,true,true) === 2023-02-24 02:23:07,667 [ 200823] WARN - #c.j.p.w.c.RemoteConnection - Forced closing file system of ftp://%host%:21/ in @1dd6f261 2023-02-24 02:23:07,675 [ 200831] FINE - #c.j.p.w.c.RemoteConnection - File system of ftp://%host%:21/ in @1dd6f261 is closed.
排查解决方案
- 检查PhpStorm代理设置:进入
File > Settings > Appearance & Behavior > System Settings > HTTP Proxy,确认设置为No proxy,或与FileZilla/VSCode使用相同的代理配置。 - 切换FTP连接模式:在Deployment的FTP服务器配置中,进入
Advanced标签页,将连接模式在Passive和Active之间切换测试。 - 验证防火墙/安全软件权限:暂时关闭本地防火墙或杀毒软件,或将PhpStorm加入信任列表,排查是否被拦截。
- 重置Deployment配置:删除现有FTP配置,重新创建,确保主机、端口、用户名、密码、根目录等参数与FileZilla完全一致,避免多余空格。
- 切换PhpStorm使用的JDK版本:进入
File > Project Structure > SDKs,尝试切换到PhpStorm自带JDK或其他稳定版本JDK。 - 禁用FTP连接池:按
Ctrl+Shift+A打开搜索框,输入Registry找到注册表,取消勾选deployment.connection.pool.enabled选项。
内容的提问来源于stack exchange,提问作者Vadym
相关产品推荐
相关产品推荐

