Filezilla自动修改换行符的问题

124 views
Skip to first unread message

yixf

unread,
Nov 29, 2011, 11:47:57 PM11/29/11
to shlug
大家好!
     我在使用Filezilla传输文件的时候,发现它会自动转换换行符,但转换的不对。具体描述如下:
     1.环境描述
      客户端:Ubuntu 11.10, vim 7.3,Filezilla 3.5.0
      服务器:CentOS 6.0, vim7.2,vsftpd 2.2.2

     2.问题详述
   FTP传输模式有两种:文本模式和二进制模式。Filezilla的默认设置是自动模式。此时,从客户端上传一个文本文件(我上传的是perl脚本*.pl)到服务器端。之后分别使用file和cat -A来查看(此处以一个简单的perl脚本作为例子):
客户端:
t.pl: a /usr/bin/perl  script text executable
#!/usr/bin/perl $
$
use strict;$
use warnings;$
服务器:
t.pl: a /usr/bin/perl \015 script text executable
#!/usr/bin/perl ^M$
^M$
use strict;^M$
use warnings;^M$

很明显是换行符进行了转换。如果强制采用二进制传输模式,不存在此问题。

    3.我的问题:
1.FTP的文本传输模式不是自动监测操作系统从而转换换行符吗?为什么明明是Linux(CentOS),却转换成了dos的换行符?
2.是Filezilla本身的设置问题,还是服务器上vsftpd的配置问题?
3.如何一步一步查找问题的所在,进而解决?

谢谢!

--
世事浮沉如落木,人生聚散似漂萍。
个人博客:http://yixf.name
程序代码:http://code.google.com/p/yixf-codes/

Zind

unread,
Nov 30, 2011, 9:45:20 AM11/30/11
to sh...@googlegroups.com
同用 FileZilla ,没有发现有这种问题……
它一个 ftp 工具,应该不会去转换文件内容吧。
而且,觉得即使是在 Windows 和 Linux 之间传文件,它也不应该去转换字符,感觉越权了……


2011/11/30 yixf <yixf...@gmail.com>

cool king

unread,
Nov 30, 2011, 10:02:45 AM11/30/11
to sh...@googlegroups.com
貌似是Filezilla的问题..我们学校用FTP上传下载作业,用Filezilla经常出问题,直接拖或者用其他windows的FTP工具都很正常

yixf

unread,
Nov 30, 2011, 7:04:15 PM11/30/11
to sh...@googlegroups.com
用scp没问题,但使用filezilla就有问题。
初步怀疑是filezilla的配置问题。

yixf

unread,
Nov 30, 2011, 7:04:59 PM11/30/11
to sh...@googlegroups.com
是不是你强制使用二进制传输模式了?

在 2011年11月30日 下午10:45,Zind <wzmi...@gmail.com>写道:

Zind

unread,
Nov 30, 2011, 7:28:24 PM11/30/11
to sh...@googlegroups.com
没有。我刚才看了下,Default transfer type 一项下,勾选的是 Auto。
Auto 是什么意思,根据实际情况自已判断?

2011/12/1 yixf <yixf...@gmail.com>

liyaoshi

unread,
Nov 30, 2011, 10:15:28 PM11/30/11
to sh...@googlegroups.com
这种文本文件当二进制传输的时候才会有问题

如果是文本,ftpclient里面会先有个ASCII命令,就不会有问题了

filezilla 最新版本还有这个问题吗?

如果还有问题,局域网上SAMBA,外网用Zmodem

在 2011年12月1日 上午8:28,Zind <wzmi...@gmail.com> 写道:
> 没有。我刚才看了下,Default transfer type 一项下,勾选的是 Auto。
> Auto 是什么意思,根据实际情况自已判断?
>
>
> 2011/12/1 yixf <yixf...@gmail.com>
>>
>> 是不是你强制使用二进制传输模式了?
>>
>> 在 2011年11月30日 下午10:45,Zind <wzmi...@gmail.com>写道:
>>>

>>> 同用 FileZilla ,没有发现有这种问题......
>>>
>>> 它一个 ftp 工具,应该不会去转换文件内容吧。
>>> 而且,觉得即使是在 Windows 和 Linux 之间传文件,它也不应该去转换字符,感觉越权了......

Zind

unread,
Nov 30, 2011, 10:45:42 PM11/30/11
to sh...@googlegroups.com
FileZilla 3.5.0,from Fedora 15 to RedHat AS4
刚才又测试了下,传一个文本文件,强制用文本模式或二进制模式,用 file 或者 cat -A 查看,都没有异常

2011/12/1 liyaoshi <liya...@gmail.com>

yixf

unread,
Dec 1, 2011, 7:18:17 PM12/1/11
to sh...@googlegroups.com
奇怪了,莫非不是Filezilla的问题,而是服务器上vsftpd的配置问题?
还是……我见鬼了?

Zind

unread,
Dec 1, 2011, 9:07:03 PM12/1/11
to sh...@googlegroups.com
2011/12/2 yixf <yixf...@gmail.com>
而是服务器上vsftpd的配置问题?

神嘛玩意儿?不妨说来听听,这个东东,我没有配置过……

yixf

unread,
Dec 2, 2011, 7:56:42 PM12/2/11
to sh...@googlegroups.com
具体情况不明,我只是猜测而已。
希望精通这方面的朋友可以给点建议,找到问题的切入口。

yixf

unread,
Dec 4, 2011, 9:54:11 PM12/4/11
to sh...@googlegroups.com
找到原因了,确实是服务器端的配置导致的。
只要在配置文件中启用以下两行即可:
ascii_upload_enable=YES
ascii_download_enable=YES

解释如下:

默认情况下,VSFTPD是禁止使用ASCII传输模式。即使FTP客户端使用asc命令,指明要使用ASCII模式,但是,VSFTPD表面上接受了asc命令,而在实际传输文件时,还是使用二进制方式。下面选项控制VSFTPD是否使用ASCII传输模式。

  ascii_upload_enable=YES|NO

  控制是否允许使用ascii模式上传文件,YES允许,NO不允许,默认为NO。

  ascii_download_enable=YES|NO

  控制是否允许使用ascii模式下载文件,YES允许,NO不允许,默认为NO。


如果有熟悉这方面知识的朋友,可以深入解释一下。谢谢!

Zind

unread,
Dec 5, 2011, 12:07:44 AM12/5/11
to sh...@googlegroups.com
你说的是 /etc/vsftpd/vsftpd.conf 这个配置文件吧?
我刚在服务器上看了下,上面没有装 vsftpd 这个东东……

2011/12/5 yixf <yixf...@gmail.com>

yixf

unread,
Dec 5, 2011, 5:31:15 AM12/5/11
to sh...@googlegroups.com
就是这个配置文件。
Reply all
Reply to author
Forward
0 new messages