阿里云 FTP的搭建和使用

FTP的搭建和使用

更新时间:2019-03-29 19:04:11html

   

简介

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不一样的操做系统有不一样的FTP应用程序,而全部这些应用程序都遵照同一种协议以传输文件。互联网上提供文件存储和访问服务的计算机,他们依照的是FTP协议提供服务!支持FTP协议的服务器就是FTP服务器!FTP协议提供存储和传输服务的一套协议。下载”(Download)和”上传”(Upload)。”下载”文件就是从远程主机拷贝文件至本身的计算机上;”上传”文件就是将文件从本身的计算机中拷贝至远程主机上。用Internet语言来讲,用户可经过客户机程序向(从)远程主机上传(下载)文件。linux

工做原理

FTP采用客户端/服务端的工做模式(C/S结构),经过TCP协议创建客户端和服务器之间的链接,但与其余大多数应用协议不一样,FTP协议在客户端和服务端之间创建了两条通讯链路,分别是控制链路和数据链路,其中,控制链路负责FTP会话过程当中FTP命令的发送和接收,数据链路则负责数据的传输。FTP会话包含了两个通道,控制通道和数据通道,FTP的工做有两种方式,一种是主动模式,一种是被动模式,以FTPServer为参照物,主动模式,服务器主动链接客户端传输,被动模式,等待客户端的的链接 。(不管是主动模式仍是被动模式,首先的控制通道都是先创建起来的,只是在数据传输模式上的区别)。nginx

FTP的安装与配置

安装前准备

vsftpd是linux下的一款小巧轻快,安全易用的FTP服务器软件,是一款在各个Linux发行版中最受推崇的FTP服务器软件。api

1.安装vsftpd,直接yum 安装就能够了安全

 
  1. yum install -y vsftpd

图片20

出现下图表示安装成功。bash

图片21

2.相关配置文件:服务器

 
  1. cd /etc/vsftpd

图片22

/etc/vsftpd/vsftpd.conf //主配置文件,核心配置文件markdown

/etc/vsftpd/ftpusers //黑名单,这个里面的用户不容许访问FTP服务器app

/etc/vsftpd/user_list //白名单,容许访问FTP服务器的用户列表测试

3.启动服务

systemctl enable vsftpd.service //设置开机自启动

systemctl start vsftpd.service //启动ftp服务

netstat -antup | grep ftp //查看ftp服务端口

图片23

开通FTP服务对应的防火墙端口:21后,登陆FTP服务器。

图片24

匿名ftp的基本配置

使用匿名FTP,用户无需输入用户名密码便可登陆FTP服务器,vsftpd安装后默认开启了匿名ftp的功能,用户无需额外配置便可使用匿名登陆ftp服务器。

匿名ftp的配置在/etc/vsftpd/vsftpd.conf中设置。

anonymous_enable=YES //默认即为YES

图片25

这个时候任何用户均可以经过匿名方式登陆ftp服务器,查看并下载匿名帐户主目录下的各级目录和文件,可是不能上传文件或者建立目录。

为了演示效果,咱们安装一个lftp软件。

 
  1. yum -y install lftp //安装lftp

图片26

利用lftp 公网ip链接到ftp服务器,能够看到只能查看和下载,不能进行上传操做

 
  1. lftp 公网ip #链接到ftp服务器
  2. cd pub/ #切换到pub目录
  3. put /etc/issue #上传文件
  4. get test.1 #下载文件

图片27

匿名ftp的其余设置

出于安全方面的考虑,vsftpd在默认状况下不容许用户经过匿名FTP上传文件,建立目录等更改操做,可是能够修改vsftpd.conf配置文件的选项,能够赋予匿名ftp更多的权限。

容许匿名ftp上传文件。

修改/etc/vsftpd/vsftpd.conf

write_enable=YES

anon_upload_enable=YES

图片28

二、更改/var/ftp/pub目录的权限,为ftp用户添加写权限,并从新加载配置文件

 
  1. chmod o+w /var/ftp/pub/ #更改/var/ftp/pub目录的权限
  2. systemctl restart vsftpd.service #重启ftp服务

图片29

三、测试

图片30

配置本地用户登陆

本地用户登陆就是指使用Linux操做系统中的用户帐号和密码登陆ftp服务器,vsftp安装后默只支持匿名ftp登陆,用户若是试图使用Linux操做系统中的帐号登陆服务器,将会被vsftpd拒绝

1.建立ftptest用户

 
  1. useradd ftptest #建立ftptest用户
  2. passwd ftptest #修改ftptest用户密码

图片31

2.修改/etc/vsftpd/vsftpd.conf

anonymous enable=NO

local_enable=YES

图片32

3.仍是经过lftp链接到ftp服务器

图片33

另外简单介绍下vsftpd.conf的配置文件参数说明。

 
  1. cat /etc/vsftpd/vsftpd.conf

用户登录控制

参数 说明
anonymous_enable=YES 接受匿名用户
no_anon_password=YES 匿名用户login时不询问口令
anon_root=(none) 匿名用户主目录
local_enable=YES 接受本地用户
local_root=(none) 本地用户主目录

用户权限控制

参数 说明
write_enable=YES 能够上传(全局控制)
local_umask=022 本地用户上传文件的umask
file_open_mode=0666 上传文件的权限配合umask使用
anon_upload_enable=NO 匿名用户能够上传
anon_mkdir_write_enable=NO 匿名用户能够建目录
anon_other_write_enable=NO 匿名用户修改删除
chown_username=lightwiter 匿名上传文件所属用户名