您现在的位置是:首页 > 文章详情

如何利用云存储网关搭建FTP服务器访问OSS存储

日期:2020-02-03点击:837

背景

云存储文件网关是阿里云提供的存储网关产品,它可以满足用户通过NFS或Samba等协议访问OSS对象存储数据的需求。而通过简单的配置,我们也可以基于文件网关来配置一台FTP服务器,让用户通过FTP来访问OSS中的数据,实现用FTP客户端上传和下载同步OSS bucket中存储的数据。

本文将介绍在linux服务器上如何通过在云存储网关共享上搭建FTP服务器来实现对OSS内数据的分发与共享。

准备工作

添加NFS共享

(注:关于如何开通及创建云存储网关,大家可以参考 如何在Linux上挂载OSS Bucket 这篇文章)

首先,通过云存储文件网关管理控制台,为想要通过FTP访问的Bucket添加一个新的NFS共享(如果不需要共享整个bucket,请在创建共享时勾选子目录并填入要共享的子目录路径):

image

在配置共享时,如果有很多数据需要从OSS反向同步到文件网关的话,建议打开极速同步功能,这样可以保证我们在OSS中上传的文件及时同步到文件网关中。关于极速同步功能,可以参考 文件网关秒级同步OSS变更对象初体验

image

挂载共享目录

接下来,我们在linux服务器上创建/ftp目录,并将新创建的nfs共享挂载到/ftp目录下:

# 1. 创建ftp服务器使用的目录 [root@csg ~]# mkdir -p /var/ftp/oss-bucket # 2. 使用showmount 命令查看新创建的网关共享 [root@csg ~]# showmount -e <网关IP地址> # 3. 挂载共享目录到/var/ftp/oss-bucket目录下 [root@csg ~]# mount -t nfs <网关IP地址>:<共享路径> /var/ftp/oss-bucket # 4. 查看目录挂载状态 [root@csg ~]# df -h /var/ftp/oss-bucket

搭建ftp服务器

1. 安装ftp服务

我们以centos 为例,安装ftp服务vsftpd:

[root@csg ~]# yum -y install vsftpd

2. 添加ftp用户

[root@csg ~]# useradd ftpuser1 [root@csg ~]# passwd ftpuser1

3. 配置vsftpd

[root@csg ~]# vi /etc/vsftpd/vsftpd.conf ## 常规配置 # line 12: 关闭匿名用户登陆 anonymous_enable=NO # line 82,83: 允许ascii模式访问 ascii_upload_enable=YES ascii_download_enable=YES # line 100, 101: 使能chroot chroot_local_user=YES chroot_list_enable=YES # line 103: 指定chroot用户列表配置文件路径 chroot_list_file=/etc/vsftpd/chroot_list # line 109: 使能ls recurse ls_recurse_enable=YES # line 114: 如果使用ECS IPV4地址,修改下面一行并按需关闭IPV6 listen=YES # line 123: listen_ipv6=NO # 添加下面几行配置到配置文件中 # 修改使用的chroot目录,我们配置为挂载了文件网关NFS共享的路径 (如果不指定的话,会默认使用ftp用户的home目录而不是NFS挂载目录) local_root=/var/ftp/oss-bucket # 使用本地时间 use_localtime=YES # 关闭seccomp filter seccomp_sandbox=NO # 指定客户端passive模式访问端口,可自由指定 pasv_min_port=12001 pasv_max_port=12005 
# 添加chroot允许用户 [root@csg ~]# vi /etc/vsftpd/chroot_list # 添加允许chroot的ftp用户 ftpuser1

启动vsftpd服务

[root@csg ~]# systemctl start vsftpd [root@csg ~]# systemctl enable vsftpd

如果开启了防火墙,需要添加规则允许ftp端口的访问:

[root@csg ~]# firewall-cmd --add-service=ftp --permanent success [root@csg ~]# firewall-cmd --reload success

如果开启了selinux,需要允许ftp访问

[root@csg ~]# setsebool -P ftpd_full_access on

访问ftp/sftp服务器

配置完成后,我们就可以使用ftp客户端来访问部署好的ftp服务器了,我们以fileZilla客户端为例,使用ftpuser1这个用户登陆ftp服务器,并尝试上传一个f文件到ftp服务器:

image

图: 登陆并上传文件到ftp server

上传成功后,登陆到OSS控制台,到云存储网关配置共享的bucket对应的目录下查看,可以查看到刚刚上传的文件,实现了通过FTP客户端向OSS上传的功能:

2C8457A0_20EF_4A77_8597_B02108CA6E12

图:在OSS控制台访问ftp client新上传的文件

同样,在文件网关打开极速同步或反向同步功能后,文件网关也可以反向同步OSS上的数据更新,让FTP的客户端获取到OSS上新上传的文件列表,下载OSS中新上传的文件。

总结

通过基于云存储网关的NFS共享搭建FTP服务器,可以让用户使用ftp访问OSS中的数据,实现用FTP客户端上传数据到OSS和下载OSS中的数据的功能,让文件共享与分发更加的方便。

原文链接:https://yq.aliyun.com/articles/743608
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章