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 ...
随机推荐
- 1.4-动态路由协议OSPF①
r2#sh ip ospf border-routers 查看ABR 修改OSPF接口优先级 r1(config)#int e 0 r1(config-if)#ip ospf priority 100 ...
- Android离线语音识别(PocketSphinx)
近期做项目.用到离线语音识别.整了好久,查了好多方法.最终完毕.网上资料有点乱,并且大部分就是那几个人写的.一群人转!以下我总结一下.也为后来人行个方便. 关于环境配置我就不多说了.我就是依照这个教程 ...
- 命令行下mysql的部分操作
远程链接数据库: mysql –u用户名 [–h主机名或者IP地址] –p密码 (用户名是登录的用 户,主机名或者IP地址为可选项,如果是本地连接则不需要,远程连接需要填写,密码是对应用户的密码.) ...
- cocos2d-x 3.0 常见问题及解决
我自己遇到的问题记录,会及时更新.希望对大家有帮助 1.打包图片生成plist后,假设在游戏中图片挨在一起可能会出现黑线,打包时将Extrude设为1就可以 2.Xcode环境下.更新资源后执行的时候 ...
- bookstrap form表单简单-smart-form
代码: <form class="smart-form" id="smartForm"> <fieldset> <legend&g ...
- JavaScript Patterns 2.4 For-in loop
Principle Enumeration should be used to iterate over nonarray objects. It's important to use the met ...
- influx测试——单条读性能很差,大约400条/s,批量写性能很高,7万条/s,总体说来适合IOT数据批量存,根据tag查和过滤场景,按照时间顺序返回
测试准备 需要将InfluxDB的源码放入 go/src/github.com/influxdata 目录 单写测试代码(write1.go): package main import ( " ...
- Linux系统下vim常用快捷键及功能
1. 什么是vim Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在vi的基础上改进和增加了很多特性. vim编辑器是Linux系统下标准的编辑器,作用相当于windows系统中的记 ...
- JavaScript中什么是包装对象?
存取字符串.数字或布尔值的属性时,创建的临时对象称为包装对象.包装对象只是偶尔用来区分字符串值和字符串对象.数字和数值对象以及布尔值和布尔对象.由于字符串.数字和布尔值的属性都是只读的,并且不能给它们 ...
- memcache缓存系统
一.缓存系统 静态web页面: 1.在静态Web程序中,客户端使用Web浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服 ...