用来传输文件的协议-FTP

一.FTP协议--文件传输协议

1.了解FTP协议

(1)FTP服务是用来传输文件的协议

FTP(File Transfer Protocol,文件传输协议)是TCP/IP协议组中的协议之一,用于互联网上的控制文件的双向传输。是传输文件到Linux服务器的工具。

常用的传输文件到Linux服务器的工具有以下几种:

vsftp(FTP)、sftp(SSH)、samba(CIFS)、winscp、lrzsz(sz传出、rz传入)

(2)FTP服务器默认使用TCP协议的20、21端口与客户端进行通信

20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令

(3)FTP数据连接分为主动模式和被动模式

主动模式:FTP服务端接收下载控制命令后,会主动从tcp/20号端口发送数据传输给客户端

主动模式:客户端给服务端的21控制端口发命令说,我要下载什么什么,并且还会说我已经打开了自己的某个端口,你就从这里把东西给我吧,服务器知道后就会连接客户端已打开的那个数据端口把东西传给客户端,这就是主动模式,可理解为服务端主动给客户端传输文件。

 被动模式:FTP服务端接收下载控制命令后,会开启一个空闲端口被动等待客户端数据传输连接

被动模式:客户端给服务器端的21端口发命令说,我要下载什么什么,服务端知道后,就打开一个空闲的端口,然后告诉客户端,我已经打开了某某端口,你自己进去拿吧。于是客户端就从那个端口进去拿文件了,这就是被动模式,可理解为服务端被客户端拿走了东西。

 2.FTP工具的安装

(1)vsftp 的安装

[root@192 ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@192 ~]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                 1913552       0  1913552    0% /dev
tmpfs                    1930628       0  1930628    0% /dev/shm
tmpfs                    1930628   12820  1917808    1% /run
tmpfs                    1930628       0  1930628    0% /sys/fs/cgroup
/dev/mapper/centos-root 37202180 4526604 32675576   13% /
/dev/sda1                 520868  184528   336340   36% /boot
tmpfs                     386128      64   386064    1% /run/user/0
/dev/sr0                 4635056 4635056        0  100% /mnt
[root@192 ~]# cd /mnt/Packages/
[root@192 Packages]# ls | grep vsftp
vsftpd-3.0.2-29.el7_9.x86_64.rpm
[root@192 Packages]# rpm -ivh vsftpd-3.0.2-29.el7_9.x86_64.rpm
警告:vsftpd-3.0.2-29.el7_9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.2-29.el7_9            ################################# [100%]

(2)vsftp 文件存放的位置

[root@192 Packages]# rpm -qpc vsftpd-3.0.2-29.el7_9.x86_64.rpm
警告:vsftpd-3.0.2-29.el7_9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@192 Packages]# cd /etc/vsftpd/
[root@192 vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

(3)vsftp 服务的配置文件

                   #vsftpd.conf文件中基本配置的含义 
anonymous_enable=YES    #默认允许匿名用户登录local_enable=YES        #允许本地用户登录write_enable=YES        #是否开放ftp写的权限local_umask=022         #本地用户上传的文件的默认权限值anon_upload_enable=YES  #允许匿名用户上传文件anon_mkdir_write_enable=YES   #允许用户上传和创建目录anon_other_write_enable=YES   #允许用户其他的写入操作:删除、重命名和覆盖

(4)修改配置文件的操作

之后重启 vsftp 服务即可

[root@192 vsftpd]# systemctl start vsftpd
[root@192 vsftpd]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@192 vsftpd]# netstat -lntp | grep vsftpd         #查看软件使用的端口号tcp6       0      0 :::21                   :::*                    LISTEN      12473/vsftpd 

(5)验证 vsftpd 的使用-win10为例

【1】要先将win10的网络设置为服务端一样的NAT模式

【2】尝试是否连接和连接操作

C:\Users\liu>ping 192.168.10.10             #查看是否能接收到主机的IP正在 Ping 192.168.10.10 具有 32 字节的数据:
来自 192.168.10.10 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.10.10 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.10.10 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.10.10 的回复: 字节=32 时间=1ms TTL=64192.168.10.10 的 Ping 统计信息:数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):最短 = 0ms,最长 = 1ms,平均 = 0msC:\Users\liu>ftp 192.168.10.10          #连接到主机
连接到 192.168.10.10。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.10.10:(none)): ftp         #设置用户类型
331 Please specify the password.  
密码:                                   #创建密码
230 Login successful.
ftp> pwd                                #查看当前位置
257 "/"                    #‘/’目录即为在vsftpd.conf文件内设置的目录/var/ftp/
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
pub
test1
226 Directory send OK.
ftp: 收到 15 字节,用时 0.00秒 15000.00千字节/秒。

(6)FTP的一些常用命令

                #ftp 的一些常用指令
ftp> pwd                #查看当前的位置
ftp> ls                #查看当前目录的信息
ftp> cd pub            #切换到pub 目录
ftp> get 文件名        #下载文件到本地目录
ftp> put 文件名        #上传文件到主机ftp目录
ftp> quit             #退出

【1】get 命令 下载主机文件到目录

ftp> get lxp.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for lxp.txt (15 bytes).
226 Transfer complete.
ftp: 收到 15 字节,用时 0.00秒 15000.00千字节/秒。
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
lxp.txt
pub
test1
226 Directory send OK.
ftp: 收到 24 字节,用时 0.02秒 1.50千字节/秒。
ftp>

【3】cd 命令  切换目录

(7)关闭匿名用户登录

C:\Users\liu\Desktop>ftp 192.168.10.10   
连接到 192.168.10.10。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.10.10:(none)): ftp      #匿名用户登录失败
331 Please specify the password.
密码:
530 Login incorrect.
登录失败。
ftp> quit
221 Goodbye.C:\Users\liu\Desktop>ftp 192.168.10.10
连接到 192.168.10.10。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.10.10:(none)): zhangsan    #非匿名用户登录成功
331 Please specify the password.
密码:
230 Login successful.
ftp>

3.图形化界面登录FTP

4.设置黑名单和白名单

userlist_enable=YES     #启用用户列表

 进入到文件 vsftpd.conf 中,到最底部加入下图的配置,黑名单和白名单的用户列表在 user_list 文件中,

若是想要 user_list 文件成为黑名单,进入到文件 vsftpd.conf 中添加userlist_enable=YES

若是想要 user_list 文件成为白名单,进入到文件 vsftpd.conf 中添加userlist_enable=NO

拓展:其他配置文件含义

listen_port=2121      #设置监控端口
max_clients=100       #最大连接数
max_per_ip=5          #每个IP的最大连接数

五 .总结:

1.FTP协议采用的是TCP作为传输协议,21号端口用来传输FTP控制命令的,20号端口用来传输文件数据的

2.了解FTP的传输模式:主动模式和被动模式

3.知道黑白名单的设置,黑名单,是名单上的用户被拒绝访问。白名单是只有名单上的用户才可以进行访问

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

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

相关文章

《Fundamentals of Power Electronics》——全桥型隔离降压转换器

以下是关于全桥型隔离降压转换器的相关知识点&#xff1a; 全桥变压器隔离型降压转换器如下图所示。 上图展示了一个具有二次侧绕组中心抽头的版本&#xff0c;该电路常用于产生低输出电压。二次侧绕组的上下两个绕组可以看作是两个单独的绕组&#xff0c;因此可以看成是具有变…

Internal server error: [less] Unrecognised input

我之前查了资料&#xff0c;网上有的人说是 less 的配置不正确&#xff08;这种问题引起的可以查找其他博客看&#xff09;&#xff0c;但是后面经过我慢慢的查找&#xff0c;还有一种可能&#xff0c;就是 less 的写法不对&#xff0c;下面我来解释一下我的错误和处理过程 在…

kaggle无法注册怎么办

在浏览kaggle网站&#xff0c;或者是参加kaggle竞赛时&#xff0c;常常会遇到需要登陆kaggle账号的情况。而在注册时&#xff0c;却发现无论如何也无法弹出人机识别的验证码&#xff0c;导致无法注册成功。本文会手把手的讲解一种注册kaggle的方法&#xff08;edge浏览器&#…

安装依赖报错前端安装某个依赖安装不上可能是node版本过高 升级或者降低node版本方式

安装依赖报错安装某个依赖安装不上可能是node版本过高 升级或者降低node版本方式 安装某个依赖安装不上 或者node版本过高 升级或者降低node版本 收藏关注一下吧 开发中难免总会需要切换node版本 需要的时候在找麻烦 主页 中还有更多干货分享

分享开放原子AtomGit开源协作平台评测报告

AtomGit平台的总体介绍 开放原子开源基金会是致力于推动全球开源事业发展的非营利机构&#xff0c;于 2020 年 6 月在北京成立&#xff0c;由阿里巴巴、百度、华为、浪潮、360、腾讯、招商银行等多家龙头科技企业联合发起。目前有三个主要机构设置&#xff0c;技术监督委员会&…

You need know something from Xcode 9

xcode 9 一些快捷的功能使用介绍 首先是弹框 目前发现弹框中的提取方法等功能存在一些问题&#xff0c;期待后续的版本能解决这些问题&#xff0c;弹框里面主要包含跳转变量或者方法的跳转、快捷帮助、折叠方法、重命名方法名称、提取方法等功能 笔者觉得rename功能比较好用&…

【新手入门】Git的使用方法,上传自己的项目到GitHub上

Git新手教程 一、Git下载安装二、初始化设置1.网端设置2.用户设置 三、开始上传自己项目1.创建新文件夹&#xff0c;克隆项目地址2.上传文件3.成功运行并上传的界面 报错1.fatal: unable to access https://github.com/ssrzero123/STF-YOLO.git/: error setting certificate fi…

NDK 编译(二)—— NDK 编译与集成 FFmpeg

NDK 编译系列文章共三篇&#xff0c;目录如下&#xff1a; NDK 编译&#xff08;一&#xff09;—— Linux 知识汇总 NDK 编译&#xff08;二&#xff09;—— NDK 编译与集成 FFmpeg NDK 编译&#xff08;三&#xff09;—— CMake 原生构建工具 在使用 NDK 进行音视频开发时&…

icloud里面的通讯录怎么全部导出,通讯录格式如何转换,简单!

随着科技的发展&#xff0c;我们的日常生活越来越离不开手机和各种应用程序。通讯录作为手机中最重要的功能之一&#xff0c;记录着我们的亲朋好友、同事和业务伙伴的联系方式。因此&#xff0c;定期备份通讯录变得尤为重要。iCloud作为苹果公司提供的一项云服务&#xff0c;可…

【触摸案例-控件不能响应的情况 Objective-C语言】

一、接下来,我们来说这个“控件不能响应的情况”, 1.素材里边,有一个“不接受用户交互的情况”,这么一个代码,把它打开, 把这个项目啊,复制过来,改一个名字,叫做“04-控件不能响应的情况”, 打开之后,command + R,运行一下, 在storyboard上,你也可以看得出来,我…

java-stream流案例

需求 代码 Vote类 // 1. 定义一个投票类 public class Vote {private String name;private ArrayList<String> voteList;public Vote(String name, ArrayList<String> voteList) {this.name name;this.voteList voteList;}public String getName() {return nam…

16册 | 移动机器人(自动驾驶)系列

此文档整理推荐了16本移动机器人&#xff08;自动驾驶&#xff09;相关的书籍&#xff0c;内容包括&#xff1a;ROS、机器人基础开发、分布式机器人控制、集群机器人控制、嵌入式机器人、多传感器融合等等。 学习&#xff0c;切勿急于求成&#xff0c;读书自学&#xff0c;需多…

就业班 第三阶段(tomcat) 2401--4.28 day1 tomcat1安装配置及单机多实例

企业 Tomcat 运维 文章目录 企业 Tomcat 运维一、Tomcat 简介1、Tomcat好帮手---JDK2、安装Tomcat & JDK1、系统环境说明2 、安装JDK3、安装Tomcat 二、Tomcat目录介绍1、tomcat主目录介绍2、webapps目录介绍3、Tomcat配置介绍&#xff08;conf&#xff09;4、Tomcat的管理…

Qt窗口

QMainWindow Qt 窗⼝ 是通过 QMainWindow类 来实现的。 QMainWindow 是⼀个为⽤⼾提供主窗⼝程序的类&#xff0c;继承⾃ QWidget 类&#xff0c;并且提供了⼀个预定义的 布局。QMainWindow 包含 ⼀个菜单栏&#xff08;menu bar&#xff09;、多个⼯具栏(tool bars)、多个浮动…

JavaScript底层原理(栈、堆、主线程、任务队列、事件循环机制)

1. 栈(heap)和堆(stack) 栈是栈内存的简称&#xff0c;堆是堆内存的简称。顾名思义&#xff0c;内存是干啥的&#xff1f;内存就是用来存放数据的。 栈 栈只有一个入口&#xff0c;同时也是出口&#xff0c;数据遵循先进后出、后进先出的原则。 栈用于存放基本类型数据和引用…

安装库后JupyterLab一直报ModuleNotFoundError问题解决

背景&#xff1a; 先安装的Python3.10&#xff0c;安装在默认路径&#xff1a; C:\Users\#用户名省略#\AppData\Local\Programs\Python\Python310\ 后安装的Anaconda&#xff0c;更改过路径在D盘&#xff1a; D:\ProgramData\anaconda3 此时C盘Python安装路径下Scripts文件…

YAW-100B全自动压力试验机

一、简介 微机控制压力试验机测控系统采用高精度数字伺服阀&#xff0c;具有力闭环控制功能&#xff0c;能够实现等载荷速率加载或等应力速率加载&#xff0c;控制精度高&#xff0c;可靠性好&#xff0c;完全满足GB/T 17617《水泥胶沙强度检验方法&#xff08;ISO方法&#x…

matlab学习004-使用matlab绘制卷积波形图

目录 1&#xff0c;序列&#xff1a;x(n)u(n-2)-u(n-10)&#xff0c;h(n)((0.9)^n)*u(n) 1&#xff09;前期基础 ①conv函数 ②离散单位阶跃信号 2&#xff09;波形图 3&#xff09;代码 ①使用input方法 ②代码改进【推荐使用】 2&#xff0c;信号x(t)2[u(t1)-u(t…

红黑树笔记

2-3树 -> 左倾红黑树 红黑树实际上是2-3树的一种基于BST的实现。普通二叉搜索树&#xff08;BST&#xff09;中的每一个节点&#xff0c;只有一个键&#xff0c;两条链接&#xff08;两个子节点&#xff09;&#xff0c;这种节点被称为2节点。2-3树中&#xff0c;引入了一个…

【智能算法】土拨鼠优化算法(PDO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年&#xff0c;AE Ezugwu等人受到土拨鼠觅食行为与自然行为启发&#xff0c;提出了土拨鼠优化算法&#xff08;Prairie Dog Optimization algorithm, PDO&#xff09;。 2.算法原理 2.1算法思…