LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1578|回复: 11

提问:ftpd服务器 utf8 <--> GBK 之间的转码问题。(1/3 done)

[复制链接]
发表于 2008-10-30 18:17:35 | 显示全部楼层 |阅读模式
机房的服务器(gentoo)原来一直用打了 encoding 补丁的 vsftpd-2.0.4 来提供 ftp服务,服务器是 utf8 的编码,客户端一般情况下就是 IE 了:)
后因一次升级,vsftpd-2.0.4不能正常启用了,重新编译不成功。
* 于是从网上下载了vsftpd-2.0.5及vsftpd-2.0.6的encoding补丁,编译正常,但使用时无效,客户端看到的依然是utf8的文件名。
* 原来在采用vsftpd-2.0.4之前是考虑过pure-ftpd的,它的转码功能非常的强大。之所以放弃,是因为一个更无厘头的原因:用IE作客户端的时候不能以中文文件名上传,如果文件是中文名(如“测试!.txt”),则上传的文件会变成一个无法识别和删除的文件,在服务器中看到的此文件名为一个“?”号,大小为0。用其他ftp客户端(如filezilla)则正常。这两天又反复测试用不同的USE去编译了pure-ftpd,但问题依旧。有些怀疑是自己配置文件的问题,但gentoo的pure-ftpd配置文件和其他发行版的有些不大一样。我还是将它放在这里晒晒吧,请大伙帮忙指正。
/etc/conf.d/pure-ftpd
  1. IS_CONFIGURED="yes"
  2. SERVER="-S 21"
  3. MAX_CONN="-c 100"
  4. MAX_CONN_IP="-C 10"
  5. DAEMON="-B"
  6. DISK_FULL="-k 100%"
  7. AUTH="-l unix"
  8. CHARCONV="--fscharset utf8 --clientcharset GBK"
  9. DisplayDotFiles="no"
  10. MISC_OTHER="-E -b -X -H -j -R -b -Z -4 -a 10 -u 1"
复制代码
* 还有一个转码也很方便的proftpd,但就是这家伙也欺生。在emerge的时侯出问题了,症状如下:
  1. ……
  2. modules/mod_ctrls.o modules/mod_lang.o modules/module_glue.o  -lacl  -Llib/libcap -lcap  -lldap -ll
  3. ber  -lwrap -lnsl  -lssl -lcrypto  -lpam -lsupp -lcrypt
  4. i686-pc-linux-gnu-gcc -L./lib -Wl,-O1 -lresolv  -o ftpdctl src/ftpdctl.o src/pool.o src/netaddr.o src/log.o src/ctrls.o -lacl  -Llib/libcap -lcap  -lldap -llber  -lwrap -lnsl  -lssl -lcrypto  -lpam -lsupp -lcrypt
  5. ./libtool: line 454: CDPATH: command not found
  6. ./libtool: line 1146: func_opt_split: command not found
  7. libtool: Version mismatch error.  This is libtool 2.2.6, but the
  8. libtool: definition of this LT_INIT comes from an older release.
  9. libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6
  10. libtool: and run autoconf again.
  11. make: *** [proftpd] Error 63
  12. make: *** Waiting for unfinished jobs....
  13. *
  14. * ERROR: net-ftp/proftpd-1.3.1 failed.
  15. * Call stack:
  16. * ebuild.sh, line   49:  Called src_compile
  17. * environment, line 2930:  Called die
  18. * The specific snippet of code:
  19. * emake || die "emake failed"
  20. * The die message:
  21. * emake failed
复制代码
重编译了libtool, 于事无补。于是干脆跑到bugzilla里下了个最新1.3.2rc2版的ebuild回来,新版本编译倒是成功了,但启动又出了问题,我从/etc/proftpd/proftpd.conf.example复制过来的配置文件怎么调整都不对,google了一些资料,却发现网上对配置文件的介绍都很简单,胡乱复制了一些进来,依然无法启动。

三大ftp服务器无一能用,portage何厚,ebuild何薄!请大伙帮忙,谢了!

---------* * *---------------
感谢druggo的提醒,已经用上了proftpd。另,portage中的proftpd已经升级,直接emerge就ok了。

vsftpd的问题也已解决。补丁在此:
http://bugs.gentoo.org/show_bug.cgi?id=200811

另外pure-ftpd的问题还没能解决,请有经验的朋友给出您的方案
发表于 2008-10-30 20:31:39 | 显示全部楼层
启动出问题?什么问题?看日志的信息,
proftpd 有-t参数来测试配置文件正确与否。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-31 09:17:39 | 显示全部楼层
谢谢楼上。

proftpd -t
  1. Checking syntax of configuration file
  2. - warning: unable to determine IP address of 'zmtux'
  3. - error: no valid servers configured
  4. - Fatal: error processing configuration file '/etc/proftpd/proftpd.conf'
复制代码

找到原因了,是defaultaddress没有设置。
回复 支持 反对

使用道具 举报

发表于 2008-11-1 01:01:19 | 显示全部楼层
pure-ftpd 正常。USES 为:
  1. thinkpad kamikaze # eix -I pure-ftpd
  2. [i] net-ftp/pure-ftpd
  3.      Available versions:  1.0.21-r1 {anondel anonperm anonren anonres caps charconv ldap mysql noiplog pam paranoidmsg postgres selinux ssl vchroot xinetd}
  4.      Installed versions:  1.0.21-r1(06:59:57 PM 10/30/2008)(charconv ldap pam ssl -anondel -anonperm -anonren -anonres -caps -mysql -noiplog -paranoidmsg -postgres -selinux -vchroot -xinetd)
  5.      Homepage:            http://www.pureftpd.org/
  6.      Description:         Fast, production-quality, standard-conformant FTP server.
复制代码
pure-ftpd 配置文件为:
  1. IS_CONFIGURED="yes"
  2. SERVER="-S 192.168.1.3,21"
  3. MAX_CONN="-c 30"
  4. MAX_CONN_IP="-C 10"
  5. DAEMON="-B"
  6. DISK_FULL="-k 99%"
  7. AUTH="-l unix"
  8. CHARCONV="--fscharset utf8 --clientcharset cp936"
  9. MISC_OTHER="-x -E -j -M -p 60001:60011 -R -Z"
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-11-1 07:36:44 | 显示全部楼层
pure-ftpd要打开charconv的USE吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-1 08:15:37 | 显示全部楼层
SDE你好,对比并采用了你的配置文件,但问题依旧。

我在笔记本,台式机,服务器三台不同设置,不同软件,不同use的机器上测试过,都是同样的问题:
用IE6上传一个名为 “测试!.txt” 的文件(标点为中文),刷新后文件名变为乱码,不能下载也不能删除。

rpwt?
回复 支持 反对

使用道具 举报

发表于 2008-11-1 09:16:17 | 显示全部楼层
别的客户端呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-1 09:38:43 | 显示全部楼层
Post by SDE
别的客户端呢?
别的客户端没有这个问题。

因为我的ftp服务对象只懂用ie,别的客户端难以普及,我也懒得花心思和时间去给他们上培训课:)

万恶的MS,万恶的IE.
回复 支持 反对

使用道具 举报

发表于 2008-11-1 12:06:33 | 显示全部楼层
看那个乱码里边,有什么还可以打出的字符,比如.txt,然后,
mv *.txt 测试.txt不就行了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-1 15:41:08 | 显示全部楼层
Post by kwindva;1902386
看那个乱码里边,有什么还可以打出的字符,比如.txt,然后,
mv *.txt 测试.txt不就行了吗?

谢谢关注。

当然,已经出错的文件是可以这么处理。
但我也不想每天花半小时或更多的时间登录在服务器上去专门处理这些乱码的文件
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表