一、通过rpm包安装很简单直接rpm ivh vsftpd*

二、通过源码安装方式如下:

1.下载软件http://www.skycn.com/soft/52763.html,放到安装目录/usr/local

chmod 755 vsftpd-2.3.1.tar.gz

建立ftp前的一些准备工作
# useradd nobody
# mkdir /usr/share/empty/
# mkdir /var/ftp/
# useradd -d /var/ftp ftp
# chown root.root /var/ftp
# chmod og-w /var/ftp

2. tar xzvf vsftpd-2.3.1.tar.gz   

# cd  vsftpd-2.3.1         

#make

#make install

如果make install不行的话就手动复制一下

cp vsftpd /usr/local/sbin/vsftpd

  cp vsftpd.conf.5 /usr/local/man/man5

  cp vsftpd.8 /usr/local/man/man8

cd ./EXAMPLE/INTERNET_SITE

cp vsftpd.conf   /etc

cp vsftpd.xinetd   /etc/xinetd.d/vsftpd

/etc/rc.d/init.d/xinetd restart

3.vi /etc/vsftp.conf

最前面添加listen=YES

local_enable=YES #允许本地用户登录
write_enable=YES #允许客户端写命令

启动多个用户同时登陆ftp

one_process_model=NO

chroot_local_user=YES

设定被动ftp连接的端口(在iptables里面要开放这些端口)

pasv_min_port=30001
pasv_max_port=31000

设定ftp的传输速度 

local_max_rate=50000

anon_max_rate=30000

一般系统帐户默认是自己的家目录,通过以下方式可以指定到固定目录下

local_root=/home/deeper/ftp

4.为本地用户设置PAM

cd  vsftpd-2.3.1  

cp RedHat/vsftpd.pam /etc/pam.d/ftp

5.启动vsftp

添加到开机自启动
vi /etc/rc.local添加一句话
/usr/local/sbin/vsftpd &
手动启动服务
/usr/local/sbin/vsftpd &   
察看端口,如果有21端口处于监听状态,则ftp服务运行。
netstat –tln

iptables 的配置文件

vi /etc/sysconfig/iptables

# Firewall configuration written by system-config-securitylevel

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT

-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT

-A RH-Firewall-1-INPUT -p 50 -j ACCEPT

-A RH-Firewall-1-INPUT -p 51 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 30001:31000 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

Service iptables restart  

记住还要让slinux允许ftp,执行以下命令

1. setsebool -P ftpd_disable_trans 1

2. service vsftpd restart

然后进行测试,ok!