在我的 Mac 上,我通过 VirtualBox 加载了 Ubuntu VM 14.04 LTS。在其中,我加载了 Firefox 浏览器和 FireFTP 插件。在不更改我的 Mac 或 Ubuntu 上的任何设置的情况下,在一切运行正常几年后,突然我的 FireFTP 插件显示“无法建立连接。请重试”。即使发生这种情况,我仍可以通过命令行顺利通过 SSH 进入主机,并通过 FileZilla 顺利使用 SFTP。这些主机有备用 SFTP 端口,我确保端口设置正确。我还可以从 Ubuntu VM 顺利浏览网页。
尝试过的方法及其结果:
- 使用浏览器。可以从 Ubuntu VM 顺利浏览网页。
- 通过命令行使用 SSH。可以通过命令行顺利通过 SSH 进入这些相同的主机。
- 安装了 FileZilla 并尝试使用 SFTP 连接到这些主机。一切正常。
- 关闭 Ubuntu,将 Virtualbox 从 NAT 切换到 Bridged Adapter,然后重试。失败。因此,切换回 NAT。
- 我用最新的更新更新了我的 Ubuntu 14.04。FireFTP 仍然失败。
- 将 ~/.mozilla 重命名为 ~/.mozilla.LAST 并启动 Firefox。重新安装 FireFTP 插件。尝试连接到已知的良好主机 — — 仍然失败。
- 拿起一台 Windows 笔记本电脑并从那里测试了 Firefox 和 FireFTP——在我的家庭网络上运行良好。
- 在我的家庭网络上重新启动路由器并再次尝试一切。Ubuntu VM FireFTP 失败。
- 已关注这些说明并能够成功使用匿名 FTP 从 Ubuntu VM 使用 FireFTP 访问主机。但 SFTP 仍然失败。
- 尝试通过普通用户从命令行启动 Firefox,以便查看调试消息。尝试 SFTP 时没有出现任何异常。
我在 FireFTP 插件中打开了完整调试,它显示了以下内容:
DEBUG: ({account:"", host:"", port:"", login:"", password:"", anonymous:false, security:"sftp", pasvmode:true, ipmode:false, treesync:false, localdir:"", remotedir:"/var/www", webhost:"", prefix:"", downloadcasemode:0, uploadcasemode:0, encoding:"UTF-8", notes:"", timezone:0, folder:"", privatekey:"", protocol:"ssh2"})
DEBUG: gConcurrent:1, gMaxCon:10, gRefreshMode:true, gTempPasvMode:true, gLoadUrl:false, fileMode:n/a, protocol:ssh2, hiddenMode:true, keepAliveMode:true, networkTimeout:30, proxyHost:, proxyPort:0, proxyType:, activePortMode:n/a, activeLow:n/a, activeHigh:n/a, reconnectMode:true, sessionsMode:true, timestampsMode:false, useCompression:true, integrityMode:true, userAgent:Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:47.0) Gecko/20100101 Firefox/47.0
Debug: this._transport.use_compression is not a function
paramikojs.SSHClient.prototype.connect@chrome://fireftp/content/js/connection/paramikojs/client.js:321:5
ssh2Mozilla.prototype.connect@chrome://fireftp/content/js/connection/ssh2.js:133:24
connect@chrome://fireftp/content/js/connection/ftpController.js:98:3
oncommand@chrome://fireftp/content/fireftp.xul:1:1
Unable to make a connection. Please try again.
Unable to make a connection. Please try again.
Debug: this._transport.use_compression is not a function
paramikojs.SSHClient.prototype.connect@chrome://fireftp/content/js/connection/paramikojs/client.js:321:5
ssh2Mozilla.prototype.connect@chrome://fireftp/content/js/connection/ssh2.js:133:24
baseProtocol.prototype.reconnect@chrome://fireftp/content/js/connection/baseProtocol.js:236:5
baseProtocol.prototype.onDisconnect/func@chrome://fireftp/content/js/connection/baseProtocol.js:191:33
Unable to make a connection. Please try again.
Unable to make a connection. Please try again.
答案1
Mozilla 网站上 FireFTP 插件评论页面的最新报告称最新版本已损坏。我回滚到 2015 年的最后一个版本,然后又可以运行了。方法如下:
- 单击 FF 中的附加组件按钮。
- 单击扩展。如果您已在此处添加 FireFTP,请将其删除并重新启动 FF。如果您已安装 FireFTP,则可以保留该按钮。
- 单击 FF 中的附加组件按钮。
- 搜索 FireFTP。
- 您将在 FireFTP 插件说明的末尾看到一个小蓝色链接,上面写着“更多”。单击它。
- 在评级中搜索评论链接。点击它。
- 在侧边栏中,单击作者姓名上方的 FireFTP 超链接。
- 向下滚动到底部,折叠部分将显示版本信息。单击其上的按钮将其展开。
- 点击“查看完整版本历史记录”。
- 向下滚动到您想要的最后一个已知良好版本。对我来说,那是 2015 年 11 月和版本 2.0.26。单击版本描述右侧的空白处,然后会出现一个绿色的“安装”按钮。单击“添加到 Firefox”,然后在下载后单击“安装”。等到弹出“立即重启”对话框时,单击它。
- 重新启动后,当您单击加载 FireFTP(我使用 FireFTP 按钮扩展来执行此操作)时,它的工作方式与以前一样。
- 现在您可能想暂时关闭自动更新功能,直到修复此 FireFTP 错误为止。为此,请单击“附加组件”按钮将其打开。
- 单击扩展。
- 您将看到一个带有下拉菜单的齿轮图标按钮。单击该按钮。
- 取消勾选“自动更新插件”。现在,这不是保存浏览器设置的推荐方式,因为自动更新更安全,但在修复此错误之前,它将暂时有效。