如何利用雲存儲網關搭建FTP服務器訪問OSS存儲

https://yq.aliyun.com/articles/743608linux


背景

雲存儲文件網關是阿里雲提供的存儲網關產品,它能夠知足用戶經過NFS或Samba等協議訪問OSS對象存儲數據的需求。而經過簡單的配置,咱們也能夠基於文件網關來配置一臺FTP服務器,讓用戶經過FTP來訪問OSS中的數據,實現用FTP客戶端上傳和下載同步OSS bucket中存儲的數據。centos

本文將介紹在linux服務器上如何經過在雲存儲網關共享上搭建FTP服務器來實現對OSS內數據的分發與共享。bash

準備工做

添加NFS共享

(注:關於如何開通及建立雲存儲網關,你們能夠參考 如何在Linux上掛載OSS Bucket 這篇文章)服務器

首先,經過雲存儲文件網關管理控制檯,爲想要經過FTP訪問的Bucket添加一個新的NFS共享(若是不須要共享整個bucket,請在建立共享時勾選子目錄並填入要共享的子目錄路徑):阿里雲

image

在配置共享時,若是有不少數據須要從OSS反向同步到文件網關的話,建議打開極速同步功能,這樣能夠保證咱們在OSS中上傳的文件及時同步到文件網關中。關於極速同步功能,能夠參考 文件網關秒級同步OSS變動對象初體驗spa

image

掛載共享目錄

接下來,咱們在linux服務器上建立/ftp目錄,並將新建立的nfs共享掛載到/ftp目錄下:code

# 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:server

[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訪問blog

[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中的數據的功能,讓文件共享與分發更加的方便。

相關文章
相關標籤/搜索