首页 > 系统相关 >linux中FTP文件传输服务

linux中FTP文件传输服务

时间:2024-06-13 19:59:24浏览次数:12  
标签:FTP 被动模式 ## 端口 文件传输 linux 服务器 YES 客户端

ftp是一种文件传输协议:用来上传和下载,实现远程共享文件,和统一管理文件。工作原理 : 用于互联网上的控制文件的双向传输 是一个应用程序。工作在TCP/IP协议簇的,其传输协议是TCP协议提高文件传输的共享性和可靠性,使用C/S模式的工作方式连接时同时处理服务器和客户端的连接命令和数据传输,FTp将命令和数据分开传输,提高传输效率。

端口:21号


FTP连接方式:管理连接,数据连接。

管理连接:客户端使用随机端口(>1024,高位端口)N--->服务器的21端口

利用管理连接的通道发送指令。

如果是主动模式:客户端利用该通道发送一个端口N+1给服务器

如果是被动模式:服务器要发送一个端口号(随机)给客户端

数据连接:(上传或下载文件)

站在服务器的角度。

主动模式:服务器(20端口)主动向客户端(随机端口)(N+1)发起连接。(服务器连客户端)

客户端的防火墙会拦截服务器发起的连接。

被动模式:服务器(随机端口)等待客户端(随机端口)向自己发起连接。(客户端连服务器)

服务器需要处理防火墙(要么关闭,要么添加策略)

ftp服务:服务器端(vsftpd)客户端(ftp)

两种传输模式:

文本模式:ASCII模式美国信息交换信息标准码 这种模式传输文件使用ASCII标准字符序列,一般只用于传输文件文件的传输

二进制模式:又称为Binary这种模式不会转换文件中的字符序列,跟适合传输程序图片等非文本文件

Vsftpd可支持最大15000并发连接数

FTP有两种模式:

主动模式:客户端使用随即端口与服务器的21好端口建立控制连接,服务器端主动的使用20好端口向客户端的随机端口建立据连接,经过三次握手完成。

被动模式:客户端使用随即端口向服务器的21号端口建立管理连接,服务器使用建立好的管理通道向客户端发送一个随机的端口号,然后客户端随机的向服务器端发过来的端口经过三次握手后建立好这个数据连接

使用两个端口:分别时控制端口和数据端口,控制端口使用21,数据端口主动模式先是20.被动模式下是一个随机的端口号

开启主动模式

connect_from_port_20=no   允许服务器主动模式(从20号端口连接)

pasv_enable=NO    ###关闭被动模式

Linux客户机上关闭防火墙执行 passive命令

被动模式需要在主配置文件中打开  默认就是被动模式:

pasv_enable=YES  ##开启被动模式,使用被动模式连接,pasv请求

Pasv_min_port=* ##设置被动模式下服务器随即端口的范围的最小值

Pasv_max_port=*  ##设置被动模式下服务器随机端口的范围的最大值

三种用户登陆方式

普通本地用户模式

Local_enable=YES   ###允许本地用户访问

Write_enable=YES  ##本地用户的科协权限

Local_umask=022    ##本地用户上传文件的权限减去这个umask值

Userlist_deny=YES  ##是否禁用user_list列表中的用户账号  若启用必须等于===NO

Userlist_enable=YES  ##是否启用user_list列表中的用户账号

黑名单和白名单:ftpusers黑名单文件,存在该文件中的用户无法登陆

User_list 白名单文件,如果设置

userlist_deny=NO  Userlist_enable=YES则只允许该列表中的用户登录

若一个用户同时存在两个文件中,黑名单生效,该用户不能登陆

虚拟用户模式

使用虚拟用户可以将用户的登录名和密码不相同,提高服务器的安全性

第一步:创建文本格式的用户名和密码  奇数行为用户名,偶数行为密码

第二步:建立虚拟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       ##允许匿名用户有其他的写入权限 (删除或者修改)

标签:FTP,被动模式,##,端口,文件传输,linux,服务器,YES,客户端
From: https://blog.csdn.net/2401_85084312/article/details/139629929

相关文章

  • Linux指令(3)
    目录1.上节复习2.man指令3.echo指令4.cp指令5.mv指令6.重新认识7.和文件相关的指令的辨析8.三大重定向 9.cat指令10.more命令和less命令1.上节复习(1)我们上次学习了这个和文件的删除以及文件夹的删除的相关的指令,rm-rf这个样的话后面加上文件的名字和文件夹的......
  • Linux 【基础篇-vim编辑器 网络配置 远程登录】
    02【基础篇-vim编辑器网络配置远程登录】1.vi和vim编辑器1.1vi和vim的基本介绍所有Linux系统都会内置vi文本编辑器vim是vi的升级版,可以主动以字体颜色分辨语法的正确性,代码补完和编译,错误跳转等功能。1.2vi和vim的三种模式基本上vi/vim共分为三种模式,分别是命......
  • linux用户及用户组管理,目录或文件权限管理
    在Linux系统中,用户及用户组管理,以及目录或文件权限管理是系统管理员的基本任务。以下是一些基本和常用的操作指南。一、用户和用户组管理添加用户1.添加用户sudoadduserusername这条命令会创建一个新的用户,并为该用户创建一个主目录,并提示你设置密码及其他信息。2.为......
  • linux部署nginx
    1.情景展示在linux下,使用nginx代理前端代码,如何实现?2.nginx下载下载地址:https://nginx.org/en/download.html下载成功后,将其解压到linux服务器上。(可以通过Xftp实现)3.安装nginx通常安装在usr/local目录下。打开Xshell,切换到nginx-1.26.0.tar.gz所在目录。cd/usr/loca......
  • Linux系统的mysql如何导出表数据
    在Linux系统上,我们可以使用mysqldump命令来导出MySQL数据库中的表数据。mysqldump是一个用于备份数据库的命令行工具,它可以将整个数据库或特定的表导出为SQL脚本文件,以便在其他环境中恢复或迁移数据。本文将介绍如何使用mysqldump命令导出表数据,并提供相关的代码示例和流程图。1......
  • linux 下MySQL命令行导出csv文件格式
    从数据库服务器导出1、登录mysqlmysql-uroot-p2、切换数据库usedatabase3、导出文件命令SELECTid,column1,column2FROMtableINTOOUTFILE'/tmp/mysqlfiles/table.csv'FIELDSTERMINATEDBY','ENCLOSEDBY'"'LINESTERMINATEDBY'n' sel......
  • 每天学一个 Linux 命令(8):ls
    Github地址:https://github.com/mingongge/Learn-a-Linux-command-every-day命令简介ls(list),ls命令显示指定目录下的内容,列出指定目录下所含的文件及子目录。此命令与Windows系统中dir命令功能相似。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。语法格......
  • Linux时间子系统1:gettimeofday和clock_gettime实现分析
    1.Linux用户态获取时间的函数a.秒级别的时间函数:time和stimetime和stime函数的定义如下:#include<time.h>time_ttime(time_t*t);intstime(time_t*t);        time函数返回了当前时间点到linuxepoch的秒数(内核中timekeeper模块保存了这个值,timekeeper->x......
  • linux下pyenv的安装和使用
    pyenv可以根据需求使用户在系统里安装和管理多个Python版本:配置当前用户的python的版本配置当前shell的python版本配置某个项目(目录及子目录)的python版本配置多个虚拟环境 一、安装pyenv1、安装pyenvcurl-Lhttps://github.com/pyenv/pyenv-installer/raw/master......
  • Linux上12个最佳开源ChatGPT替代方案
    ​ChatGPT是OpenAI开发的流行聊天机器人和虚拟助手,自2022年11月30日起上市。此图表模型可让您对对话进行微调并引导其达到理想的持续时间、结构、语气、细节程度和语言。幸运的是,随着人工智能的不断进步,开源ChartGPT替代品已经成为强大的工具,可以提供相同的对话技巧以及定......