You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:42:31