修复VSFTPD的乱码

相信大家都对vsftpd的乱码问题很头疼,这里的补丁包是某位达人编写的,在这里表示非常感谢
源里最新的vsftpd版本是2.0.6的,这里使用了源里提供的源码包进行打补丁

这里有点建议,如果想让自己编译后的vsftpd与源安装没有什么区别的话
最好先安装源中的vsfpd,然后把所有的功能都配置完后,在解决中文乱码问题
因为删除源的vsftpd后它的/init.d/vsftpd与/vsftpd.conf是不会删除的,可以为我们打好铺垫,不然你会发现很无奈的!如果你是直接编译安装,附件给出会给出我的init.d/vsftpd与vsftpd.conf文件,把他们覆盖到/etc下吧!

这里是需要手工编译的,大家不要怕麻烦,其实很简单的
开始做编译的准备工作,准备编译环境需要的库包
sudo apt-get build-dep vsftpd
—————————————-
这里使用先安装源里的vsftpd,然后卸载
sudo apt-get install vsftpd
sudo apt-get remove vsftpd

—————————————–
下载附件并解压包
tar -zxvf vsftpd-2.0.6
cd vsftpd-2.0.6
sudo su :使用root用户开始编译
make #编译命令,如果无错误出现,表示成功
make install #安装

如果安装中出现找不到目录的话,就建立那个缺的目录就好了
基本上都会提示缺少/man8和/man5目录的,建立后在重新make install

下边就来测试下效果修改配置文件,加入
charset_filter_enable=YES #开启符过滤
charset_client=GB2312 #客户端字符设置为简体中文

好了现在把服务开启测试下吧
sudo /etc/init.d/vsftpd restart

在win下上传一个中文文件,看看效果吧,然后在把配置文件中关于字符的关掉,重起服务,在看吧

如果有什么问题的话,请回帖留言
已经测试过,服务器ubuntu8.04-server,客户机xp,xp上传后编码正常
补充下会遇到的问题
1:如果使用/etc/init.d/vsftpd restart 没有任何输出的话,请更改/init.d/vsftpd的内容把启动路径该为/usr/local/sbin/vsftpd,因为编译安装首先会优先安装到这个路径
2:如果匿名用户无法登陆,老是提示不允许匿名登陆而配置文件中又设置了允许,请建立目录
sudo mkdir /usr/share/empty 建立后就可以了
3:如果在linux下上传文件,如果工具允许的话,设置为gb2312编码上传,或是尽量用英文
4:因为补丁在一定程度覆盖原程序,所以有2G限制,有时间会去看下源代码的,基本确定是数值溢出问题
如果修复的话,会补充上的

集成vsftpd-2.0.6-encoding.patch与vsftpd-syscall.patch补丁的源码包,源码包可以放心使用,包源来自ubuntu.cn99.com
vsftpd-2.0.6.tar.gz [172.67 KiB]
包含/etc/init.d/vsftpd与/etc/vsftpd.conf
vsftpd.tar.gz [1.1 KiB]

修复VSFTPD的乱码》上有4条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注