Windows客户端访问FTP应用服务器出现乱码。这是由于UTF-8与GBK不兼容而头疼的引起的,采用源码方式编译安装就可将此问题解决。
乱码解决过程:
1、首先使用 rpm -e vsftpd卸载系统安装的默认VSFTPD应用服务器:
[root@localhost ~]# rpm -e vsftpd
2、从http://vault.centos.org/6.3/updates/Source/SPackages/网站下载vsftpd-2.2.2-11.el6_3.1.src.rpm 源码包。
3、使用 rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 对该包进行安装:
[root@localhost birdofprey]# rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm
安装过程中系统会提示类似如下错误:
warning: vsftpd-2.2.2-11.el6_3.1.src.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
1:vsftpd warning: user mockbuild does not exist - using root
########################################### [100%]
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
此时需要使用adduser mockbuild命令创建mockbuild用户:
[root@localhost birdofprey]# adduser mockbuild
4、重新使用rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 对该包进行安装:
[root@localhost birdofprey]# rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm
warning: vsftpd-2.2.2-11.el6_3.1.src.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
1:vsftpd ########################################### [100%]
5、使用命令 cd /root/ rpmbuild/SOURCES/vsftpd/SOURCES进入vsftpd源码包目录,并使用tar -zxvf vsftpd-2.2.2.tar.gz解压vsftpd-2.2.2.tar.gz源码包:
[root@localhost SOURCES]# tar -zxvf vsftpd-2.2.2.tar.gz
6、使用命令cd vsftdp-2.2.2进入vsfftpd-2.2.2源码目录:
[root@localhost SOURCES]# cd vsftpd-2.2.2
7、使用命令vi features.c修改 features.c文件;将行内容为:vsf_cmdio_write_raw(p_sess, " UTF8rn");
修改为://vsf_cmdio_write_raw(p_sess, " UTF8rn")。
8、使用命令vi opts.c修改 opts.c文件;
将handle_opts函数修改成如下:
复制代码
void
handle_opts(struct vsf_session* p_sess)
{
str_upper(&p_sess->ftp_arg_str);
//if (str_equal_text(&p_sess->ftp_arg_str, "UTF8 ON"))
//{
//vsf_cmdio_write(p_sess, FTP_OPTSOK, "Always in UTF8 mode.");
//}
//else
//{
//vsf_cmdio_write(p_sess, FTP_BADOPTS, "Option not understood.");
//}
}
9、返回上层目录并使用 tar -zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/命令重新压缩vsftpd-2.2.2.tar.gz文件:
乱码解决过程:
1、首先使用 rpm -e vsftpd卸载系统安装的默认VSFTPD应用服务器:
[root@localhost ~]# rpm -e vsftpd
2、从http://vault.centos.org/6.3/updates/Source/SPackages/网站下载vsftpd-2.2.2-11.el6_3.1.src.rpm 源码包。
3、使用 rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 对该包进行安装:
[root@localhost birdofprey]# rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm
安装过程中系统会提示类似如下错误:
warning: vsftpd-2.2.2-11.el6_3.1.src.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
1:vsftpd warning: user mockbuild does not exist - using root
########################################### [100%]
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
此时需要使用adduser mockbuild命令创建mockbuild用户:
[root@localhost birdofprey]# adduser mockbuild
4、重新使用rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 对该包进行安装:
[root@localhost birdofprey]# rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm
warning: vsftpd-2.2.2-11.el6_3.1.src.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
1:vsftpd ########################################### [100%]
5、使用命令 cd /root/ rpmbuild/SOURCES/vsftpd/SOURCES进入vsftpd源码包目录,并使用tar -zxvf vsftpd-2.2.2.tar.gz解压vsftpd-2.2.2.tar.gz源码包:
[root@localhost SOURCES]# tar -zxvf vsftpd-2.2.2.tar.gz
6、使用命令cd vsftdp-2.2.2进入vsfftpd-2.2.2源码目录:
[root@localhost SOURCES]# cd vsftpd-2.2.2
7、使用命令vi features.c修改 features.c文件;将行内容为:vsf_cmdio_write_raw(p_sess, " UTF8rn");
修改为://vsf_cmdio_write_raw(p_sess, " UTF8rn")。
8、使用命令vi opts.c修改 opts.c文件;
将handle_opts函数修改成如下:
复制代码
void
handle_opts(struct vsf_session* p_sess)
{
str_upper(&p_sess->ftp_arg_str);
//if (str_equal_text(&p_sess->ftp_arg_str, "UTF8 ON"))
//{
//vsf_cmdio_write(p_sess, FTP_OPTSOK, "Always in UTF8 mode.");
//}
//else
//{
//vsf_cmdio_write(p_sess, FTP_BADOPTS, "Option not understood.");
//}
}
9、返回上层目录并使用 tar -zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/命令重新压缩vsftpd-2.2.2.tar.gz文件:










