FTP服务器访问主动模式、被动模式
在公司里面,经常需要访问外网FTP取资料等情况。但是有时用windows界面访问经常遇到各种问题。
下面介绍两种客户端是如何访问ftp服务器。
首先我们需要说明:防火墙,是阻拦外界与内部的通讯的一道关卡。从内部出去如果没有特殊设置,一般是任意出,而从外界进来,
就是防火墙设置的重点,并非任意进。
主动模式(PORT)(默认):

如上图,在主动模式中:在下面中C代表客户端。S代表服务端.
第一步:C用任意x端口访问S的21端口且附带信息说明自己自己X+1端口开启监听(如果没有改变,ftp服务默认端口是21).
然后C把此信息通过自己的防火墙,到达S端,因为S端开启ftp服务,那么它的防火墙肯定开启此21端口这样就可以访问到S。
第二部:S端收到访问后通过21端口到达C的X端口,表明自己接受到此信息,然后S端开启X+1来等待数据连接。
第三部:S端开启20号端口与A端口的X+1建立数据传输,然后S端口20端口访问C的X+1端口时,C所在的局域网防火强
并没有开启此端口来允许外界的任何端口来访问此局域网中的C的X+1端口。
所以防火墙受阻,无法建立通讯,如果在同局域网内没有问题。非同局域网就要设置C端的防火墙。
访问FTP的第二种模式:被动模式(PAVS)

第一步:同样,C端开始通过X端口访问FTP21端口。告诉S端自己采用PASV模式,此时中间防火墙都不会阻拦此信息,因为服务器已开启21端口。
第二步:服务器收到信息后,自己建立一个Y端口,且通过刚才的通道告诉C端,自己等待数据连接的端口是Y端口。
第三步:C端收到信息后,开启任意端口来访问s端的Y端口来实现数据传输。
第四步:就是C与S的Y端口数据开始传输。
此种模式中需要注意的事第三步:怎么实现C端收到信息后开启任意端口来连接S端的Y端口不会被S锁在的局域网防火墙阻拦。
这种问题,就要设计到防火墙设置,已经建立FTP服务器时端口的设置。在PASV,ftp服务器设置可以指定一段端口,然后在防火墙中开启,
且指定此段端口映射到S服务器上。这样就可以保证S端开启的Y端口可以从外界来通讯。
在WINDOWS中,模式的是主动模式,如果需要被动模式去访问FTP服务器如何设置,请参考下图,
如果用软件客户端访问,那么对应的软件客户端在选项中肯定有FTP被动模式和主动模式的选择。

上面步骤仅是参考模型,网络的输出肯定不是这么简单,只是为了方便简单理解两种模式中的不同。
FTP服务器访问主动模式、被动模式的更多相关文章
- FTP协议的主动模式和被动模式的区别
最近准备做一个<FtpCopy系列教程>,主要讲解Ftp协议主动模式和被动模式的区别.以及FTP服务器的安装部署,然后通过几个常用实例演示,详细讲解如何使用FtpCopy进行数据自动备份. ...
- ftp主动模式 被动模式 和iptables 设置
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式. Port模式:ftp server:tcp 21 <------client:dynamic ftp se ...
- FTP 连接模式 (主动模式被动模式)
FTP是有两种传输的模式的,主动模式和被动模式,一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接. 1. 控制连接客户端希望与 ...
- Vsftp安装及配置主动模式/被动模式
第一章.前言 FTP的主动模式(active mode)和被动模式(passive mode) 大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯 ...
- zabbix 模板 创建逻辑 + 主动模式-被动模式
模板通常包含了item.trigger.graph(图形).application以及low-level discovery rule:模板可以直接链接至某个主机: 模板包含一系列的item,trig ...
- why ftp服务器采用多进程模式
为什么没有采用多线程或者IO复用,原因是在多线程或IO复用的情况下,当前目录是共享的,无法根据每一个连接来拥有自己的当前目录. 多进程模式下,一个连接拥有2个进程,一个是nobody进程,一个是服务进 ...
- ftp服务器三种模式
一.匿名开放模式(最不安全) 1.[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf (主配置) anonymous_enable=YES //允 ...
- 转:【专题十二】实现一个简单的FTP服务器
引言: 休息一个国庆节后好久没有更新文章了,主要是刚开始休息完心态还没有调整过来的, 现在差不多进入状态了, 所以继续和大家分享下网络编程的知识,在本专题中将和大家分享如何自己实现一个简单的FTP服务 ...
- 专题十二:实现一个简单的FTP服务器
引言: 在本专题中将和大家分享如何自己实现一个简单的FTP服务器.在我们平时的上网过程中,一般都是使用FTP的客户端来对商家提供的服务器进行访问(上传.下载文件),例如我们经常用到微软的SkyDriv ...
随机推荐
- ios学习之旅---指针也不难
1.认识指针 #include <stdio.h> //基本数据类型作为函数參数传递是值传递 //void moveFront(int x ,int y) //{ // x = x + 2 ...
- iOS开发——代码生成TabBar与视图切换具体解释
我在之前多篇博客中解说了在不使用storyboard而使用nib文件的情况下.使用代码生成导航栏并进行跳转,具体能够參考<iOS开发--界面跳转与返回及视图类型具体解释><iOS纯代 ...
- C++学习之new与delete、malloc与free
在C/C++的面试时,对于new/delete和malloc/free这两对的使用和区别经常被考查到,如果这种基础的问题都答不上来,估计很难过面试了.这篇文章仅仅是浅显的讲一下,仅供参考. 一.new ...
- HDOJ 4705 Y 树形DP
DP:求出3点构成链的方案数 .然后总方案数减去它 Y Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K ...
- C++ 訪问控制权限图解
基类訪问权限 类继承方式 子类訪问权限 public public protected public protected private No Access p ...
- Bing Maps进阶系列一:初识Bing Maps地图服务
Bing Maps进阶系列一:初识Bing Maps地图服务 Bing Maps提供了一组WCF的地图服务,使用这些服务我们可以方便的在自己的应用系统里实现地理位置搜索等相关功能.他们分别是地理编码服 ...
- codeforces 939E Maximize! 双指针(two pointers)
E. Maximize! time limit per test 3 seconds memory limit per test 256 megabytes input standard input ...
- SceneView 追踪选择目标
在编辑器的Scene视图中追踪选择目标,调试动作用 SceneView这个类没有说明文档比较蛋疼 在update中调用SceneViewCameraFace2Target函数,编辑器的OnInspec ...
- python 学习笔记一 (数据结构和算法)
2018年刚刚过完年,从今天起,做一个认真的技术人.开始进入记笔记阶段. python内置了很多数据结构,list , set,dictionary 1.将序列分解为单独的变量 1.1 通过赋值的方式 ...
- 跨服务器进行SQL Server数据库的数据处理
exec sp_addlinkedserver 'ITDB', ' ', 'SQLOLEDB', '服务器IP' exec sp_addlinkedsrvlogin 'ITDB', 'false ', ...