上周在一个项目中需要用到文件FTP功能,需要从主机A将文件上传到主机B,但是,网络安全部门要在A,B主机上设置防火墙,只能访问固定范围内的端口。
首先了下FTP的两种模式,假设主机A连接主机B
M,N均大于1024
主动模式,连接步骤:
1.A从本地启用一个端口:N
2.连接B的21端口,建一个命令链接。
3.向B发送一个连接端口T,等于N+1
4.B启用本地20端口
5.B连接A的T端口,建立一个数据链接。
6.可以开始数据传输了。
被动模式,连接步骤:
1.A从本地启用一个端口:N.
2.连接B的21端口,建一个命令链接.
3.B生成一个端口M,发送到A.
4.A启用本地N+1端口.
5.A连接B的M端口,建立一个数据链接.
6.可以开始数据传输.
之前的问题是A服务器的防火墙只能对B开放一部分端口,例如:1026至1040.这样的话,我们可以采用主动模式,利用apache的FTPClient.connect(host, port, localAddr, localPort)方法来指定本地端口,如果创建命令链接时的本地端口为1026,那么B连接A的端口就为1026+1=1027,这样就能限定B连A的端口范围。
如果要采用被动模式的话,需要在服务端设定端口M的范围,这样整个FTP服务器的访问端口就被限定死了,不够灵活。
注意:
经过测验,用JAVA FTP的连接情况和AIX自带FTP工具的连接情况是不一样的,如下是主动模式的连接情况
用JAVA FTP
可以看到本地连接端口 33834 和 33833 是N+1的关系
tcp4 57484 0 134.96.94.58.33834 134.96.83.40.20 ESTABLISHED
tcp 0 0 134.96.94.58.33833 134.96.83.40.21 ESTABLISHED
用AIX FTP
可以看到本地连接端口 50417和 50447 不是N+1的关系
tcp 0 0 134.96.94.58.33475 134.96.83.40.21 ESTABLISHED
tcp4 0 0 134.96.94.58.33542 134.96.83.40.20 ESTABLISHED
分享到:
相关推荐
c#ftp客户端 支持主动和被动模式,c#ftp客户端 主动模式 被动模 PORT PASV
使用Qt5实现Ftp上传下载,支持Ftp主动模式,被动模式选择下载,ui输入ip,端口等配置信息,快速验证;使用QTcpSocket,QTcpServer实现,支持linux,windows,嵌入式linux运行,FTP标准命令。
ftp主动模式和被动模式详解 详细的解释了FTP的主动模式和被动模式。
处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。
FTP的主动被动模式.pdf
在FTP上传文件时,常遇到模式选择,现在在网上搜集了一些FTP的主动、被动模式的用法,分享给朋友们。
介绍ftp主动、被动模式特点,及两者的区别!
ftp主动被动模式配置混乱导致无法登录.docx
实现ftp客户端被动模式功能
FTP 的两种不同工作模式:PORT(主动模式)与PASV(被动模式) 1、首先,我们要了解,FTP 工作的时候,需要用到两个连接:控制连接与数据连接,控制 连接专门用于FTP 控制命令及命令执行信息传送;数据连接专门用于...
FTP是仅基于TCP的服务,不支持UDP。 与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。...这就是主动与被动FTP的最大不同之处。
FTP常见错误 以及 主动与被动模式问题
ftp客户端被动模式代码
通过socket模拟ftp主动和被动两种模式下上传下载文件,代码完整,直接导入项目就可以调试
FTP 主被动问题是 FTP 协议中的一种连接模式,分为主动模式(PORT 模式)和被动模式(PASV 模式)。在了解 FTP 主被动问题之前,需要了解 FTP 的基本概念。FTP(File Transfer Protocol)是一种用于在网络上进行文件...
介绍FTP的二个工作模式 主动与被动 可以帮助你了解FTP的原理
介绍FTP的两种工作模式及其特点。 FTP使用两个独立的TCP连接:一个命令通道,在客户和服务器传送命令和结果;另一个是数据通道,传送实际文件和目录列表。
处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。
FTP(File Transfer Protocal),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问...