在linux中下载并安装FTP服务器
环境介绍:
虚拟机:VMware Workstation 11.0
cenOS系统
一、前述
Linux搭建ftp服务器用于程序实现上传和下载功能......
* 重要:修改配置之后,需要重启之后生效
二、具体步骤
- 执行命令,显示如下图则表示已安装vsftp软件,如果未显示则需要安装vsftpd软件
命令:rpm -qa |grep vsftpd
如果没有则通过yarm源进行安装
命令:yum install -y vsftpd
执行后会自动下载,然后安装,如下:
Loaded plugins: fastestmirror, security
Determining fastest mirrors
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
base | 3.7 kB 00:00
extras | 3.4 kB 00:00
extras/primary_db | 26 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 1.9 MB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:2.2.2-24.el6 will be installed
--> Finished Dependency Resolution
出现以上就代表安装完成了!
另一个安装方式:通过安装rpm包的方式
推荐一个rpm下载地址 ftp://rpmfind.net/linux/
安装rpm包
执行命令:sudo rpm -Uvh *.rpm --force --nodeps
2、安装完成之后
安装完成之后我们进入FTP安装后的文件夹进行查看是否有问题,FTP在Linux上名称为 vsftpd ,默认安装在 /etc/vsftpd 目录下;
执行命令: cd /etc/vsftpd,会发现有四个文件夹,如下所示:
ftpusers 黑名单文件,此文件里的用户不允许访问 FTP 服务器
user_list 白名单文件,是允许访问 FTP 服务器的用户列表
vsftpd.conf 核心配置文件
vsftpd_conf_migrate.sh FTP服务
3、添加用户:
先给linux系统添加一个用户,可以登录ftp服务器的用户
命令:
useradd zjwftp :创建一个zjwftp的用户
passwd zjwftp :修改此用户的密码
之后,我们进入user_list白名单文件中,将创建的用户添加进去,如下所示:
user_list 里面的内容是能够登录FTP的用户列表,若是不想让其他用户登录,则删除该文件内的其他用户名,仅保留我们刚才创建的一个用户(root为系统管理员,若是不需要也可以删除)。
然后更改目录访问用户,命令:
chown -R zjwftp /var/ftp/pub (zjwftp 为新创建的用户)
4、新建配置文件chroot_list,在/etc/vsftpd下新建chroot_list,加入登陆用户的名字。(用户密码已经配置完成)
5、配置vsftpd.conf这个核心文件
此配置我们主要修改的一个地方,就是匿名用户登录的时候将其禁止,然后指定ftp目录就行了,其它的诸如连接时间配置可自行配置
修改: 改为 NO,禁止匿名用户访问。
新增:
指定用户访问主目录(FTP文件存放目录),如果没有则需要创建文件夹
还有一些其它配置,可直接将附件中vsftpd.conf拿过来使用,需要注意下面三个配置路径,需要与自己本地文件目录位置相同
三、ftp启停查看状态命令
通过yum install -y vsftpd命令安装可以执行这些命令:
启动ftp命令:service vsftpd start
停止ftp命令:service vsftpd stop
重启ftp命令:service vsftpd restart
查看ftp是否启动:service vsftpd status
通过rpm包安装的方式
启动命令,找到vsftpd在sbin下的安装
执行:/usr/sbin/vsftpd & 启动命令
关闭命令:直接通过 kill 杀死
四、出现的报错
1、启动报错(500 OOPS)
解决办法:
将该配置注释掉
2、解决vsftpd 530 Permission denied(没有权限)
使用在vsftpd.conf中添加userlist_*阻止特定的本地用户
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
编辑/etc/vsftpd/user_list ,添加上需要阻止的本地用户,一个用户名一行 用被阻止的用户登录FTP显示的消息为:530 Permission denied
我本机的etc/vsftpd/vsftpd.conf文件里,只有userlist_enable=YES 于是用root用户登录报错530 Permission denied 把YES改成NO就OK了
还有一种情况,就是没有指定 userlist_file文件位置。解决:加上userlist_file=/etc/vsftpd/user_list
3、问题
500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list
解决办法:
第一步,
打开/etc/vsftpd/vsftpd.conf,做如下配置:
第二步,
在/etc/vsftpd下新建chroot_list,加入登陆用户的名字。(用户需要配置密码,上面已经执行完了)
第三步,
重启,测试连接一下,发现没有问题了
可以用工具连接
或者是浏览器 ftp://你的ip访问