为啥我在尝试通过 Matlab ftp 访问 Box 时收到“连接被拒绝”?
Posted
技术标签:
【中文标题】为啥我在尝试通过 Matlab ftp 访问 Box 时收到“连接被拒绝”?【英文标题】:Why am I getting "connection-refused" when trying to access a TLS enabled FTP server [Box.com] via the Matlab ftp?为什么我在尝试通过 Matlab ftp 访问 Box 时收到“连接被拒绝”? 【发布时间】:2022-01-22 09:58:30 【问题描述】:我正在尝试使用 MATLAB ftp 功能来访问我的 Box 帐户中的文件。我通常通过 Box 网络平台或 FileZilla 手动处理我的 box 文件,两者都没有问题。但是,我现在正在尝试使用 Matlab 自动化这个过程,并且似乎已经遇到了第一个障碍。
按照 MATLAB ftp 文档 (link) 我尝试为我的 Box 地址设置 ftp 对象失败:(注意,我通过该文档中的示例没有问题)
>>ftpobj = ftp("ftp.box.com",myUname, myPassword);
Error using matlab.io.ftp.FTP (line 175)
Connection refused for "ftp://ftp.box.com".
Error in ftp (line 63)
h = matlab.io.ftp.FTP(host, varargin:);
Error in NotForGithub (line 8)
ftpobj = ftp("ftp.box.com",myUname, myPassword);
经过一番搜索,我发现 r2021b 在某个时候出现了 FTP 错误 (link),但尝试他们的示例后,我发现这不是我的问题:
>> ftpobj = ftp("ftp.ngdc.noaa.gov")
FTP with properties:
Host: "ftp.ngdc.noaa.gov"
Username: "anonymous"
Port: 21
ServerLocale: "en_US"
DirParserFcn: @matlab.io.ftp.parseDirListingForUnix
Mode: "binary"
LocalDataConnectionMethod: "passive"
RemoteWorkingDirectory: "/"
我还是更新了 Matlab,但问题仍然存在。受上述启发,我尝试在不提供详细信息的情况下访问 Box(以防特别出现问题),但仍然遇到以下问题:
>> ftpobj = ftp("ftp.box.com")
Error using matlab.io.ftp.FTP (line 175)
Connection refused for "ftp://ftp.box.com".
Error in ftp (line 63)
h = matlab.io.ftp.FTP(host, varargin:);
我还看到人们谈论“用于 Matlab (v2) 的 SSH/SFTP/SCP”(link),但我完全不清楚如何将其应用到我现在尝试这样做,所以如果这是解决方案并且您对我如何使用它有任何提示 - 请告诉我!谢谢
(我也在 MATLAB 社区论坛上发布了此内容,并将在此处粘贴我得到的任何答案 (link))
编辑:这是我通过 FileZilla 连接时的输出:
Status: Resolving address of ftp.box.com
Status: Connecting to 107.152.26.220:21...
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Status: Directory listing of "/" successful
【问题讨论】:
请发布任何命令行/GUI FTP 客户端的详细日志文件,该客户端可以从运行您的 Matlab 代码的同一台机器成功连接到ftp.box.com
。
@MartinPrikryl 现在补充说
提到 TLS 的 FileZilla 状态消息暗示它正在安全地连接,而不仅仅是通过普通的 FTP。您是否尝试过使用 MATLAB sftp 而不是 ftp?
@nekomatic SFTP 不是基于 TLS 的 FTP。虽然 FileZilla 确实使用了 TLS,但它仍然连接到端口 21。因此,如果 Matlab 甚至无法连接到端口,则 TLS 本身的缺失应该不是问题(当然,除非 Matbal “连接被拒绝” 错误信息具有误导性)。虽然很奇怪 FileZilla 可以连接,而 Matlab 不能(假设 OP 真的在同一台机器上运行,正如我所要求的那样)。我能想到的唯一解释是特定于应用程序的防火墙规则,但这并不常见。
@wwweagle 正如我在上面评论的那样——虽然这绝对是正确的做法,但不太可能解决 “连接被拒绝” 问题。
【参考方案1】:
ftpobj = ftp("ftp.box.com",myUname, myPassword,'TLSMode','strict');
似乎已修复它:-)。
但请查看问题后面的 cmets 以了解其他类似问题。
【讨论】:
以上是关于为啥我在尝试通过 Matlab ftp 访问 Box 时收到“连接被拒绝”?的主要内容,如果未能解决你的问题,请参考以下文章
PhpStorm 9:为啥通过 FTP 连接时远程路径的目录/文件不显示
为啥我在尝试访问此 WordPress 网站时收到此 403 Forbidden 错误?为啥它无法读取 .htaccess 文件?
为啥我在尝试访问 spark master webUI 时会重置连接?