云服务器ECS下的FTP服务的安装配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gc348342215/article/details/80295929

简介

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

工作原理

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

本教程主要介绍在CentOS 7.2的系统环境上手动部署。

CentOS 7.2上部署FTP

选用CentOS 7.2 64位的系统,阿里云在公共镜像中提供了该系统镜像,用户可直接在控制台中更换此系统。并通过远程链接进入到系统中。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服务端口

4.登录ftp服务器。

匿名ftp的基本配置

使用匿名FTP,用户无需输入用户名密码即可登录FTP服务器,vsftpd安装后默认开启了匿名ftp的功能,用户无需额外配置即可使用匿名登录ftp服务器。匿名ftp的配置在/etc/vsftpd/vsftpd.conf中设置。

anonymous_enable=YES //默认即为YES


这个时候任何用户都可以通过匿名方式登录ftp服务器,查看并下载匿名账户主目录下的各级目录和文件,但是不能上传文件或者创建目录

匿名ftp的其他设置

出于安全方面的考虑,vsftpd在默认情况下不允许用户通过匿名FTP上传文件,创建目录等更改操作,但是可以修改vsftpd.conf配置文件的选项,可以赋予匿名ftp更多的权限,允许匿名ftp上传文件。

修改/etc/vsftpd/vsftpd.conf

write_enable=YES
anon_upload_enable=YES

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

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

vsftpd.conf的配置文件参数说明

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 匿名上传文件所属用户名

问题及解决方案

问题1:阿里云ECS服务器搭建完ftp,外网无法访问的解决办法

阿里云服务器由于性价比高,是不少企业建站朋友们的首选。而在购买阿里云服务器后,不少客户反映其在搭建FTP后出现外网无法访问的问题,这里特意搜集整理了关于ftp搭建后外网无法连接和访问的问题,提供以下解决方法。
问题原因一:购买的阿里云ECS未开放外网访问端口。

解决方法:开放端口。
登录阿里云ECS服务器控制面板,【网络和安全】->【安全组】,在右边选择【配置规则】->【添加安全组规则】,协议选全部,授权对象填0.0.0.0/0



点击确定后,再试一下外网访问FTP,是不是已经可以正常访问了?

问题原因二:FTP被防火墙拦截

解决方法:设置FTP为例外或者干脆关闭防火墙。

问题2:解决ftp 530 Permission denied问题

测试ftp登录时显示 530 Permission denied,原因是需要修改配置文件中的userlist_enable的值改为NO

vim /etc/vsftpd/vsftpd.conf
userlist_enable=NO
systemctl restart vsftpd

再次测试ftp登录,此时又提示530 Login incorrect,查了一下/etc/pam.d/vsftpd内容,其中一条是

auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

vsftpd将禁止名单指向了/etc/vsftpd/ftpusers,于是vim /etc/vsftpd/ftpusers发现root在名单上,于是#注释掉root并保存,重启vsftpd

systemctl restart vsftpd

登录 FTP 成功!

相关链接

云服务器ECS下的FTP服务的安装配置与使用
阿里云ECS服务器搭建完ftp,外网无法访问的解决办法
centos7 安装vsftpd 及 530 Permission denied报错解决方法
ftp命令使用(1)
ftp命令使用(2)

猜你喜欢

转载自blog.csdn.net/gc348342215/article/details/80295929