首页 > 代码库 > Linux下搭建FTP服务器

Linux下搭建FTP服务器

Linux 下我们使用vsftp来作为我们的ftp server.


Server OS :  Redhat 6.3


1.检查server上是否已经安装了vsftpd

rpm -qa | grep vsftpd


2.假如没有相应的vsftpd rpm包,我们需要下载安装

yum install vsftpd


3.配置vsftpd配置文件。

# ls /etc/vsftpd/
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

vim vsftpd.conf

修改对应的值如下:

anonymous_enable=NO     #禁止匿名用户登录 
local_enable=YES               #允许本地实体用户登录 
write_enable=YES               #允许用户上传数据  
local_umask=022                #建立新目录(755)与文件(644)的权限  
dirmessage_enable=YES  #若登录目录下有.message则会显示该文件内容  可以自己在登录目录下创建.message文件并写入信息  
xferlog_enable=YES           #启动日志文件记录,记录于/var/log/xferlog 
connect_from_port_20=YES #支持主动式连接功能 
xferlog_std_format=YES    #支持WuFTP的日志文件格式 
local_root=/home/xx/ftp      #限制登录用户只能在/home/xx/ftp目录下操作 
chroot_local_user=YES     #限制登录用户在主目录内local_root定义目录 
chroot_list  listen=YES       #使用stand alone方式启动vsftpd  
pam_service_name=vsftpd           #支持PAM模块的管理
userlist_enable=YES         #支持/etc/vsftpd/user_list文件内的账号登录控制 
tcp_wrappers=YES            #支持TCP Wrappers的防火墙机制



这里为了为了安全,我们可以编辑 user_list 这个文件,把禁止通过FTP登录系统的账号添加进去。这样的话,这些账户尝试远程登录的时候。会被拒绝登录。


举个栗子:

>ftp xxxxxxx

用户(xxxxxx:(none)): root
530 Permission denied.
登录失败。


我在server上创建了一个专门为ftp使用的账户 test_ftp,所以我在vsftpd.conf里面把local_root=/home/xx/ftp改成了 local_root=/home/test_ftp/ftp

这样用test_ftp账户上传的文件会被放到 /home/test_ftp/ftp目录下。


3.重启vsftpd 服务,尝试使用ftp传输文件。

service vsftpd restart


4.在另外的机器上打开命令行:

ftp xxxxxx


配置顺利的话,现在就可以用ftp传输文件了。

Linux下搭建FTP服务器