如果你想在你的Linux/Unix服务器上搭建一个安全、高性能、稳定性好的FTP服务器,那么vsftpd可能是你的首选应用。vsftpd意思为“very secure FTP daemon(非常安全的FTP进程)”,是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux、BSD、Solaris、HP-UX以及Irix等系统上面。vsftpd支持很多其他传统的FTP服务器不支持的良好特性。
最新的vsftpd版本可在其官网获取:ftp://vsftpd.beasts.org/users/cevans/

VSFTP主页中介绍了它以下的9种特点

 

1、它是一个安全、高速、稳定的FTP服务器;

2、它可以做基于多个IP的虚拟FTP主机服务器;

3、匿名服务设置十分方便;

4、匿名FTP的根目录不需要任何特殊的目录结构,或系统程序或其它的系统文件;

5、不执行任何外部程序,从而减少了安全隐患;

6、支持虚拟用户,并且每个虚拟用户可以具有独立的属性配置;

7、可以设置从inetd中启动,或者独立的FTP服务器两种运行方式;

8、支持两种认证方式(PAP或xinetd/ tcp_wrappers);

9、支持带宽限制;

VSFTP市场应用十分广范,很多国际性的大公司和自由开源组织在使用,如:Red Hat, Suse,Debian,OpenBSD。

vsftp 实现虚拟目录

格式: mount --bind olddir newdir

如:mount --bind /var/data/ /ftproot/data/

登录后进入data目录,可以发现里面的内容就是/var/data/下的内容。

但如果重启系统后mount操作要重新做,为了方便我们将mount -bind /var/data/ /ftproot/data/写入/etc/rc.local达到开机启动挂载。

vsftp 缺点

vsftp ,从w没有处理文件编码转换windows客户端访问时有乱码现象。

解决办法:

1、使用vsftp的补丁,

2、转换服务器目录文件编码,linux下:

convmvfs /ftp/pub_gbk -o srcdir=/ftp/pub, icharset=utf8,ocharset=gbk的代码,那么访问/ftp/pub_gbk的时候文件名就都是GBK的了,windows下也就不会有乱码。

也可以用下面这个命令把文件名编码转换一下:

convmv -f UTF-8 -t GBK -r yourfile --notest

不用--notest选项,只显示转换后的结果,不对文件真正进行操作

3、windows不使用资源管理器、IE来访问服务器,使用FTP客户端工具来访问服务器,找能设置编码的FTP客户端,设置一下编码就可以了。

4、编码解决步骤

修改源代码文件opts.c

if (str_equal_text(&p_sess->ftp_arg_str,"UTF8 ON")) 更改成

if (str_equal_text(&p_sess->ftp_arg_str,"DISABLE UTF8 ON"))