1、FTP介绍
文件传输协议(FTP)是用于在网络上进行文件传输的一套标准协议,是典型的C/S结构的应用层网络协议。
ftp默认使用端口20、21与客户端进行通信。21端口用于建立控制连接,20端口用于建立数据连接,并传输数据文件数据。
主动模式:从服务器端向客户端发起连接
被动模式:客户端向服务器端发起连接
为了避免服务器高位端口的暴露,尽量减小FTP服务器上端口的范围

主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。

ftp用户类型(匿名、本地、虚拟)

ftp服务端软件:serv-u,wu-ftpd,proftpd和vsftpd等软件,习惯使用proftpd,感觉不错。

ftp客户端软件:cuteFTP flashFXP leapFTP filezilla等

2、proftpd安装
下载地址:ftp://ftp.proftpd.org/distrib/source/
tar zxvf proftpd-1.3.4a.tar.gz
cd proftpd-1.3.4a
./configure --prefix=/usr/local/webserver/proftpd  && make && make install

3、配置文件
cat /usr/local/webserver/proftpd/etc/proftpd.conf
ServerName          "lxsym.blog.lxsym.com "
ServerType          standalone
DefaultServer           on     
Port                21     
UseIPv6             off    
Umask               022    
MaxInstances            300
User                www 
Group               www 
AuthOrder mod_auth_file.c
AuthUserFile /var/ftp.passwd
DefaultRoot ~
AllowOverwrite      on     
ServerIdent                    off    
DisplayLogin                    welcome.msg
IdentLookups                    off    
usereverseDNS                   off    
PassivePorts                    30000 30009
AllowRetrieveRestart            on     
AllowStoreRestart               On

启动服务:/usr/local/webserver/proftpd/sbin/proftpd  
关闭服务:/usr/local/webserver/proftpd/sbin/ftpshut   ( 或者直接使用pkill proftpd )
ftpshut [ -R ] [ -l min ] [ -d min ] time [ warning-message ... ]
  -l min: ftp关闭服务之前的几分钟内,尝试建立新的ftp连接均不被接受
  -d min: ftp关闭服务之前的几分钟内,已经建立的ftp连接将被中止
  time: 在多少时间后,服务器将关闭ftp服务,格式有两种:
  一种是now,另外一种:+number 经过number分钟后关闭;MMHH 在今天MMHH服务器将关闭。

4、创建用户coo8
[root@Study_web01 ~]# cat /etc/passwd |grep www
www:x:500:500::/home/www:/bin/bash
[root@Study_web01 ~]# ln -s /usr/local/webserver/proftpd/bin/ftpasswd /usr/bin/ftpasswd
[root@Study_web01 ~]# chown -R www:www /data/server/coo8

[root@Study_web01 ~]# ftpasswd --passwd --name=coo8 --uid=500 --gid=500 --home=/data/server/coo8 --shell=/sbin/nologin --file=/var/ftp.passwd

ftp://192.168.0.3/