Linux系统的FTP文件传输服务
一.FTP简介
Linux环境下高性能的FTP命令行工具,能够利用FTP协议进行高效的文件传输管理。借助此强大工具,用户能轻松连接远程服务器,执行上传、下载、删除及重命名等操作,显著提高两台设备间的文件交互效率。
1.FTP什么
ftp是一种文件传输协议
2.FTP的作用
用来上传和下载,实现远程共享文件,和统一管理文件
3.FTP属于什么层
应用层
4.FTP的端口号
端口号:21 主动模式下端口号:20 被动模式下:随机端口
5.FTP的连接方式的两个阶段
(1)管理连接:客户端使用随机端口(端口号值大于1024,也被称为高位端口)连接服务器的21号端口,利用管理连接建立的通道发送指令。
(2)数据连接:上传或下载文件
6.数据连接下的两种模式
(1)主动模式:服务器(20端口)主动向客户端发起数据连接(随机端口,一般是N+1)客户端的防火墙会拦截服务器发起的连接(服务器连客户端)
(2)被动模式:服务器(随机端口)等待客户端(随机端口)向自己发起连接服务器需要处理防火墙(关闭,添加策略)(客户端连服务器)
7.ftp的用户类型及登录
匿名用户:用户名ftp,无需密码登录
授权用户:账号名及密码登录
8.FTP服务在客户端与服务器的名称
服务器端:vsftpd
客户端:ftp
9.FTP的两种传输模式
(1)文本模式:ASCII模式美国信息交换信息标准码 这种模式传输文件使用ASCII标准字符序列,一般只用于传输文件文件的传输。
(2)二进制模式:又称为Binary这种模式不会转换文件中的字符序列,跟适合传输程序图片等非文本文件
Vsftpd可支持最大15000并发连接数
10.FTP的工作原理
用于互联网上的控制文件的双向传输 是一个应用程序。工作在TCP/IP协议簇的,其传输协议是TCP协议提高文件传输的共享性和可靠性,使用C/S模式的工作方式连接时同时处理服务器和客户端的连接命令和数据传输,FTp将命令和数据分开传输,提高传输效率。
二.FTP的相关配置
1.安装FTP
服务器:安装vsftpd
客户端:安装ftp
2.关闭服务器防火墙,内核安全机制及启动ftp服务
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# setenforce 0
3.配置ftp服务的文档
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# sed -i '/^#/d' /etc/vsftpd/vsftpd.conf 删除文本里面以'/^#/d'开头参数,剩余显示的是需要配置的参数
4.相关参数介绍
anonymous_enable=YES 允许匿名登录
local_enable=YES 允许本地用户访问
write_enable=YES 允许用户上传和下载文件
local_umask=022 设置上传的文件的默认权限
dirmessage_enable=YES 允许在目录上传送完毕后显示一条消息。
xferlog_enable=YES 启用日志功能
connect_from_port_20=YES 使用端口20进行数据传输
xferlog_std_format=YES 使用标准的日志格式
listen=NO 表示以非独立的服务进行
listen_ipv6=YES 表示vsftpd将监听IPv6连接
pam_service_name=vsftpd 使用PAM进行认证
userlist_enable=YES 启用用户列表文件
tcp_wrappers=YES 表示服务器使用tcp_wrappers作为主机访问控制方式
5.匿名用户的相关配置
anonymous_enable=YES 允许匿名登录
anon_umask=022 允许匿名用户访问的权限设置
anon_root=/opt/ftp 匿名用户登录后只能在该目录下操作
anon_upload_enable=yes 匿名用户不能浏览目录,只能上传文件,无其他权限
anon_mkdir_write_enable=yes 允许匿名用户创建目录
anon_other_write_enable=yes 允许匿名用户删除
6.本地用户的相关配置
local_enable=YES 允许本地用户访问
local_root=/opt/ftp 本地用户登录后只能在该目录下操作
local_umask=022 允许本地用户访问的权限设置
chroot_local_user=yes 将所有用户限制在主目录
allow_writeable_chroot=yes 允许在chroot环境中创建可写文件
7.主动模式被动模式的相关配置
pasv_enable=yes YES即被动模式,NO即主动模式
pasv_min_port=30500 最小端口值
pasv_max_port=30600 最大端口值
8.黑名单与白名单
(1)vim /etc/vsftpd/ftpusers
ftpusers黑名单文件,存在该文件中的用户无法登陆
(2)vim /etc/vsftpd/user_list
User_list 白名单文件,如果设置userlist_deny=NO Userlist_enable=YES则只允许该列表中的用户登录
注:若一个用户同时存在两个文件中,黑名单生效,该用户不能登陆虚拟用户模式。
9.使用虚拟用户可以将用户的登录名和密码不相同,提高服务器的安全性
第一步:创建文本格式的用户名和密码 奇数行为用户名,偶数行为密码
第二步:建立虚拟FTP用户的数据库文件
第三步:添加虚拟用户的映射账号
第四步:为虚拟用户建立PAM认证文件
第五步:修改配置文件添加虚拟用户的支持
Local_enable=YES #需要映射本地用户所以启用
Write_enable=YES ##启用上传写入权限
Guest_enable=YES ##开启虚拟用户
Anon_umask=022 ### 指定上次权限掩码
Guest_username=* ###指定映射的本地系统用户
Pam_serrivce_name=vsftpd.vu ##指定新的pam认证文件
User_config_dir=/*/*/*/ ###为不同的虚拟用户设置不同的权限
匿名用户模式:
anonymous_enabled=YES ##允许匿名访问模式。默认开的
Anonumask=022 ##匿名用户上传文件或目录权限,所上传的文件或目录的权限减去022文件默认权限是644 目录的755
Anon_upload_enable=YES ##允许匿名用户上传文件
Anon_mkdir_write_enable=YES ##允许匿名用户创建目录Anon_other_ write_enable=YES ##允许匿名用户有其他的写入权限 (删除或者修改)
10.相关命令
put 上传
local 跳转
wget 下载
相关文章:
Linux系统的FTP文件传输服务
一.FTP简介 Linux环境下高性能的FTP命令行工具,能够利用FTP协议进行高效的文件传输管理。借助此强大工具,用户能轻松连接远程服务器,执行上传、下载、删除及重命名等操作,显著提高两台设备间的文件交互效率。 1.FTP什么 ftp是一…...
redis 08 慢查询日志
1.什么是慢查询日志 2.慢查询和两个参数有关 2.1 2.2 3.例子: 4 参数详细介绍:...
山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(三十一)- 微服务(11)
12.7 DSL查询语法 查询的基本语法 GET /indexName/_search{"query": {"查询类型": {"查询条件": "条件值"}}} 查询所有 GET /hotel/_search{"query": {"match_all": {}}} 12.7.1 全文检索查询 全文检索查询,会…...
DevExpress WPF中文教程:Grid - 如何向项目添加GridControl并绑定到数据
DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...
nodejs湖北省智慧乡村旅游平台-计算机毕业设计源码00232
摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,旅游行业当然也不能排除在外。智慧乡村旅游平台是以实际运用为开发背景,运用软件工程开发方法,采…...
架构设计 - 根据性能压力测试结果优化服务器性能
概述:web软件项目工程实施过程,经常会用到客户端和服务端建立 KeepAlive 长连接来提高应用效率的场景。例如:移动端应用或者复杂的网页交互需要在用户浏览时频繁地向服务端发送请求。但是随之而来的问题是,需要对服务器端 tomcat …...
【必会面试题】事务的四大特性?ACID
目录 事务的四大特性,即ACID特性,是数据库管理的基石。 原子性(Atomicity) 定义:事务作为一个整体被执行,其内部的操作要么全部完成,要么全部不完成。如果事务中的任何一部分失败,那…...
【QT】记录一次QT程序发布exe过程
记录一次QT程序发布exe过程 使用windeploy与enigma发布独立的QT程序第一步 QT编译输出 **release** 版本第二步 QT 自带 windepoyqt 补全链接库第三步 enigma virtual box压缩打包为单一exe最后【2024-06-07 17】- 【补充】 贴一个自己用的bat脚本【**QtDeploy2exe.bat**】半自…...
数据分类分级,误把起点当终点
数据分类分级 吉祥学安全知识星球🔗除了包含技术干货:Java代码审计、web安全、应急响应等,还包含了安全中常见的售前护网案例、售前方案、ppt等,同时也有面向学生的网络安全面试、护网面试等。 01 — 数据分类分级的定义 数据分…...
stm32 启动文件分析
启动文件前面的介绍 启动文件是后缀为.s的汇编语言文本文件,每行前面的分号表示此行是注释行。 启动文件主要完成如下工作,即程序执行过程: - 设置堆栈指针SP __initial_sp。 - 设置PC指针 Reset_Handler。 - 设置中断向…...
playwright--简单使用
playwright的基本使用主要围绕着启动浏览器、导航至网页、操作页面元素、执行脚本和收集数据这几个核心步骤。以下是简单的使用流程,以同步API为例: 目录 1. 导入库并启动playwright 2. 创建新页面并导航 3. 操作页面元素 4. 异步操作与等待 5. 数…...
pom学习笔记:kimi的自动化操作
1.先看结构: 声明:我是初学,可能有不合理的地方。 2.Base层。 我是把原来一个kimi的自动问答的代码改过来。 分析:其实我是新手,因为我用的浏览器是固定的,也没有打算和别人用。所以浏览器层面年的全部写…...
【iOS】UI学习——界面切换
界面切换 push和poppresent和dismiss示例程序 push和pop 在 Objective-C 中,pop 和 push 通常是与 UINavigationController 一起使用的方法,用于控制导航栈中视图控制器的跳转和回退。 push 和 pop 通常成对使用,用于实现导航栈的前进和后退功能。当用户进入新的视图控制器时…...
【悬架笔记三】1/4被动悬架垂向动力学仿真+频域特性分析
1/4被动悬架 代码: %书第156页、159页 clc clear close all %% 一.悬架参数 ms320; mw50; Ks22000; Cs1500; Kw195000; f00.07; %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 二.垂向振动动力学仿真 %% 二.1.状态方程 A [0 1 0 -1;.…...
【C++】——继承(详解)
一 继承的定义和概念 1.1 继承的定义 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类,被继承的称为基类…...
openGauss学习笔记-299 openGauss AI特性-AI4DB数据库自治运维-DBMind的AI子功能-SQLdiag慢SQL发现
文章目录 openGauss学习笔记-299 openGauss AI特性-AI4DB数据库自治运维-DBMind的AI子功能-SQLdiag慢SQL发现299.1 概述299.2 使用指导299.2.1 前提条件299.2.2 SQL流水采集方法299.2.3 操作步骤299.2.4 使用方法示例299.3 获取帮助299.4 命令参考299.5 常见问题处理openGauss学…...
Git 分支管理规范化[Git Flow ]分支管理策略
分支命名规范 master 分支:master 分支只有一个,名称即为 master。GitHub 现在叫 main develop 分支:develop 分支只有一个,名称即为 developfeature 分支:feature/<功能名>,例如:featu…...
一键Mock工具(Http协议接口调试工具)
点击下载《一键Mock工具(Http协议接口调试工具》 1. 前言 在进行Web开发时,前端小伙伴通常是和后端开发人员同步进行项目开发,经常会遇到后端开发人员接口还没开发完,也没有可以调试的环境,只能按照接口文档进行“脑…...
Golang的context
目录 context的基本使用 为什么需要context Context interface 标准 error emptyCtx cancelCtx Deadline 方法 Done 方法 Err 方法 Value 方法 context.WithCancel() newCancelCtx WithCancel中propagateCancel cancel timerCtx valueCtx context的基本使用…...
Android 各个版本名称和特性总结(持续更新)
我们就从Android 5.0开始吧,因为从写文时起,大部分手机都到5.0了。 目录 Android5.0 (Lollipop 棒棒糖)新特性 Android6.0新特性 Android7.0新特性 Android8.0(O)新特性 Android9.0新特性 Android10.0(Q)新特性 Android11…...
OpenClaw跨平台对比:nanobot在Mac/Win/Linux的表现差异
OpenClaw跨平台对比:nanobot在Mac/Win/Linux的表现差异 1. 测试背景与实验设计 去年夏天我开始尝试用OpenClaw搭建个人自动化工作流时,发现不同操作系统下的表现差异远超预期。这次我选择了基于Qwen3-4B模型的nanobot镜像,在MacBook Pro M1…...
35 岁前端被优化?我用 AI 转型全栈的完整路径
上周,我 35 岁的前端朋友老张被 HR 叫进会议室,聊了 20 分钟,拿了 N1 走人。 他的技术栈没问题,Vue3TS 都会,项目经验也够。问题在于:他做的所有工作,一个应届生 AI 工具都能搞定。这不是危言耸…...
大型系统构建与性能优化:缓存、负载均衡、分库分表与会话方案
大型系统的核心不是“堆技术名词”,而是: 识别瓶颈用架构手段把瓶颈拆开、绕开、扩展掉 这篇按“性能瓶颈 -> 分层架构 -> 数据与缓存 -> 会话管理”的主线整理。 面试与工程都通用的一句话方法论: 先观测(指标/日志/链路…...
告别Activity重建:用onConfigurationChanged优雅处理Android 13+的深色主题与多语言切换
告别Activity重建:用onConfigurationChanged优雅处理Android 13的深色主题与多语言切换 在Android 13及更高版本中,深色主题动态切换和多语言即时切换已成为提升用户体验的关键功能。传统方案通过重建Activity实现配置变更,但会导致界面闪烁、…...
Fish-Speech-1.5在Ubuntu20.04上的Docker化部署教程
Fish-Speech-1.5在Ubuntu20.04上的Docker化部署教程 1. 引言 想快速搭建一个高质量的语音合成系统吗?Fish-Speech-1.5可能是你正在寻找的解决方案。这个模型支持13种语言,只需要10-30秒的声音样本就能生成自然流畅的语音,而且延迟不到150毫…...
别再硬编码了!用Flowable 6.8.0实现多部门并行审批,动态分配处理人就这么简单
Flowable 6.8.0实战:动态多部门审批的架构设计与实现 上周在重构公司采购审批系统时,遇到一个典型场景:技术部需要评估设备参数,财务部审核预算,法务部检查合同条款——这三个部门的审批必须并行执行,且每个…...
HarmonyOS文件流操作指南:用ArkTS实现高效大文件传输与哈希校验
HarmonyOS文件流操作实战:ArkTS实现大文件传输与完整性校验 在移动应用开发中,文件操作是基础但至关重要的功能。当应用需要处理大型媒体文件、数据库备份或批量数据交换时,传统的文件IO方式往往力不从心。HarmonyOS提供的流式文件操作接口&a…...
Qt加载OBJ或STL模型文件,支持鼠标移动、缩放、旋转Demo
Qt加载模型文件obj或者stl实例,支持鼠标移动缩放旋转demo最近在捣鼓Qt的3D可视化功能,发现用Qt搞个模型查看器比想象中简单。咱们先整点实际的——做个能加载obj/stl模型,支持鼠标拖拽旋转、平移、缩放的demo。废话不多说,直接撸代…...
LSTM时间序列预测模型与RWKV7-1.5B-G1A的融合应用:金融文本数据挖掘
LSTM时间序列预测模型与RWKV7-1.5B-G1A的融合应用:金融文本数据挖掘 1. 金融数据分析的现状与挑战 金融市场的预测一直是数据分析领域最具挑战性的任务之一。传统方法主要依赖历史价格数据,使用统计模型或机器学习算法进行趋势预测。然而,这…...
终极指南:Claude Squad项目结构解析与核心模块功能详解
终极指南:Claude Squad项目结构解析与核心模块功能详解 【免费下载链接】claude-squad Manage local AI agents like Claude Code and Aider. 10x your productivity 项目地址: https://gitcode.com/gh_mirrors/cl/claude-squad Claude Squad是一款能够帮助开…...
