上次 简单配置好vsftp使用一段时间后 决定继续研究一下FTP的两种模式

FTP两种模式 :PORT 主动   PASV被动

PORT主动模式 服务器S使用20(数据) 21(连接)端口  客户端使用 两个大于1024的端口 (举例 1025 1026)

  1. C:1026 ——S:21 客户端向服务器发起连接(对于S来说 IN 21 TCP )
  2. S:21——C:1026 服务端通过21端口给服务端一个响应
  3. S:20——C:1025 服务端通知客户端 我将20端口用作FTP数据传输
  4. C:1025——S:20 客户端向服务器发起数据连接请求(对S来说IN 20 TCP)

特点:1、服务端端口只需要开放TCP 20 21即可

2、经测试 C处于NAT设备后时无法与S建立数据连接 只能与S的21端口建立连接  此时FTP不能传输文件

3、 但经实际测试 C的两个端口不连续  即并不存在N和N+1端口情况

PASV被动模式  服务段使用21(连接) 以及一个大于1024的随机端口(假设3001数据) 客户端两个随机大于1024端口(举例1025 1026)

  1. C:1026——S:21 客户端向服务器发起连接(对于S来说 IN 21 TCP)
  2. S:21——C:1026 服务端通过21端口给服务端一个响应
  3. C:1025——S:3001 客户端1025端口连接服务端指定范围内的>1024端口(对S来说IN  3001 TCP)
  4. S:3001——C:1025 服务端通过3001端口与客户端1025端口进行数据传输

特点:1、服务端需要开放TCP21 和 >1024的部分端口范围 (可以手动指定范围)

2、经测试 C处于任意位置都能够与S建立数据连接 此模式适合日常使用

存疑:

PASV模式时 S的数据端口假设被指定范围3000:3005  那么在第三步C通过1025去进行数据连接之前 应该还有一步是S通知C我开放的数据端口是多少

PASV模式的端口是每个客户机连接一个数据端口     那么在PORT模式下就只有20数据端口  怎么实现多用户连接传输的 待研究

参考链接:

https://blog.csdn.net/weixin_33895475/article/details/92170950

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

这次简记暂时记录下FTP在PASV模式时设置数据传输端口范围  方便防火墙设置问题

1、编辑配置文件 插入以下内容

sudo vi /etc/vsftpd.conf

------------------------------------------------------------------------------------

pasv_enable=YES   (注:若此处为NO则表示使用PORT模式)

pasv_min_port=起始端口

pasv_max_port=结束端口

-----------------------------------------------------------------------------------------

2、配置防火墙策略

sudo iptables -I INPUT -p tcp --dport 21 -j ACCEPT    (允许建立FTP连接端口)

sudo iptables -I INPUT -p tcp --dport 42500:43000 -j ACCEPT   (允许建立FTP数据连接端口)

3、重启服务 连接测试

sudo /etc/init.d/vsftpd restart

4、查看连接

5、经测试 PASV模式下 S开放的一个数据端口只能同时进行一个数据传输连接 但可以在不同时间给不同用户使用

例如只开放4000端口 客户端A在传输时 如果客户端B需要下载文件会报如下错误

因此 更没理解PORT模式就一个20数据端口是怎样实现多用户同时下载的

VSFTP进阶使用---自用简记相关推荐

  1. 【Unity项目实战】主程进阶之路文章整理 自用记录

    声明:下列文章链接转载自陆泽西 (Jesse Lu)的个人博客,仅供个人学习参考使用,如若侵权,告知删除 1.要点技术 <Unity3D高级编程之进阶主程>第一章,C#要点技术(一) - ...

  2. Android 开发者该如何进阶?

    封面.png 前言 经常在简书和微信上收到一些同学的私信,说自己马上毕业或者已经毕业一年,从事Android开发相关的工作,现在不知道要学习什么东西了.或者说自己也在摸索着学习,但是不知道学习的路线对 ...

  3. ProGit-读书简记

    ProGit-读书简记 from: http://lanbing510.info/2016/12/07/ProGit.html?ref=myread 写在前面 Git是一个非常好的版本管理工具,最早是 ...

  4. android gridview控件使用详解_作为Android 开发者该如何进阶?

    经常在简书和微信上收到一些同学的私信,说自己马上毕业或者已经毕业一年,从事Android开发相关的工作,现在不知道要学习什么东西了.或者说自己也在摸索着学习,但是不知道学习的路线对不对,感觉很迷茫,想 ...

  5. 金蝶kis专业版公网访问_金蝶KIS云专业版—【账务处理】进阶操作101问

    对KIS专业版[账务处理]模块日常操作之外的各种问题进行回答,帮助老师们快速进阶此模块的操作,提高软件的便利性. 1.专业版资产负债表如何移动表页位置? [操作步骤] 1.单击[报表与分析]-[资产负 ...

  6. Tensorflow高级API的进阶--利用tf.contrib.learn建立输入函数

    正文共5958个字,预计阅读时间15分钟. 笔记整理者:王小草 笔记整理时间:2017年2月27日 笔记对应的官方文档:https://www.tensorflow.org/get_started/i ...

  7. Android程序员该如何进阶?,2021Android面经

    LinkedList ArrayList Vector (2) Set HashSet TreeSet Map: HashMap TreeMap HashTable 我们需要知道每个容器的特性,以及它 ...

  8. Android开发如何进阶,薪资如何跟上年龄的脚步?,深度解读Netty

    封装.继承.多态. 2 . 程序设计的6大原则: 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 了解这6大设计原则是非常有必要的,它能指导你的程序整个结构的设计和规范. ...

  9. Linux云计算架构师进阶班-Docker-K8s-Devops-Openstack

    Linux云计算架构师进阶班-Docker-K8s-Devops-Openstack 下载链接: https://pan.baidu.com/s/1l6Xp7_2UsMYfoEKnJAvjUw 提取码 ...

  10. 我的Android进阶之旅------经典的大客推荐(排名不分先后)!!

    今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下(转载于:http://blog.csdn.net/wujxiaoz/article/details/8237096) Android中文Wiki ...

最新文章

  1. 在Servlet中获取Spring注解的bean
  2. driver: linux2.6 内核模块导出函数实例(EXPORT_SYMBOL)
  3. code css怎么拿不到div_不会“编程”拿不到初中毕业证?听北京海淀教委怎么说...
  4. MySQL --- 计算指定日期为当月的第几周
  5. java 8时间操作_Java8 时间日期类操作
  6. atcoder E - Greedy Ant(最优解等价+dp)
  7. Win11系统如何设置黑暗模式
  8. 【报告分享】2020中国消费品牌发展报告.pdf(附下载链接)
  9. 外观模式(Facade模式)详解
  10. 第四章 MyBatis缓存和注解的使用
  11. python绘制相频特性曲线_用Python绘制音乐图谱
  12. linux 查看tps命令,Linux系统一些系统查看指令
  13. Scheme 语言概要(上)
  14. React中setState() 函数的三种用法
  15. 史上最好看的电影你看过吗
  16. AW笔记本升级SSD,外接双屏中的一些注意事项
  17. shell语言简单学习
  18. 室外管线lisp_利用Autocad lisp进行地下管线成果表制作方法的研究
  19. 计算机一级office软件,计算机一级office
  20. 井下人员定位系统建立数字化矿山

热门文章

  1. 我的第一个Python程序:Luogu1001 A+B Problem
  2. HDU1846 Brave Game
  3. nodejs学习笔记-1-文件系统
  4. vue点击下载图片的实现
  5. el-option传两个值_如意芳霏三对CP三种甜,傅容与徐晋夫唱妇随,甜蜜值爆棚
  6. 数据结构与程序的关系_java主程:数据结构和算法的区别别再搞混了,否则开除...
  7. 线性求逆元模板_专栏:ACM算法面面观[9]逆元
  8. mobilenet cpu 加速_AMD锐龙5000系列CPU价格公布 哪款才是性价比之王_搜狐汽车
  9. java解决硬编码_工具类 解决硬编码问题
  10. ERR Errors trying to SHUTDOWN. Check logs.