VSFTPD分布式文件管理系统 (very secure FTP daemon)

本文详细介绍了如何在Linux系统上安装并配置VSFTPD服务器,提供安全的图片上传功能,并通过Nginx实现FTP到HTTP的代理,以便外部访问。重点讲解了防火墙设置、用户权限管理和HTTP代理配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 FTP 服务器

FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

在 FTP 的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用 Internet 语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

 二、     VSFTPD 简介

        vsftpd 是“very secure FTP daemon的缩写,安全性是它的一个最大的特点。vsftpd是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 LinuxBSDSolarisHP-UNIX 等系统上面,是一个完全免费的、开放源代码的 ftp 服务器软件,支持很多其他的 FTP 服务器所不支持的特征。

 三、     项目中图片服务器

单体架构中的图片管理

        在传统的单体架构项目中,可以在 web 项目中添加一个文件夹,来存放上传的图片。例如在工程的根目录 webapp 下创建一个 images 文件夹用于保存已上传的图片。

优点:使用方便,便于管理

缺点:如果是分布式环境中图片引用会出现问题,图片的下载会给服务器增加额外的压力

单体架构图片存储架构图

传统图片管理方式在分布式环境中的问题:

当二次请求是可能访问的不是之前的服务器造成文件存储丢失

 

 

分布式环境的图片管理

四、     安装 VSFTPD 

在线安装 vsftpd 软件

        yum -y install vsftpd

打开配置文件夹

             安装完后,在/etc/vsftpd/目录下有一个vsftpd.conf 文件,是 vsftp 的配置文件。

添加一个 Linux 用户

        useradd ftpuser

        Vsftpd不允许使用root权限运行,所以需要创建一个新用户此用户就是专门用来登录 ftp文件服务器用的。这样一个用户建完,可以用这个登录。登录后默认的路径为 /home/ftpuser.

给用户添加密码。    

        passwd ftpuser     输入两次密码后修改密码。

防火墙开启 21 端口

因为 ftp 默认的端口为 21,而 centos 默认是没有开启的

开放21端口

firewall-cmd --zone=public --add-port=21/tcp --permanent

配置立即生效

firewall-cmd --reload

开启外网访问,修改 selinux

外网是可以访问上去了,可是发现没法返回目录(使用 ftp 的主动模式,被动模式还是无法访问),也上传不了,因为 selinux 作怪了。

修改 selinux:

执行以下命令查看状态:

        [root@bogon ~]# getsebool -a | grep ftp

allow_ftpd_anon_write --> off

allow_ftpd_full_access --> off

allow_ftpd_use_cifs --> off

allow_ftpd_use_nfs --> off

ftp_home_dir --> off

ftpd_connect_db --> off

ftpd_use_passive_mode --> off

httpd_enable_ftp_server --> off

tftp_anon_write --> off

执行上面命令,再返回的结果看到两行都是 off,代表,没有开启外网的访问

[root@bogon ~]# setsebool -P allow_ftpd_full_access on

[root@bogon ~]# setsebool -P tftp_home_dir on

启动 ftp 服务:

        systemctl start vsftpd.service

查看状态

        systemctl status vsftpd.service

设置开机启动 vsftpd ftp 服务

        chkconfig vsftpd on

重启 ftp 服务:

        systemctl restart vsftpd.service

赋予读写权限:

切换到ftpuser用户

        su ftpuser

进入到home/ftpuser--->建立一个文件夹

        mkdir images

ftpuser用户下的目录授予读写权限:

4+2+1 = 7表示授予可读,可写,可执行权限

如果是Ubuntu系统需要加上 :sudo

读写权限语句: chmod 777 /home/ftpuser

五、     图片上传

使用 FileZilla 上传图片

六,        http协议代理-VSFTPDftp协议实现文件服务器

        由于ftp服务器是基于ftp协议处理的。那么现在我想在外部访问该图片,是没有办法访问的。他是不能处理http协议的。所以我们需要拥有一个能够处理http协议代理服务器。其实就是使用了Nginx的虚拟主机的方式。        

 

修改nginx.conf 

 server{

    listen 9999;#代理端口

    server_name 192.168.160.128;#本机ip

    location / {

       root /home/ftpuser/images/;#文件存放地址

       autoindex on;

       charset utf-8;#上传文件中文名的编码

    }

}

访问  http://192.168.160.128:9999   ---代理--->

通过访问代理ip的端口,根据他绑定的具体文件地址访问到文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值