FTP简介
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。互联网上提供文件存储和访问服务的计算机,他们依照的是FTP协议提供服务!支持FTP协议的服务器就是FTP服务器!FTP协议提供存储和传输服务的一套协议。下载”(Download)和”上传”(Upload)。”下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
工作原理
FTP采用客户端/服务端的工作模式(C/S结构),通过TCP协议建立客户端和服务器之间的连接,但与其他大多数应用协议不同,FTP协议在客户端和服务端之间建立了两条通信链路,分别是控制链路和数据链路,其中,控制链路负责FTP会话过程中FTP命令的发送和接收,数据链路则负责数据的传输。FTP会话包含了两个通道,控制通道和数据通道,FTP的工作有两种方式,一种是主动模式,一种是被动模式,以FTPServer为参照物,主动模式,服务器主动连接客户端传输,被动模式,等待客户端的的连接 。(无论是主动模式还是被动模式,首先的控制通道都是先建立起来的,只是在数据传输模式上的区别)。
云服务器 ECS 下 FTP的安装与配置
安装前准备
vsftpd是linux下的一款小巧轻快,安全易用的FTP服务器软件,是一款在各个Linux发行版中最受推崇的FTP服务器软件。
1.安装vsftpd,直接yum 安装就可以了
yum install -y vsftpd
出现下图表示安装成功。
2.相关配置文件:
cd /etc/vsftpd
/etc/vsftpd/vsftpd.conf
//主配置文件,核心配置文件
/etc/vsftpd/ftpusers
//黑名单,这个里面的用户不允许访问FTP服务器
/etc/vsftpd/user_list
//白名单,允许访问FTP服务器的用户列表
3.启动服务
systemctl enable vsftpd.service
//设置开机自启动
systemctl start vsftpd.service
//启动ftp服务
netstat -antup | grep ftp
//查看ftp服务端口
开通FTP服务对应的防火墙端口:21后,登录FTP服务器。
配置本地用户登录
本地用户登录就是指使用Linux操作系统中的用户账号和密码登录ftp服务器,vsftp安装后默只支持匿名ftp登录,用户如果试图使用Linux操作系统中的账号登录服务器,将会被vsftpd拒绝
1.创建 ftptest用户 并指定主目录
useradd ftptest -s /sbin/nologin -d /data/www/yueji
2.设置密码
passwd ftptest
输入两次密码后 设置完成!
查看系统用户
3.修改/etc/vsftpd/vsftpd.conf
:
运行vim /etc/vsftpd/vsftpd.conf
。
按键i进入编辑模式。
将是否允许匿名登录 FTP 的参数修改为anonymous enable=NO
。
将是否允许本地用户登录 FTP 的参数修改为local_enable=YES
。
按键Esc退出编辑模式,然后按键:wq
保存并退出文件。
4.运行以下命令重新加载配置文件。
systemctl restart vsftpd.service
5. 配置vsftp被动模式连接数据端口
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10010
需要开启对应的端口配置
6、配置 vsftpd 限制 FTP 账户访问其它目录
涉及文件:
vsftpd.conf
chroot_list_file=/etc/vsftpd.chroot_list
如果设置为
chroot_local_user=YES
chroot_list_enable=YES(这行可以没有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list
那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户,即, 可以浏览其主目录的上级目录.
如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置,然后在文件vsftpd.chroot_list中去掉或不添加该用户即可。
也可以如下配置
chroot_local_user=NO
chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
chroot_list_file=/etc/vsftpd.chroot_list
然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd.chroot_list中即可(一行一个用户名,此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)
将对应的 FTP 账号 配置到 chroot_list 文件内。
重启 FTP 服务
通过 flashxp 客户端 测试链接