1..FTP服务器有什么用
.FTP服务器是能够提供文件存储、访问的计算机,实现了文件共享。
2.FTP是什么
FTP是File Transfer Protocol(文件传输协议),是一种基于TCP的协议,采用客户/服务器模式。
3.FTP工作模式
FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。
不管哪种模式都是先建立客户端和服务器端的控制连接,然后在需要的时候建立数据连接进行数据传输。FTP工作模式的视频演示见FTP的工作模式。
4.Linux服务器下搭建FTP服务器
一、安装vsftpd服务
(1)安装ftp服务端--vsftpd
yum -y installed vsftpd
能连接互联网或者配置了局域网yum源(Linux中为局域网配置yum源(httpd方式))的,通过上述命令可以直接安装vsftpd服务。
(2)验证vsftpd是否验证成功及查看其版本
vsftpd -v
(3)管理vsftpd服务
启动vsftpd服务:systemctl start vsftpd
停止vsftpd服务:systemct stop vsftpd
重启vsftpd服务:systemctl restart vsftpd
二、新增ftp用户
(1)创建ftp用户并设置密码
创建用户:useradd ftptest
设置密码:passwd ftptest
当未给新创建的用户分配用户组时,会默认生成与新用户名称一致的用户组,即上述用户ftptest,属于ftptest用户组。
(2)配置ftp用户只能通过ftp方式进行登陆,即不能通过ssh登陆
禁止ftptest用户使用ssh登陆:usermod -s /sbin/nologin ftptest
恢复ftptest用户使用ssh登陆:usermod -s /bin/bash ftptest
通过passwd文件,可以查看用户登录方式。cat /etc/passwd
三、修改FTP的配置文件
(1)配置文件位置:/etc/vsftpd/vsftpd.conf,修改内容:
# 关闭匿名用户访问,修改为NO
anonymous_enable=NO
# 禁止切换目录,将所有本地用户限制在设定的目录中,NO则不限制
chroot_local_user=YES
# 设置系统用户FTP主目录,如果没有对ftp用户再设置独立允许访问的目录,则用以下目录
local_root=/data
# 开启charoot写权限
allow_writeable_chroot=YES
#配置可以登录ftp的用户
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
#配置ftp用户可以访问目录,与上述ftp主目录不同,这里是设置了ftp用户独立允许访问的目录
user_config_dir=/etc/vsftpd/userconfig
# 配置FTP被动模式的端口
pasv_min_port=60000
pasv_max_port=60100
(2)防火墙中开放相应端口
firewall-cmd --zone=public --add-port=60000-60100/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --reload
#查看防火墙开放的端口
firewall-cmd --zone=public --list-ports
(3)配置可以登录ftp用户
#编辑user_list文件,添加刚新增的ftp用户
vim /etc/vsftpd/user_list
(4)设置ftp用户登录后可以独立访问的目录
#根据vsftpd.conf配置文件中设置user_config_dir的参数,创建userconfig目录
mkdir /etc/vsftpd/userconfig
#创建文件(文件名称与ftp用户需要一致),添加ftptest用户可以独立访问的目录
vim /etc/vsftpd/userconfig/ftptest
local_root=/data/ftptest
重启vsftpd服务:systemctl restart vsftpd
(5)设置ftp用户独立访问目录的权限
#为所有的用户设置访问/data/ftptest目录读、写、执行的权限
chmod 777 -R /data/ftptest
#也可以为将/data/ftptest目录的操作权限赋给ftp用户
chown -R ftptest:ftptest /data/ftptest
在访问ftp服务时常出现的问题及解决方式参见:Linux中vsftpd服务的常见问题