昨天,我在客户端的 FTP 上发现了一个非常奇怪的错误/怪癖......
我没有运行 FTP 服务器,所以我实际上无法在那里检查任何内容,但是,当我通过命令行登录时,我被告知它正在运行:
Serv-U FTP Server v6.4 for WinSock
无论如何,客户端对日期文件夹的命名约定是“%y%m%d”,因此今天(2010 年 2 月 28 日)将是“100228”。
昨天我尝试创建一个名为“100227”的文件夹时注意到了这个问题(我使用 Cyberduck)
它立即出现在 FTP 站点上,但它被称为“10022_”。我删除它,然后重试,结果还是一样。
为了上传,我最终稍微改变了命名,改为“2010-02-27”,这样就好了。
然后他们给我发送了一些东西,并将其放在“/From_CLIENTS/10027”中(他们可以直接访问服务器,因此没有通过 FTP 访问它)
当我尝试通过 Cyberduck 访问它(双击文件夹)时,它告诉我:
/From_CLIENTS/10022_: No such file or directory.
我也在 Filezilla 中尝试过这个,但遇到了同样的问题。
然后我通过终端 FTP 登录。结果如下:
ftp> cd /From_CLIENTS/100227
550 /From_CLIENTS/10022_: No such file or directory.
这确实有点奇怪。
我设法通过在末尾添加一个斜线来解决这个问题:
ftp> cd /From_CLIENTS/100227/
250 Directory changed to /From_CLIENTS/10022_
一切都很奇怪。我只遇到过这个日期的问题。我试过的其他所有方法都很好用。
有什么想法吗?FTP 服务器有 bug 吗?
答案1
似乎有什么东西在您将命令发送到服务器时以及当服务器将最后一个示例中的成功消息发回给您时,将行尾的数字 100227 转换为 10022_。(除非您错误地引用了最后的响应。)
我在 Google 搜索结果中找到了0227 改为 022_和277 改为 22_这表明,名为 Check Point NGX 的防火墙产品具有一个名为 FTP 反弹的 SmartDefense 设置,它会在 FTP 会话中将 277 更改为 22_。
例如,在FTP 穿越防火墙的奇怪行为,有人描述了类似的问题,并询问这是否是防火墙问题。在多次提出有关无效字符的建议后,在最后一篇帖子中,有人记得之前由于 Check Point NGX 防火墙设置而遇到过此问题。
这里有一个支持文档,似乎与问题相符,但要查看解决方案,您需要登录: Check Point 支持中心 - 以“227”结尾的 FTP 命令行被替换为“22_”
答案2
这是 Windows 服务器,听起来像是 fat32 长名称问题。防止长文件名。尝试将以相同约定命名的文件放在根文件夹中。它应该按预期命名。