Linux的网络文件共享服务之FTP服务

一.存储类型

1.1 存储类型分为三种

  • 直连式存储:Direct-Attached Storage,简称DAS

  • 存储区域网络:Storage Area Network,简称SAN(可以使用空间,管理也是你来管理)

  • 网络附加存储:Network-Attached Storage,简称NAS(存储和管理空间都在远程)

1.2 DAS

        DAS存储是最常见的一种存储方式,尤其是在中小企业应用中。PC中的硬盘或只有一个外部SCSI接口的JBOD都属于DAS架构。DAS是指存储设备直接连接到服务器总线上,存储设备只与一台独立的主机连接,其他主机不能使用这个存储设备。DAS存储设备与服务器主机之间的连接通道通常采用SCSI连接,DAS存储设备主要是磁盘阵列(RAID、磁盘簇JBOD)等。

1.3 SAN

        存储区域网络,这个是通过光纤通道或以太网交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络。SAN经过十多年历史的发展,已经相当成熟,成为业界的事实标准(但各个厂商的光纤交换技术不完全相同,其服务器和SAN存储有兼容性的要求)。

1.4 NAS

        NAS存储就是存储设备通过标准的网络拓扑结构(比如以太网)添加到一群计算机上。与DAS以及SAN不同,NAS是文件级的存储方法。采用NAS较多的功能是用来进行文件共享。NAS存储也通常被称为附加存储,顾名思义,就是存储设备通过标准的网络拓扑结构(例如以太网)添加到一群计算机上。NAS是文件级的存储方法,它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。

1.5 图解

1.6 三种存储架构的应用场景

  • DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业

  • NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低

  • SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂

二. FTP文件传输协议

1. 了解FTP服务

        FTP(file Transfer Protocol,文件传输协议),是典型的C/S架构的应用层协议,由客户端软件和服务端软件两个部分共同实现文件传输功能,FTP客户端和服务器之间的连接时可靠的,面向连接的,为数据的传输提供了可靠的保证。

FTP是TCP传输协议,也叫双通道协议,主要使用20和21端口

        20端口用来传输数据

        21端口用来建立连接(传输指令)

FTP是一种文件传输协议,它支持两种模式

① 主动模式:

ftp服务器主动开启20端口去连接客户端,传递真实的数据

② 被动模式:

服务器会开启一个随机端口,被动等待客户端来连接

小操作:

192.168.44.20作为服务端

192.168.44.30作为客户端

ftp 软件里面的一些指令

退出:quit  或者 ctrl + d

③ 用户认证:

匿名用户:ftp   anonymous     对应Linux用户ftp

系统用户:Linux用户    用户/etc/passwd      密码/etc/shadow

虚拟用户:特定服务的专用用户,独立的用户/密码文件

2. FTP 服务状态码

1XX:信息                   125:数据连接打开
2XX:成功类状态        200:命令OK     230:登录成功
3XX:补充类              331:用户名OK
4XX:客户端错误       425:不能打开数据连接
5XX:服务器错误       530:不能登录

3.常见 FTP 相关软件

Filezilla、Wu-ftpd、Proftpd、Pureftpd,、Server、Serv-U、Wing FTP Server、IIS

vsftpd:Very Secure FTP Daemon,CentOS 默认FTP服务器

高速,稳定,下载速度是WU-FTP的两倍

4. vsftpd 软件介绍

用户认证配置文件:/etc/pam.d/vsftpd

配置文件:/etc/vsftpd/vsftpd.conf

用户和其共享目录:

  • 匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp

  • 系统用户共享文件位置:用户家目录

  • 虚拟用户共享文件位置:为其映射的系统用户的家目录

5.vsftpd 服务常见配置

5.1 修改默认命令端口

服务端:

客户端:

5.2 主动模式端口

connect_from_port_20=YES 主动模式端口为20
ftp_data_port=20 (默认) 指定主动模式的端口

5.3 被动模式端口

pasv_min_port=6000   0为随机分配,端口范围会影响客户端的并发数
pasv_max_port=6010
#最多11人同时登录

5.4 使用当地时间

use_localtime=YES 使用当地时间(默认为NO,使用GMT)
格林威治        +8 

5.5 匿名用户登录

anonymous_enable=YES 支持匿名用户,CentOS8 默认不允许匿名
no_anon_password=YES 匿名用户略过口令检查 , 默认NO

服务端

客户端

5.6 匿名用户上传  下载

anon_upload_enable=YES 匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES 匿名建目录

客户端

服务端修改配置

客户端测试

下载上传的文件失败

在服务端给该文件增加可读权限

客户端

根目录不可以有写的权限

加上写的权限测试

去掉写的权限测试

5.6.1 ftp权限问题

根目录不要随便更改权限,根目录不可以有写的权限,否则登录不上

  (只可以给根 (/var/ftp ) 下的文件夹有写的权限 )

上传:

1.程序开放权限

2.文件夹要有权限

下载:

文件一定要有读的权限

5.7 匿名用户删除文件

anon_other_write_enable=YES

5.8 指定匿名用户的上传文件的默认的所有者和权限

chown_uploads=YES        #默认NO
chown_username=zhangsan
chown_upload_mode=0644

5.9 Linux系统用户

local_enable=YES 是否允许linux用户登录
write_enable=YES 允许linux用户上传文件
local_umask=022 指定系统用户上传文件的默认权限对应umask

5.10 禁锢系统用户

#禁锢所有系统用户在家目录中
chroot_local_user=YES #禁锢系统用户,默认NO,即不禁锢#禁锢用户开启白名单和黑名单
chroot_list_enable=YES     #默认是NO
chroot_list_file=/etc/vsftpd/chroot_list   #默认值当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单,在文件里的不禁锢
当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单,在文件里的禁锢

操作:

服务端:

注意:

那三个配置文件配合开启

文件夹lisi必须要有执行权限

5.11 将所有系统用户映射为指定的guest用户

guest_enable=YES 
guest_username=ftp  

5.12 日志

#wu-ftp 日志:默认启用
xferlog_enable=YES #启用记录上传下载日志,此为默认值
xferlog_std_format=YES #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog #可自动生成, 此为默认值#vsftpd日志:默认不启用
dual_log_enable=YES 使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log 可自动生成, 此为默认值

5.13 提示信息

ftpd_banner="welcome to MyWorld ftp server"#或者写在一个文件里面
banner_file=/etc/vsftpd/ftpbanner.txt 

5.14 pam模块实现用户访问

由于ftp是明文传输, 抓取是可可以获取密码的 默认是不让使用root 用户登录

[root@node2 ~]#vim /etc/vsftpd/ftpusers
#加入此文件默认是 拒绝
将root注释掉,就意味着允许他登录[root@node2 vsftpd]#vim /etc/vsftpd/user_list

默认不让登录的用户

原理

如果将pam模块里面的deny 换成allow  那么 ftpusers 里面的root得取消注释,user_list还是注释

5.15 传输速率

anon_max_rate=0 匿名用户的最大传输速率,以字节为单位,比如:1024000表示1MB/s
local_max_rate=0 本地用户的最大传输速率anon_max_rate=1024000
local_max_rate=102400

百度网盘限速就是如此

三.建立内网的yum仓库

① 通过 ftp 服务搭建内网yum仓库服务器

服务端:

① 先关闭防火墙和防护

② 提供安装包

客户端:

① 关闭防火墙和防护

② 搭建仓库

测试:

② 通过http协议搭建内网yum仓库服务器

服务端:

① 关闭防火墙

② 提供安装包,如果有nginx先关闭,防止80端口占用

客户端:

① 关闭防火墙

② 搭建仓库

测试:

baseurl 怎么写:

file 本地

http  http协议   需要用http  nginx  软件

https  用上(只是多了个加密)

ftp   文件传输协议

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/416102.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python_PySide6学习笔记(三十一)】基于PySide6实现自定义串口设备连接界面类:可实现串口连接断开、定时发送等功能

基于PySide6实现自定义串口设备连接界面类:可实现串口连接关闭、定时发送等功能 基于PySide6实现自定义串口设备连接界面类:可实现串口连接关闭、定时发送等功能前言一、界面布局二、串口相关功能实现三、完整代码四、调用方法五、实现效果基于PySide6实现自定义串口设备连接…

十、Three场景实现多个物体的合并

Three场景实现多个物体的合并 目的 产品需求是让物体的光柱墙包含一个多边形的区域,二而我的多边形只能使用原型,方向,多边形。那么再研究的时候就需要将这些多边形合并成为一个形状,那么就行实现了。 原先的图形 如上图,是两个mesh组成的。首先寻找mesh合并的方法。 第…

算法练习-长度最小的子数组(思路+流程图+代码)

难度参考 难度:简单 分类:数组 难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。以下内容均为个人笔记,旨在督促自己认真学习。 题目 给定一个含有个正整数的数组和一个正整数s,找…

redisson的延时队列机制简述

概述 业务中经常会遇到一些延迟执行的需求;通常想到的都是rabbitmq或者rocketmq的延迟消息; 但是系统中不一定集成了mq,但为了控制分布式下的并发,一般redis都是有集成的; redis的key过期监听那个时间不准确&#xff…

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter 0. 背景1. 安装 docker-ce2. 安装 NVIDIA Container Toolkit3. 使用 nvidia-ctk 命令配置容器运行4. 通过 docker 运行 nvidia-smi5. 运行 gpu-jupyter6. 访问 gpu-jupyter7. 测试 gpu-jupyter 是否可以访问 cuda 0. 背景 今天突…

Mysql详细安装步骤

Linux 安装 MySQL【超详细版】 ​编辑 我叫BuGu    2023-05-11 16:48:10 发布 一、安装 MySQL 的准备工作 1. 查看系统版本 cat /etc/redhat-release2. 查看系统是否已经安装过 MySQL 查看是否安装了 MySQL rpm -qa | grep mysql查看是否有安装 mariadb,该软件与 MySQ…

qt学习:进度条,水平滑动条,垂直滑动条+rgb调试实战

目录 水平滑动条,垂直滑动条 常用信号 进度条 常用信号 修改进度条 例子 rgb调色 配置ui界面 编写3个进度条的事件函数 添加链表容器和按钮索引 在.h里的类定义 初始化链表容器和按钮索引 编写添加颜色的按钮点击事件函数 效果 水平滑动条&#xff0c…

ChatGPT正确打开方式与GPT-4.5的key最新获取方式

前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言4.5key价格泄漏ChatGPT4.0使用地址ChatGPT正确打开方式最新功能语音助手存档…

【REMB 】翻译:草案remb-03

REMB REMB消息 以及 绝对时间戳选项 在带宽估计中的使用 :an absolute-value timestamp option for use in bandwidth estimatoin. 接收方带宽估计的RTCP消息 REMB 这位大神翻译的更好。 RTCP message for Receiver Estimated Maximum Bitrate draft-alvestrand-rmcat-remb-03…

.NetCore Flurl.Http 4.0.0 以上管理客户端

参考原文地址:Managing Clients - Flurl 管理客户端 Flurl.Http 构建在堆栈之上System.Net.Http。如果您熟悉HttpClient,那么您可能听说过这个建议:不要为每个请求创建一个新客户端;重复使用它们,否则将面临后…

自动化测试框架有哪些?

前言 自动化测试常用的Python框架有哪些?常用的框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。Pytest、Robot Framework和UnitTest主要用于功能与单元测试,Lettuce和Behave仅适用于行为驱动测试。 一、Robot Framework Python测…

6.4.2转换文件

6.4.2转换文件 利用Swf2VideoConverter2可以很方便地将Flash动画(*.swf)转换为其它的视频格式。 1.单击“添加”按钮,在弹出的下拉菜单中选择“添加文件”,在弹出的“Open Swf Files(打开Swf文件)”窗口中选择swf文件(如:那些花…