华为根技术 | 华为欧拉系统中部署FTP服务与Filestash应用:实现高效文件管理和共享
前言
华为云EulerOS
凭借其卓越的性能优化、安全性及稳定性,为企业级应用提供了坚实的基础。该操作系统不仅广泛兼容各类硬件和软件生态,还特别针对云计算、大数据处理等场景进行了深度优化,确保了高效的资源利用和数据处理能力。此外,华为云EulerOS内置丰富的安全机制,保障了系统的长期稳定运行和数据的安全可靠。在本篇文章中,我们将基于华为云EulerOS搭建FTP服务,并集成Filestash应用,以实现更加便捷高效的文件管理和共享解决方案。
一、相关服务介绍
1.1 Huawei Cloud EulerOS介绍
- Huawei Cloud EulerOS简介
Huawei Cloud EulerOS 2.0 是由华为公司开发的企业级Linux操作系统,旨在为数据中心和云环境提供高性能、高可靠性和安全性的计算平台。EulerOS是基于开源社区版本,并结合了华为在电信和企业市场的丰富经验与技术积累。
- Huawei Cloud EulerOS特性
- 性能优化:针对云计算、大数据处理、数据库等应用场景进行了深度优化,以确保最佳性能。
- 安全性:内建多种安全机制,包括SELinux支持、加密功能以及访问控制策略,保护数据隐私和系统安全。
- 稳定性:经过严格的测试流程,确保长时间运行的稳定性和可靠性,适用于关键任务型应用。
- 兼容性:广泛支持各类硬件设备和软件生态,能够良好地运行于x86架构服务器之上。
- 易于管理:提供图形化和命令行两种界面,简化了系统的安装、配置及日常维护工作。
- 容器支持:对Docker等容器技术有良好的支持,方便用户构建微服务架构的应用程序。
- 更新与支持:长期稳定的更新和支持周期,确保用户可以获得最新的安全补丁和技术改进。
- Huawei Cloud EulerOS应用场景
- 云计算平台:作为云服务的基础操作系统,支持虚拟化和弹性计算资源分配。
- 大数据分析:适配Hadoop、Spark等大数据框架,助力企业挖掘数据价值。
- Web服务和应用托管:适合部署各种Web应用程序和服务。
- 数据库服务器:支持MySQL、PostgreSQL等多种主流数据库管理系统。
1.2 Filestash介绍
Filestash是一款功能强大的网络文件管理工具,它允许用户在单一界面下管理分布于不同地点和平台的数据。无论是FTP、SFTP、WebDAV服务器,还是Git仓库,亦或是S3、Minio、Dropbox、Google Drive等云存储服务,Filestash都能提供便捷的访问和管理途径。通过Filestash,用户可以轻松实现文件的上传、下载、编辑、搜索和版本控制,无需在多个应用程序或服务之间切换,极大地提升了数据管理和协作的效率。尤其对于需要频繁处理多源文件的专业人士或团队,Filestash无疑是一个理想的解决方案。
1.3 华为云Flexus应用服务器L实例介绍
- 华为云Flexus应用服务器L实例简介
华为云Flexus云服务是一款专为中小企业和开发者设计的新一代高性价比云服务产品,强调开箱即用的便捷性和卓越用户体验。其中,Flexus应用服务器L实例作为该系列的一员,是特别针对中低负载应用场景优化的轻量级云服务器。对于刚开始接触云计算服务的新手用户、寻求高效部署方案的个人开发者,或是希望以较低成本实现业务上云的中小企业而言,Flexus应用服务器L实例是一个理想的选择,它能够帮助用户轻松开启云端之旅,同时确保稳定可靠的服务体验。
- 华为云Flexus应用服务器L实例特点
Flexus应用服务器L实例提供了经过严格筛选的丰富应用镜像库,支持一键部署,大大简化了网站构建、开发测试环境搭建、企业级应用部署、数据分析以及音视频服务等多种场景的操作流程。此实例具备以下优势:
易用性
:快速启动,配置简单,无需复杂的前期设置。经济性
:提供高品价比,适合预算有限但追求性能的用户。维护简便
:降低日常运维复杂度,节省管理成本。安全性
:内置安全措施,保护您的应用程序和数据。
二、本次实践介绍
2.1 本次实践介绍
1.本次实践环境为华为云Flexus应用服务器L实例,个人测试环境,生产环境请谨慎;
2.本次实践主要为在openEuler系统下部署FTP服务和Filestash工具。
2.2 本次环境规划
本次环境规划如下所示:
服务器 | HostName | 系统镜像 | 操作系统 | 内核版本 | 部署项目 |
---|---|---|---|---|---|
华为云Flexus应用服务器L实例 | hcss-ecs-d368 | Huawei Cloud EulerOS 2.0 | Huawei Cloud EulerOS 2.0 (x86_64) | 5.10.0-182.0.0.95.r2220_156.hce2.x86_64 | FTP服务和Filestash工具 |
三、检查云服务器环境
3.1 登录华为云
登录华为云官网,进入华为云Flexus云服务控制台,可以看到当前购买的Flexus应用服务器L实例。当前使用的系统镜像为 Huawei Cloud EulerOS 2.0,我们复制其弹性公网IP地址,后面远程连接和访问应用都需要用上。
3.2 SSH远程连接
我们本地通过Xshell工具,远程连接其Flexus应用服务器L实例。
3.3 检查系统环境
- 检查操作系统版本,当前安装版本为
Huawei Cloud EulerOS 2.0 (x86_64)
。
[root@hcss-ecs-d368 ~]# cat /etc/os-release
NAME="Huawei Cloud EulerOS"
VERSION="2.0 (x86_64)"
ID="hce"
VERSION_ID="2.0"
PRETTY_NAME="Huawei Cloud EulerOS 2.0 (x86_64)"
ANSI_COLOR="0;31"
- 检查内核版本,当前内核版本为
5.10.0-182.0.0.95.r2220_156.hce2.x86_64
。
[root@hcss-ecs-d368 ~]# uname -r
5.10.0-182.0.0.95.r2220_156.hce2.x86_64
四、部署Docker环境
4.1配置Docker仓库
为Docker安装了Filestash工具,首先需安装Docker环境,这是一个开源平台,允许将应用及其依赖打包进轻量级、可移植的容器中。通过Docker,我们能够实现一次构建、处处运行,确保应用在任何环境中的一致性和易移植性。我们执行以下操作,配置Docker-ce的镜像仓库。
vim /etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://repo.huaweicloud.cn/docker-ce/linux/centos/9/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.cn/docker-ce/linux/centos/gpg
执行以下命令,重新生成缓存。
dnf clean all && dnf makecache
4.2 检查Docker仓库状态
执行以下命令,查看Docker仓库状态正常。
[root@hcss-ecs-d368 ~]# dnf repolist all
repo id repo name status
base HCE 2.0 base enabled
debuginfo HCE 2.0 debuginfo disabled
docker-ce-stable Docker CE Stable - x86_64 enabled
updates HCE 2.0 updates enabled
4.3 安装Docker
执行以下命令,我们使用dnf一键安装Docker。
dnf install docker-ce -y
4.4 检查Docker版本
安装完毕后,检查Docker版本,当前安装Docker版本为
27.3.1
。
[root@hcss-ecs-d368 ~]# docker -v
Docker version 27.3.1, build ce12230
检查docker compose版本,当前安装docker compose版本为
v2.29.7
。
[root@hcss-ecs-d368 ~]# docker compose version
Docker Compose version v2.29.7
4.5 启动Docker服务
启动Docker服务,并使开机自启。
sudo systemctl start docker
sudo systemctl enable docker
检查Docker服务状态,确保Docker服务正常运行。
[root@hcss-ecs-d368 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2024-12-07 14:47:09 CST; 3min 5s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 6464 (dockerd)
Tasks: 8
Memory: 26.0M
CGroup: /system.slice/docker.service
4.6 配置镜像加速
执行以下命令,配置Docker镜像加速。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [ "https://80c84f5330e14908928ca78944e61dc4.mirror.swr.myhuaweicloud.com" ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
五、安装FTP服务
5.1 FTP的主动模式和被动模式
FTP(文件传输协议)有两种主要的工作模式:主动模式(Active Mode)和被动模式(Passive Mode)。这两种模式的主要区别在于数据连接的建立方式。下面是关于这两种模式的详细介绍:
- 主动模式(Active Mode)
- 客户端发起命令连接:客户端首先与服务器的21端口建立一个控制连接,用于发送命令和接收响应。
- 客户端监听端口:客户端选择一个本地端口(通常大于1024),并通知服务器将要使用的这个端口号。
- 服务器发起数据连接:服务器从其20端口向客户端指定的端口发起数据连接请求,以传输文件或目录列表。
优点:
- 对于简单的网络配置来说,主动模式工作良好。
缺点:
- 客户端防火墙可能会阻止来自外部的数据连接请求。
- 在NAT环境中,客户端的内部IP地址和端口可能无法直接被外部服务器访问。
- 被动模式(Passive Mode)
- 客户端发起命令连接:同样地,客户端与服务器的21端口建立一个控制连接。
- 服务器提供数据端口:当需要进行数据传输时,服务器在高编号端口(通常大于1024)上监听,并通过控制连接告知客户端它所选择的端口号。
- 客户端发起数据连接:客户端然后从自己的任意可用端口连接到服务器提供的端口,以建立数据传输通道。
优点:
- 更适合现代网络环境,特别是当客户端位于防火墙之后或使用NAT时。
- 客户端可以更容易地配置防火墙规则来允许数据连接。
缺点:
- 服务器端可能需要配置防火墙以允许动态端口范围内的入站连接。
- 如果服务器也位于防火墙之后,则可能需要额外的配置才能支持被动模式。
5.2 安装vsftpd软件
vsftpd(Very Secure FTP Daemon)是一个用于Linux和类Unix系统的高性能、安全的FTP服务器软件,主要用于提供文件传输服务。执行以下命令,我们使用dnf命令,一键快速安装vsftpd软件。
dnf install vsftpd -y
5.3 启动vsftpd服务
执行以下命令,启动vsftpd服务并设置开机自启。
systemctl start vsftpd && systemctl enable vsftpd
我们检查vsftpd服务状态,确保vsftpd服务运行正常。
[root@hcss-ecs-d368 ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2024-12-07 14:54:48 CST; 34s ago
Main PID: 7031 (vsftpd)
Tasks: 1 (limit: 11431)
Memory: 420.0K
CGroup: /system.slice/vsftpd.service
└─ 7031 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Dec 07 14:54:48 hcss-ecs-d368 systemd[1]: Starting Vsftpd ftp daemon...
Dec 07 14:54:48 hcss-ecs-d368 systemd[1]: Started Vsftpd ftp daemon.
5.4 新增FTP服务用户
我们为FTP服务创建一个用户,这里用户名我们设置为jeven。
adduser jeven
执行以下命令,我们给新建用户设置密码,自定义设置即可。
passwd jeven
5.5 创建FTP目录
执行以下命令,我们为FTP服务创建目录和文件。
mkdir -p /data/ftp/
echo "Huawei Cloud EulerOS" > /data/ftp/aa.txt
将该FTP目录的权限的属主和属组都设置为jeven,如下所示:
chown -R jeven:jeven /data/ftp/
5.6 修改vsftpd配置文件
修改/etc/vsftpd/vsftpd.conf配置文件,注意将以下内容的pasv_address值改为弹性公网IP地址。
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
local_root=/data/ftp
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to blah FTP service.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
allow_writeable_chroot=YES
pasv_address=IP
pasv_min_port=3000
pasv_max_port=3100
5.7 创建chroot_list文件
chroot_list
文件用于定义不受主目录限制的用户例外名单。若要允许某个用户访问超出其主目录的权限,可将该用户名添加到此文件中。即使没有需要设置例外的用户,也应保持chroot_list
文件存在,但可以为空。如果需要修改chroot_list文件,可在/etc/vsftpd/vsftpd.conf文件中修改以下配置:
配置项 | 值 | 说明 |
---|---|---|
chroot_local_user |
YES |
所有本地用户都将被限制在其主目录中。 |
chroot_list_enable |
YES |
启用例外用户名单,允许列表中的用户不受主目录限制。 |
chroot_list_file |
/etc/vsftpd/chroot_list |
指定例外用户名单文件的位置,默认为/etc/vsftpd/chroot_list 。 |
allow_writeable_chroot |
YES |
允许用户的主目录是可写的,即使启用了chroot_local_user 。这通常是为了避免某些系统上的安全警告或错误。 |
需要注意事项:
- 修改上述配置后,请确保
chroot_list
文件存在,并根据需要添加例外用户。 - 在应用更改之前,请备份原始配置文件。
- 完成配置修改后,记得重启vsftpd服务以使更改生效:
sudo systemctl restart vsftpd
。
由于我们在/etc/vsftpd/vsftpd.conf配置文件中启动了`chroot_local_user等配置项,我们新建一个空的chroot_list文件。
touch /etc/vsftpd/chroot_list
5.8 重启vsftpd服务
将以上所有步骤全部完成后我,我们重启vsftpd服务
systemctl restart vsftpd.service
5.9 安全组设置
在华为云Flexus应用服务器L实例的安全组的入方向上,放行21端口和3000-3100端口。
5.10 访问测试
在浏览器中ftp://<FTP服务器公网IP>:21访问FTP服务,输入密码后效果如下所示:
六、部署Filestash应用
6.1 拉取Filestash镜像
执行以下命令,拉取Filestash镜像。
docker pull registry.cn-hangzhou.aliyuncs.com/jeson/filestash
docker pull registry.cn-hangzhou.aliyuncs.com/jeson/documentserver
6.2 编辑部署文件
编辑docker-compose.yaml部署文件,内容如下所示,可自定义修改宿主机映射端口。
vim docker-compose.yaml
version: '3'
services:
app:
container_name: filestash
image: registry.cn-hangzhou.aliyuncs.com/jeson/filestash
restart: always
environment:
# - APPLICATION_URL=
# - GDRIVE_CLIENT_ID=<gdrive_client>
# - GDRIVE_CLIENT_SECRET=<gdrive_secret>
# - DROPBOX_CLIENT_ID=<dropbox_key>
- ONLYOFFICE_URL=http://onlyoffice
ports:
- "8334:8334"
volumes:
- filestash:/app/data/state/
onlyoffice:
container_name: filestash_oods
image: registry.cn-hangzhou.aliyuncs.com/jeson/documentserver
restart: always
security_opt:
- seccomp:unconfined
volumes:
filestash: {}
6.3 创建Filestash容器
使用
docker compose up -d
命令,快速创建Filestash容器。
[root@hcss-ecs-d368 filestash]# docker compose up -d
WARN[0000] /data/filestash/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 4/4
✔ Network filestash_default Created 0.1s
✔ Volume "filestash_filestash" Created 0.0s
✔ Container filestash Started 1.5s
✔ Container filestash_oods Started 1.5s
6.4 检查Filestash容器状态
检查Filestash容器状态,确保Filestash容器正常启动。
[root@hcss-ecs-d368 filestash]# docker compose ps
WARN[0000] /data/filestash/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
filestash registry.cn-hangzhou.aliyuncs.com/jeson/filestash "/app/filestash" app 46 seconds ago Up 45 seconds 0.0.0.0:8334->8334/tcp, :::8334->8334/tcp
filestash_oods registry.cn-hangzhou.aliyuncs.com/jeson/documentserver "/app/ds/run-documen…" onlyoffice 46 seconds ago Up 45 seconds 80/tcp, 443/tcp
七、访问Filestash应用
7.1 安全组设置
在华为云Flexus应用服务器L实例的安全组的入方向上,放行8334端口。
7.2 访问Filestash初始页
在本地浏览器:http;//服务器IP地址:8334,地址填写自己云服务器的弹性公网IP地址,可以看到已经正常在浏览器访问到Filestash的初始页。
7.3 设置访问密码
在Filestash初始页,填写访问密码,自定义设置即可。
八、访问FTP服务器
8.1 登录FTP服务器
我们选择了Filestash的FTP功能,配置了弹性公网IP地址,并设置了FTP访问账号
jeven
和对应的密码。利用这些设置,我们成功登录了FTP服务器。
8.2 新建目录和文件
- 点击新目录选项,填写目录名称,按回车键确认。
- 点击新文件,填写文件名称,按回车键确认。
8.3 编辑文件内容
双击新建的文件,进入该文件编辑页面。编辑文件内容完成后,点击保存即可。
总结
通过在华为云EulerOS上部署FTP服务并与Filestash应用集成,我们不仅充分利用了华为欧拉系统卓越的性能优化和高安全性特性,还为用户带来了无缝、高效的文件管理体验。华为云EulerOS以其稳定性和广泛的兼容性,确保了各类应用和服务的顺畅运行,特别适合需要处理多源文件的专业人士和团队。结合华为云Flexus应用服务器L实例的使用,本方案为中小企业和个人开发者提供了一个成本效益高且易于部署的云端解决方案,极大地促进了数据管理和协作效率。华为欧拉系统及其相关云服务产品为企业提供了坚实的技术支持,助力其业务发展与创新。
- 点赞
- 收藏
- 关注作者
评论(0)