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 ...
随机推荐
- [Dart] Understand Variables and Constants in Dart
In this lesson, we will look at how to create variables and constants. These are containers that sto ...
- Cocos2d坐标系具体解释
1.笛卡尔坐标系 左手坐标系(Direct3D坐标系),右手坐标系(Direct3D坐标系) 大拇指和食指分别相应x轴和y轴 2.UI坐标系 iOS/Android/Windows SDK中的通用UI ...
- python多线程实现抓取网页
Python实现抓取网页 以下的Python抓取网页的程序比較0基础.仅仅能抓取第一页的url所属的页面,仅仅要预定URL足够多.保证你抓取的网页是无限级别的哈,以下是代码: ##coding:utf ...
- Python基础--webbrowser
非常多人,一提到Python,想到的就是爬虫.我会一步一步的教你怎样爬出某个站点. 今天就先介绍一下webbrowser,这个词您肯定不会陌生.对,就是浏览器. 看看Python中对webbrowse ...
- Mysql经常使用函数
-----------------------------字符串函数--------------------------------------- ----拼接字符串.不论什么字符串与null拼接为n ...
- The Breakpoint will not currently be hit. No executable code associated with this line
首先.请确认solutin的属性 C/C++->General-> Debug Information Format 选择Program Database(/Zi) Linking-> ...
- Elasticsearch安装中文分词插件ik
Elasticsearch默认提供的分词器,会把每一个汉字分开,而不是我们想要的依据关键词来分词.比如: curl -XPOST "http://localhost:9200/userinf ...
- 我的Android进阶之旅------>Android中MediaRecorder.stop()报错 java.lang.RuntimeException: stop failed.【转】
本文转载自:http://blog.csdn.net/ouyang_peng/article/details/48048975 今天在调用MediaRecorder.stop(),报错了,java.l ...
- 洛谷P2744 [USACO5.3]量取牛奶Milk Measuring
题目描述 农夫约翰要量取 Q(1 <= Q <= 20,000)夸脱(夸脱,quarts,容积单位--译者注) 他的最好的牛奶,并把它装入一个大瓶子中卖出.消费者要多少,他就给多少,从不有 ...
- 洛谷P2303 [SDOi2012]Longge的问题
题目背景 SDOi2012 题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). ...