centos 6.3下vsftp乱码的解决
vsftp乱码一直是一个比较纠结的问题,今天采用了一种曲线救国的方式进行解决。
主要是利用fuse和fuse-convmvfs,如下:
下载fuse-2.9.1.tar.gz和fuse-convmvfs-0.2.6.tar.gz解压后放于/usr/local/src
安装fuse
Java代码
[root@server1 ~]# cd fuse-2.9.1
[root@server1 ~]# ./configure --prefix=/usr/lib/java/fuse --mandir=/usr/share/man
[root@server1 ~]# make && make install
[root@server1 ~]# echo "/opt/fuse/lib" >> /etc/ld.so.conf #导入fuse类库
[root@server1 ~]# ldconfig #导入fuse类库
[root@server1 ~]# modprobe fuse #加载fuse模块
安装fuse-convmvfs
Java代码
[root@server1 ~]# cd fuse-convmvfs-0.2.6
[root@server1 ~]# ./configure --prefix=/usr/lib/java/fuse-convmvfs --mandir=/usr/share/man
[root@server1 ~]# make && make install
安装完毕,此时并可以使用/usr/lib/java/fuse-convmvfs/bin/convmvfs命令了
执行如下语句:
Java代码
convmvfs /var/ftp/pub_gbk -o srcdir=/var/ftp/pub,icharset=utf8,ocharset=gbk
那么访问/ftp/pub_gbk的时候文件名就都是GBK的了,windows下也就不会有乱码。
(本人ftp根目录为/var/ftp)
如果不想看到pub目录,那么只需要在/etc/vsftpd/vsftpd.conf文件中设置
Java代码
anon_root=/var/ftp/pub
local_root=/var/ftp/pub
即将根目录定位到pub了,此时乱码问题解决。
同时需要注意的是,我们在服务器端上传文件时需要将文件上传到/var/ftp/pub_gbk文件夹下,而在客户端访问的是pub_gbk文件夹中在pub文件夹下的映像。
linux相关教程推荐:Linux的安全初步设置