当前位置: 首页 > news >正文

FTP原理

一、FTP工作原理

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

  管理连接:客服端使用随机端口(>1024,高段位端口),服务器21号端口。
  数据连接:包括主动模式和被动模式

主动模式:客户端使用随机端口与服务器的21号端口建立控制连接,服务器端主动的使用20号端口向客户端的随机端口建立据连接,(服务器连接客户端,客户端防火墙拦截服务器发起的连接)经过三次握手完成)

  被动模式:客户端使用随机端口向服务器的21号端口建立管理连接,服务器使用建立好的管理通道向客户端发送一个随机的端口号,然后客户端随机的向服务器端发过来的端口经过三次握手后建立好这个数据连接。服务器(随机端口)等待客户端(随机端口)向自己发起连接(客户端连接服务器)服务器处理防火墙关闭或添加策略。

二、实验步骤

101服务器
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# systemctl start vsftpd
102客户端
[root@localhost ~]# yum -y install ftp
[root@localhost ~]# ftp 192.168.10.101   (102连接101服务器)


(1)匿名用户FTP访问


101服务器
[root@localhost ftp]# sed -i '/^#/d' /etc/vsftpd/vsftpd.conf 
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=YES
anon_umask=022          (反掩码)
anon_upload_enable=yes    (匿名用户对文件的上传权限)
anon_mkdir_write_enable=yes    (控制匿名用户文件创建的权限)
anon_other_write_enable=yes      (控制匿名用户文件删除和重命名的权限)
[root@localhost ftp]# systemctl restart vsftpd
[root@localhost ftp]# netstat -anpt | grep ftp  (检查该程序是否运行)
[root@localhost ~]# chown ftp /var/ftp/pub    (安全前提下不可以将权限直接给ftp,应传达下一级)
[root@localhost ~]# chmod 755 /var/ftp/pub   (更改读写权限)

(2)授权用户

服务器
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf 
#anon_upload_enable=yes
#anon_mkdir_write_enable=yes
#anon_other_write_enable=yes
chroot_local_user=yes          (禁锢在home目录下)
allow_writeable_chroot=yes      (允许可写的权限)

客户端检测
[root@localhost ~]# ftp 192.168.10.101
Connected to 192.168.10.101 (192.168.10.101).
220 (vsFTPd 3.0.2)
Name (192.168.10.101:root): zhangsan     (zhangsan用户登录)   
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"   (home目录,即zhangsan的home)
ftp> put aaa
local: aaa remote: aaa
227 Entering Passive Mode (192,168,10,101,153,206).
150 Ok to send data.
226 Transfer complete.

(3)开启root访问权限

默认root等内置的账户不许访问FTP服务
[root@localhost ~]# vim /etc/vsftpd/ftpusers   (注释root)
[root@localhost ~]# vim /etc/vsftpd/user_list    (注释root)

(4)修改监听地址和端口

服务器
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
listen=yes
listen_address=192.168.10.101    (监听自己的地址)
listen_port=2121  (监听的端口号)
listen_ipv6=no

pasv_enbale=yes           (添加端口号范围)
pasv_min_port=20000
pasv_max-port=20010


客户端
[root@localhost ~]# ftp 192.168.10.101 2121   (要添加端口号)

相关文章:

  • JsonCpp源码跨平台编译
  • 01Linux以及操作系统概述
  • 【wiki知识库】03.前后端的初步交互(展现所有的电子书)
  • 【深度学习】Transformer梳理
  • nginx 安全配置
  • docker安装ubtuntu
  • MongoDB~存储引擎了解
  • C/C++|回调函数的正确打开方式
  • go-gin中session实现redis前缀和db库选择+单点登录
  • 攻防实战 | 邮件高级威胁检测与自动化响应
  • 【原创】springboot+mysql医院预约挂号管理系统设计与实现
  • EXCEL数据透视图中的日期字段,怎样自动分出年、季度、月的功能?
  • 匠心独运,B 端系统 UI 演绎华章之美
  • springboot 的yaml配置文件加密
  • React 为什么使用map来渲染列表 而不是其他循环方法
  • 「译」Node.js Streams 基础
  • Elasticsearch 参考指南(升级前重新索引)
  • python3 使用 asyncio 代替线程
  • Redash本地开发环境搭建
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 利用jquery编写加法运算验证码
  • 容器服务kubernetes弹性伸缩高级用法
  • 数组大概知多少
  • 数组的操作
  • 提醒我喝水chrome插件开发指南
  • 微信开源mars源码分析1—上层samples分析
  • 微信小程序开发问题汇总
  • 学习JavaScript数据结构与算法 — 树
  • 与 ConTeXt MkIV 官方文档的接驳
  • 正则与JS中的正则
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (done) 两个矩阵 “相似” 是什么意思?
  • (pytorch进阶之路)扩散概率模型
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (转)memcache、redis缓存
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)深入super,看Python如何解决钻石继承难题
  • ******IT公司面试题汇总+优秀技术博客汇总
  • ***原理与防范
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET Standard 的管理策略
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 使用 XPath 来读写 XML 文件
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .NET业务框架的构建
  • ?