Linux网络-文件传输协议之FTP服务(附带命令及截图)

目录

一.FTP简介

二.FTP的数据模式

1.主动模式

2.被动模式

3.两种模式比较

三.安装配置vsftpd

1.安装vsftpd

1.1.安装前关闭防火墙

1.2.安装vsftpd

1.3.查看

1.4.备份

2.配置

3.重启后生效

四.相关实验

1.以win为例

1.1.设置并测试测试连通性

1.2.在终端里创建目录

​1.3.在虚拟机win里查看

1.4.在终端里创建文件

1.5.更改路径并下载

2.设置匿名用户(win为例)

2.1.关闭匿名用户

2.2.创建匿名用户

2.3.匿名用户无法登录

2.4.非匿名用户可以登录

3.设置白名单黑名单

3.1.进入设置

3.2.设置白名单

3.3.添加用户

3.4.登录成功

3.5.设置黑名单

3.6.登录失败


一.FTP简介

FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet

上的控制文件的双向传输。同时,它也是一个应用程序(Application)基于不同的操作系统有不同

的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件

  • FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
  • 20端口用于建立数据连接,并传输文件数据
  • 21端口用于建立控制连接,并传输FTP控制命令

二.FTP的数据模式

1.主动模式

  • 服务器主动发起数据连接

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送

FTP用户名和密码,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令,告诉服务端

客户端采用主动模式并开放了端口。FTP服务器接收到PORT命令后,会用其本地的FTP数据端口

(通常是20)来连接客户端指定的端口N+1,进行数据传输

2.被动模式

  • 服务器被动等待数据连接

在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送用

户名和密码进行登陆,同时会开启N+1端口。然后向服务器发送PASV命令,通知服务器自己处于

被动模式。服务器收到命令后,会开放一个大于1024的端口P(端口P的范围是可以设置的,后面

会说到这个是很重要的)进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户

端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输

3.两种模式比较

  • 主动模式传送数据时是“服务器”连接到“客户端”的端口(客户端开启数据端口)
  • 被动模式传送数据是“客户端”连接到“服务器”的端口(服务端开启数据端口)
  • 主动模式需要客户端必须开放端口给FTP服务端,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难
  • 被动模式需要服务器端开放端口给客户端连接就行了

三.安装配置vsftpd

1.安装vsftpd

1.1.安装前关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

vim /etc/selinux/config

1.2.安装vsftpd

rpm -qc vsftpd

yum install -y vsftpd

1.3.查看

cd /etc/vsftpd

ls

1.4.备份

cp vsftpd.conf{,.bak}

2.配置

vim /etc/vsftpd/vsftpd.conf

3.重启后生效

systemctl restart vsftpd

systemctl enable vsftpd

netstat -lntp

四.相关实验

1.以win为例

1.1.设置并测试测试连通性

1.2.在终端里创建目录

cd /var/ftp

ls

pwd

mkdir xx01

ls


1.3.在虚拟机win里查看

1.4.在终端里创建文件

echo 'zx like xuexi' > zx.txt

ls

1.5.更改路径并下载

2.设置匿名用户(win为例)

2.1.关闭匿名用户

2.2.创建匿名用户

useradd xx

echo 123456 | passwd --stdin xx

useradd xy

echo 123456 | passwd --stdin xy

systemctl restart vsftpd

2.3.匿名用户无法登录

2.4.非匿名用户可以登录

3.设置白名单黑名单

3.1.进入设置

vim /etc/vsftpd/vsftpd.conf

3.2.设置白名单

3.3.添加用户

vim user_list

3.4.登录成功

3.5.设置黑名单

3.6.登录失败

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

js逆向进阶篇-某团酒店

提示!本文章仅供学习交流,严禁用于任何商业和非法用途,未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,如有侵权,可联系本文作者删除! 案例分析: 先来看看请求中有哪些参数是需要我们逆向,如下: mtgsig、fp、roh…

Java包装类,128陷阱

包装类 基本数据类型都有自己对应的包装类,因为Java本质是面向对象编程的,一切的内容在Java看来都是对象 但是基本数据类型没有类,也没有对象,这样就有了矛盾 所以诞生了基本类型的包装类 基本数据类型: byte,short,…

知乎热议:未来几年,AI技术在科研领域将有哪些新的发展趋势或突破?

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 一年多以来,各种国内外的AI模型和应用应接不暇,从刚开始ChatGPT一家独大,到现在的百花齐放,各种AI模型各有千秋,一时…

星尘智能 AI 机器人 S1——国产机器人的巅峰之作

AI智能机器人真的太炸裂了 国产科技威武-CSDN直播AI智能机器人真的太炸裂了 国产科技威武https://live.csdn.net/v/382519 最近发现了一个国产的机器人,真的让人惊叹不已!它就是星尘智能 AI 机器人 S1! 这个机器人简直太牛逼了!…

Stable Diffusion 参数介绍及用法

大模型 CheckPoint 介绍 作用:定调了作图风格,可以理解为指挥者 安装路径:models/Stable-diffusion 推荐: AnythingV5Ink_v32Ink.safetensors cuteyukimixAdorable_midchapter2.safetensors manmaruMix_v10.safetensors counterf…

2024年的Java版本选择?java 17 安装

文章目录 2024年的Java版本选择?java 1.8 和 java17 什么区别?java 17 安装windows 11安装java 17C:\Program Files\Common Files\Oracle\Java\javapath是什么 2024年的Java版本选择? 3年前,java 1.8是市场主流(还有一…

STM32用HAL库函数实现硬件IIC

/*出处:【STM32入门教程-2024】第12集 IIC通信与温湿度传感器AHT20(DHT20)_哔哩哔哩_bilibili */ AHT20驱动 这篇笔记我主要介绍代码实现,想要了解原理的请自己看视频,我不过多赘述了。 AHT20通信数据帧格式: ①对照手册上的通…

面对网络安全,做好风险评估对企业会带来哪些帮助

随着信息技术的飞速发展,网络安全问题日益凸显,成为企业不容忽视的重要议题。企业作为社会经济活动的主要参与者,其网络安全不仅关系到自身的生存与发展,更与国家的经济安全、社会稳定息息相关。因此,企业必须高度重视…

K8s: Prometheus 服务结构以及基础抓取数据服务部署

Prometheus 发布应用之后,就有持续运维的事情,就是平台监控Prometheus 是一个云原生的日志监控平台,是一个实时标准的一个技术它是著名的 cncf 里的一个重要的开源项目 上面整个图片是在云原生应用及K8s应用架构下的一个日志监控的一个标准的…

ezplot--Matlab学习

目录 一、代码 二、效果 ​编辑 三、ezplot讲解 四、如何自定义一个函数 一、代码 clc; clear; t0:32; x4(t) cos(2*pi*t/4).*sin(2*pi*t/4); x8(t) cos(2*pi*t/8).*sin(2*pi*t/8); x16(t) cos(2*pi*t/16).*sin(2*pi*t/16); subplot(3,1,1) ezplot(x4,[0,32]); subplot…

《软件设计师教程:数据库系统基础知识大总结》

​ 个人主页:李仙桎 🔥 个人专栏: 《软件设计师》 ⛺️生活的理想,就是为了理想的生活! ​ ⛺️前言:各位铁汁们好啊!!!今天继续正式学习中级软件设计师考试相关的内容,后续不断更新…

python学习笔记B-11:序列结构之列表--二维列表的遍历和生成式

二维列表的遍历方式,使用双层for循环,遍历索引号。 二维列表的生成式,也是使用类似双层循环的形式生成。 print("##初始化二维列表,每个元素就是1个列表") lst [["东方延续","太空军自然选择号舰长&qu…

【AI心理咨询应用】继Woebot之后,国内诞生的“LLM+CBT”应用:白小喵

导言 AI认知行为疗法(Cognitive Behavioral Therapy,CBT)早在2017年便有了首例,即美国知名CBT治疗机器人Woebot。 然而,Woebot在CBT的完整落地上仍有缺陷问题,LLM的出现促进了对该问题的解决,…

typeScript 安装

1、安装typescript 安装npm i -g typescript 查看是否安装成功 tsc -v 2、使用ts // 浏览器不支持ts 需要编译成 es5 let str: string ts 在终端输入 tsc index.ts 会将其生成一个对应的index.js文件 在电脑上首次使用TS的时候,执行TS 的命令的时候报错 打开PowerS…

RustGUI学习(iced)之小部件(三):如何使用下拉列表pick_list?

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述…

2024年,新手做抖音小店想要赚钱,必须明白三件事!

大家好,我是电商糖果 有不少小店的商家都说过,现在的抖音小店比三四年前复杂了。 三四年前抖音小店刚刚出现,平台规则还没有那么多,很多机制也不太成熟。 那个时期的抖店说是捡钱的,一点儿都不假。 但是如果说你现…

Linux详解:进程等待

文章目录 进程等待等待的必要性进程等待的方法waitwaitpid获取子进程status阻塞等待 与 非阻塞等待 进程等待 等待的必要性 子进程退出,父进程不进行回收的话,就可能造成僵尸进程,进而造成内存泄露 如果进程进入了僵尸状态,kill…

机器学习:驱动现代交通运输革命的AI智慧引擎

🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

玄子Share-引导过程与服务控制

玄子Share-引导过程与服务控制 Linux操作系统引导过程 系统初始化进程 init 进程 由 Linux 内核加载运行 /sbin/init 程序init 进程是系统中第一个进程init 进程的 PID(进程标记)号永远为 1 Systemd Systemd是Linux操作系统的一种init软件CentOS7中采用…

【Linux开发 第十二篇】搭建JavaEE环境

搭建开发环境 搭建javaEE环境 搭建javaEE环境 在Linux下开发JavaEE需要安装软件包: 安装jdk 安装步骤: 在opt目录下创建jdk目录通过xftp上床到jdk目录中进入到jdk目录中,解压jdk压缩包在/usr/local下创建java目录将解压完成的jdk文件移动…