我想在linux中挂载一个远程FTP目录。我发现的主要工具之一是curlftpfs
.
但是,当我挂载远程 FTP 目录并尝试读取其内容时,出现以下错误:
$ curlftpfs -o allow_other ftp://test.rebex.net testftp
$ ls testftp
ls: reading directory 'testftp': Input/output error
test.rebex.net
是一个公开可用的 FTP 服务器。我还尝试了其他几台服务器和一台私人服务器,并得到了同样的错误。使用 root、诸如ssl
、ftp_port=-
、完全禁用防火墙之类的选项,在全新的 arch/manjaro 系统上运行都没有帮助。不过,我可以使用 filezilla 或ftp
工具连接到这些服务器。
使用 debug ( ) 选项运行时的输出-d
(完整输出,未编辑或截断):
$ curlftpfs -d ftp://test.rebex.net testftp
FUSE library version: 2.9.9
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
unique: 2, opcode: INIT (26), nodeid: 0, insize: 104, pid: 0
INIT: 7.39
flags=0x73fffffb
max_readahead=0x00020000
INIT: 7.19
flags=0x00000011
max_readahead=0x00020000
max_write=0x00020000
max_background=0
congestion_threshold=0
unique: 2, success, outsize: 40
使用的curftpfs版本是0.9.2
可能是什么问题呢?
答案1
似乎不支持用于检索目录列表的curlftpfs
较新标准化 FTP 命令。MLSD
某些服务器(例如test.rebex.net
)很可能不支持旧的(且非标准化的)LIST -a
命令。有curlftpfs
支持MLSD
命令的分支(例如这),但我还没有尝试过。
相反,我为自己找到了一个替代方案rclone
。支持FUSE和FTP,并使用MLSD
命令。