『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务

提示:授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道

文章目录

  • 『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务
  • 前言
    • 启动EC2实例
    • 登录EC2服务器
    • 安装FTP服务
    • 配置 vsftpd
      • 修改配置文件 vsftpd.conf
    • 设置EC2安全组
    • 验证 FTP 服务
    • 搭建的常见问题
    • 总结


前言

我们经常需要在服务器上进行文件管理操作,但是如果每次通过ssh协议去操作也很麻烦,所以我想给服务器上搞一个ftp,这是一种文件传输协议,用于在网络上进行文件传输的一套标准协议,文件传输协议也不止这一种还有很多,主要这次可以免费试用AWS的EC2 12个月,如果光通过web端的终端管理感觉文件操作很不方便,所以就记录一下FTP在AWS EC2上的搭建过程,如有错误,还望各位看官斧正。

启动EC2实例

首先登录AWS账号,然后转到控制台,选择EC2点击进去

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务_第1张图片
点击实例就可以看到所有的实例列表,我这里是已经创建过,所以有一台,大家第一次进来是什么都没有,然后点击启动新实例

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务_第2张图片
输入名称 + 创建密钥 然后点击启动实例即可新开一台 ec2 实例

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务_第3张图片

登录EC2服务器

我们可以使用标准方式登录 Linux 实例,也可以根据实际操作习惯,选择其他不同的登录方式:
使用远程登录软件登录 Linux 实例或者web 终端

  • web终端登录

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务_第4张图片

这里我直接使用 root 账号登录

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务_第5张图片
到这个界面就是登录成功了!

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务_第6张图片

然后我们就要开始 ftp 的安装了

安装FTP服务

ftp是一种标准的传输协议,然后它的具体软件实现有 vsftpd,它是众多 Linux 发行版中默认的 FTP 服务器。本文以 Amazon Linux 操作系统的EC2为例,使用 vsftpd 软件搭建 Linux 云服务器的 FTP 服务。

  • 安装 vsftpd
yum install -y vsftpd

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务_第7张图片

  • 设置 vsftpd 开机自启动。
systemctl enable vsftpd

在这里插入图片描述

  1. 启动 FTP 服务。
systemctl start vsftpd
  1. 检测ftp是否启动
ss -ntpl (查看21端口是否开启)

如果看到状态是这样即表示ftp已经成功启动

在这里插入图片描述

配置 vsftpd

这个时候,vsftpd 已经启动,我们需要为这个 fpt 创建一个新的用户

  • 为 FTP 服务创建一个 Linux 用户 dev
useradd dev
  • 为dev设置密码
passwd dev

直接键盘输入,因为密码默认是不显示的

  • 给这个账户搞一个ftp的文件目录
mkdir /var/ftp/dev
  • 执行以下命令,修改目录权限。
chown -R ftpuser:ftpuser /var/ftp/test
  • 执行以下命令,打开 vsftpd.conf 文件。
vi /etc/vsftpd/vsftpd.conf

修改配置文件 vsftpd.conf

将 FTP 配置成:

  • 匿名用户登录禁止
  • 写入权限开启
  • 允许切换目录
  • 开启IPV4监听 关闭IPV6 sockets
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
# listen_ipv6=YES

保存后退出。创建并编辑 chroot_list 文件。

vim /etc/vsftpd/chroot_list

在这里插入图片描述
将我们之前创建的 dev 用户写入到 chroot_list

  • 重启 FTP 服务。
systemctl restart vsftpd

设置EC2安全组

搭建好 FTP 服务后,我们需要根据实际使用的 FTP 模式给EC2放通入站规则,这里我们主要放通 21 端口

这里为了方便我直接全部流量都放入了

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务_第8张图片

验证 FTP 服务

如果是windows,可以直接通过文件系统访问

ftp://3.85.243.172:21

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务_第9张图片

输入之后会弹出的登录身份窗口中输入 配置 vsftpd 中已设置的用户名及密码。
本文使用的用户名为 dev,密码为 123456789,成功登录后,即可上传及下载文件。

也可以通过 filezilla 进行连接

『亚马逊云科技产品测评』活动征文|基于EC2搭建 FTP 服务_第10张图片

搭建的常见问题

  • 登录成功后,报错这个。
ftp> ls
550 Permission denied.
500 Unknown command.
Passive mode refused.

解决方法

这个问题是 ftp 服务端没有正确配置访问模式导致的权限拒绝,需要登录 ftp 服务端,执行以下命令,打开 vsftpd.conf 文件。

vim /etc/vsftpd/vsftpd.conf

将 pasv_enable 改为 YES

pasv_enable=YES

然后重启 ftp 服务。

systemctl restart vsftpd

总结

这样就完成了在 aws ec2 上的 ftp 服务搭建,aws ec2 可以搭建很多的服务,例如我们的 smb 等,如果我们需要将文件共享给国外的开发团队,我觉得还是有必要构建一个连接国内外的文件服务,方便两边团队进行文件传输,ec2 给了开发者很大的自定义能力,如果有各种需要出海的业务也可以放到ec2上,有很多的可用区,直接产品面向全球!

你可能感兴趣的:(科技)