扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
一,故障症状:
笔者通过Gene 6 ftp建立工具搭建了一个FTP服务器,客户端登录程序采用的是Flashfxp,结果在登录时发现访问英文字母命名的目录没有任何问题,而一旦该目录名称是中文的话,在访问时会出现有的时候正常,大多数时登录进目录后不会有任何显示。
二,故障分析:
既然知道了故障现象,那么我们就可以从现象进行分析,既然英文字母命名的目录可以访问,这就说明FTP服务开启没有问题,网络连接也是畅通的。中文不能显示很可能是因为编码的问题。所以问题就转变为开启FTP服务端的UTF-8编码了。
三,初步排查:
确定了编码问题后笔者查询了Gene 6的帮助手册,发现里面提到了Gene 6是支持UTF-8编码的,既然服务端支持UTF-8编码,那么上述问题就应该出自客户端flashfxp上。于是笔者更换了FTP登录工具,选择FtpRush工具进行连接,结果一切顺利,不管是中文还是英文目录都可以正常访问。看来问题是出在flashfxp不支持UTF-8编码上。
四,继续排查:
笔者决定通过日志记录信息来查看flashfxp登录信息,选择“G6控制台->FTP Server->Logs & reports->Main log”,我们看到了有一行记录为“2008-09-16 7:56:10 PM Language : Chinese (PRC)”。看来问题就是出自于此。(如图1)
Gene 6应该是支持自动UTF8传输的,而ftprush也是支持UTF8,在client连上去后CLINT客户端会发送ftp client信息,G6认为支持UTF8就会启用UTF8传输,这样列表和访问对应目录就与系统字符集无关也与client的os无关了。但是Flashfxp则不支持UTF-8编码,用其连接到FTP服务器后Gene 6将不按照FTP客户端设置而直接通过操作系统的编码进行设置。如果这时你的操作系统语言编码是英文,那么必然会出现上述无法访问中文目录的问题。
五,解决问题:
了解了故障的根源后我们可以通过以下两种方法解决。
(1)设置系统语言字符集为China (PRC),重启后就可以解决中文目录访问问题。(如图2)
(2)设置一个系统账号使用语言为China(PRC),然后去服务管理那里,设置G6 service Logon account使用这个账号而不是local system account。
小提示:
如果通过上面的设置依然无法解决问题,我们还要继续修改语言设置,把所有的区域设置,不光是non-unicode设置,还有地区、数字格式等等全部改成中国即可。
六,总结:
数据通讯的智能化往往可以给我们带来很多便利,用户不需要进行烦琐的设置就可以轻松实现很多功能,不过有时候这种所谓的智能化还会为我们的应用帮倒忙,本文的故障就是一个典型的例子,正因为FTP服务端与客户端这种智能协商传输语言的特点,造成了不支持utf-8编码的flashfxp客户端工具无法顺利访问FTP服务器上的中文目录。因此日后我们这些普通网络管理员遇到无法解释的难题时可以从这种智能化错误入手解决故障。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者