Windows Client access to the FTP application server appears garbled. This is due to the UTF-8 and GBK incompatible with headaches caused by the source way to compile the installation can solve this problem.
Garbled resolution process:
1, first use the RPM-E vsftpd Uninstall system installation default VSFTPD Application server:
[Root@localhost ~]# rpm-e vsftpd
2, download the vsftpd-2.2.2-11.el6_3.1.src.rpm source package from the http://vault.centos.org/6.3/updates/Source/SPackages/website.
3. Use RPM-IVH vsftpd-2.2.2-11.el6_3.1.src.rpm to install the package:
[Root@localhost birdofprey]# RPM-IVH vsftpd-2.2.2-11.el6_3.1.src.rpm
An error similar to the following is prompted during installation:
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
You need to create a mockbuild user using the AddUser mockbuild command:
[Root@localhost birdofprey]# AddUser Mockbuild
4, reuse the RPM-IVH vsftpd-2.2.2-11.el6_3.1.src.rpm to install the package:
[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, the use of command cd/root/rpmbuild/sources/vsftpd/sources into the VSFTPD source code package directory, and the use of TAR-ZXVF Vsftpd-2.2.2.tar.gz Decompression vsftpd-2.2.2.tar.gz Source pack:
[Root@localhost sources]# TAR-ZXVF vsftpd-2.2.2.tar.gz
6, use the command CD vsftdp-2.2.2 into the vsfftpd-2.2.2 source directory:
[Root@localhost sources]# CD vsftpd-2.2.2
7, the use of the command VI features.c Modify FEATURES.C file, the line content is: Vsf_cmdio_write_raw (p_sess, "Utf8rn");
Modified to://vsf_cmdio_write_raw (p_sess, "Utf8rn").
8, use the command VI opts.c Modify the OPTS.C file;
Modify the Handle_opts function as follows:
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, return to the upper directory and use the TAR-ZCVF vsftpd-2.2.2.tar.gz vsftpd-2.2.2/command to compress vsftpd-2.2.2.tar.gz files:
[Root@localhost sources]# TAR-ZCVF vsftpd-2.2.2.tar.gz vsftpd-2.2.2/
We use the LS-command to see that the vsftpd-2.2.2.tar.gz file creation time in the list is already in the current creation time, as follows:
-rw-rw-r--. 1 mockbuild mockbuild 186982 May 3 15:39 vsftpd-2.2.2.tar.gz
-rw-r--r--. 1 mockbuild mockbuild 2828 February 00:06 vsftpd-2.2.2-uint-uidgid.patch
-rw-r--r--. 1 mockbuild mockbuild 1640 February 00:06 Vsftpd-2.2.2-v6only.patch
-rw-r--r--. 1 mockbuild mockbuild 514 February 00:06 Vsftpd-close-std-fds.patch
-rwxr-xr-x. 1 mockbuild mockbuild 338 February 00:06 vsftpd_conf_migrate.sh
-rw-r--r--. 1 mockbuild mockbuild 125 February 00:06 vsftpd.ftpusers
-rwxr-xr-x. 1 mockbuild mockbuild 2824 February 00:06 vsftpd.init
-rw-r--r--. 1 mockbuild mockbuild 335 February 00:06 Vsftpd.pam
-rw-r--r--. 1 mockbuild mockbuild 361 February 00:06 vsftpd.user_list
-rw-r--r--. 1 mockbuild mockbuild 345 February 00:06 vsftpd.xinetd
10, enter the source code under the specs directory, and use the RPMBUILD-BB vsftpd.spec command to generate VSFTPD-2.2.2-11.EL6.1.X86_64.RPM:
[Root@localhost specs]# RPMBUILD-BB Vsftpd.spec
The following error is reported because the system lacks a dependency pack:
error:failed Build Dependencies:
Libcap-devel is needed by vsftpd-2.2.2-11.el6.1.x86_64
Tcp_wrappers-devel is needed by vsftpd-2.2.2-11.el6.1.x86_64
We can find the following RPM package from the CentOS6.4 installation disk to install manually, the package name is as follows:
libattr-2.4.44-7.el6.i686.rpm libcap-devel-2.16-5.5.el6.x86_64.rpm
libattr-2.4.44-7.el6.x86_64.rpm tcp_wrappers-devel-7.6-57.el6.i686.rpm
libattr-devel-2.4.44-7.el6.i686.rpm tcp_wrappers-devel-7.6-57.el6.x86_64.rpm
libattr-devel-2.4.44-7.el6.x86_64.rpm tcp_wrappers-libs-7.6-57.el6.i686.rpm
libcap-2.16-5.5.el6.i686.rpm tcp_wrappers-libs-7.6-57.el6.x86_64.rpm
libcap-2.16-5.5.el6.x86_64.rpm vsftpd-2.2.2-11.el6_3.1.src.rpm
libcap-devel-2.16-5.5.el6.i686.rpm
11, the above packages using the RPM-IVH *.rpm-force--nodeps command for forced installation:
[Root@localhost rpm]# rpm-ivh *.rpm--force--nodeps
Warning:libattr-2.4.44-7.el6.i686.rpm:header V3 rsa/sha1 Signature, key ID C105b9de:nokey
Preparing ... ########################################### [100%]
1:libattr ########################################### [8%]
2:libcap ########################################### [17%]
3:tcp_wrappers-libs ########################################### [25%]
4:libattr ########################################### [33%]
5:libcap ########################################### [42%]
6:tcp_wrappers-libs ########################################### [50%]
7:tcp_wrappers-devel ########################################### [58%]
8:libcap-devel ########################################### [67%]
9:libattr-devel ########################################### [75%]
10:tcp_wrappers-devel ########################################### [83%]
11:libcap-devel ########################################### [92%]
12:libattr-devel ########################################### [100%]
12, again use RPMBUILD-BB Vsftpd.spec to recompile the VSFTPD-2.2.2-11.EL6.1.X86_64.RPM package:
[Root@localhost specs]# RPMBUILD-BB Vsftpd.spec
13, into the x86_64 directory, you can see that the directory has been generated by the relevant RPM package:
The command mode is as follows:
[Root@localhost rpms]# CD x86_64/
[Root@localhost x86_64]# ls
vsftpd-2.2.2-11.el6.1.x86_64.rpm vsftpd-debuginfo-2.2.2-11.el6.1.x86_64.rpm
14. Reinstall the VSFTPD Application Server component package that has been modified by the source code:
[Root@localhost x86_64]# RPM-IVH vsftpd-2.2.2-11.el6.1.x86_64.rpm
Preparing ... ########################################### [100%]
1:VSFTPD ########################################### [100%]
15, CentOS6.4 Modify the system default character set:
[Root@localhost/]# vi/etc/sysconfig/i18n
Modify the original file to the following:
#LANG = "ZH_CN." UTF-8 "
Lang= "ZH_CN. GB18030 "
Supported= "ZH_CN. GB18030:zh_CN:zh:zh_CN. Gb2312:en_us. Utf-8:en_us:en "
Sysfont= "Latarcyrheb-sun16"
At this time all the modification work has been completed, after the FTP application server, we use IE browser in the Windows system and early application software to test the Chinese garbled problem disappeared. This workaround also applies to garbled problems that exist in the RHEL6 series operating system that are vsftpd to Windows client character set compatibility.