java 连接ftp是主动模式还是被动模式

如题所述

一.FTP的PORT(主动模式)和PASV(被动模式)
1. PORT(主动模式)
PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据.
2. PASV(被动模式)
PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输。
二.两种模式的比较
从上面的运行原来看到,主动模式和被动模式的不同简单概述为: 主动模式传送数据时是“服务器”连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。
主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难。
被动模式只需要服务器端开放端口给客户端连接就行了。
三.不同工作模式的网络设置
实际项目中碰到的问题是,FTP的客户端和服务器分别在不同网络,两个网络之间有至少4层的防火墙,服务器端只开放了21端口, 客户端机器没开放任何端口。FTP客户端连接采用的被动模式,结果客户端能登录成功,但是无法LIST列表和读取数据。很明显,是因为服务器端没开放被动模式下的随机端口导致。
由于被动模式下,服务器端开放的端口随机,但是防火墙要不能全部开放,解决的方案是,在ftp服务器配置被动模式下开放随机端口在 50000-60000之间(范围在ftp服务器软件设置,可以设置任意1024上的端口段),然后在防火墙设置规则,开放服务器端50000-60000之间的端口端。
主动模式下,客户端的FTP软件设置主动模式开放的端口段,在客户端的防火墙开放对应的端口段。
四.如何设置 工作模式
实时上FTP服务器一般都支持主动和被动模式,连接采用何种模式是有FTP客户端软件决定。
温馨提示:内容为网友见解,仅供参考
无其他回答

java 有什么命令能够判断ftp服务的连接方式?是主动连接还是被动...
实时上FTP服务器一般都支持主动和被动模式,连接采用何种模式是有FTP客户端软件决定。

聊聊FTP、SFTP、FTPS
首先,让我们来谈谈FTP(File Transfer Protocol)。FTP是互联网上最常用的文件传输协议之一,它允许用户在不同计算机之间传输文件。FTP有两种工作模式:主动模式和被动模式。在主动模式下,服务器主动发起连接请求;而在被动模式下,客户端主动发起连接请求。这种模式的选择主要取决于网络环境和安全需求。接下...

ftpconnectiontimedout
ftpconnectiontimedout,FTP连接超时可能是由于使用了被动模式或网络环境不稳定所导致。FTP连接超时可能是因为使用了被动模式(PASV),而本地网络结构受限,无法正常进行数据交互。此外,本地网络环境不稳定或服务器带宽被占满也可能导致连接超时。另外,防火墙策略可能会阻止java测试服务的端口连接,进而导致连接...

java ftp客户端主动模式(port)下的源代码
维护一个ftp的服务器列表,包含ip端口用户名密码 定时的递归扫描每个ftp服务器的目录和文件,保存到本地数据库 搜索的时候,从本地数据库查询 至于java访问ftp服务器的方法,已经有很多现成的实现 比如www.apache.org的commons-net里就有 有的版本的sun jdk自身就带 ...

ftp命令可以上传文件,但用java ftp无法上传,用的都是被动模式,紧急求助...
可能是因为端口不通,在上传文件之前调用方法ftpClient.enterLocalPassiveMode()试试 相关博文http:\/\/blog.csdn.net\/beyondlpf\/article\/details\/9343781

黑客是怎样通过网络入侵电脑的啊?
这些系统采用这种方式对特定的攻击模式进行监视。它们基于贮存在其数据库里的识别信息:类似于防病毒软件检查已知病毒的方式。这意味着这些系统只能检测他们已经编入识别程序的特定的攻击。因为“瞬时攻击”是新出现的,尚未被广泛认识,所以在新的特征码被开发出来,并且进行安装和配置等这些过程之前,它们就能...

java ftp被动模式 可以限制端口号范围吗
这个是FTP软件配置,,,客户端和服务器端,就会协商。以vsFTP为例子. 修改\/etc\/vsFTPd\/vsFTPd.conf 新增底下四行 listen_port=21 pasv_enable=YES pasv_min_port=9981 pasv_max_port=9986

什么是WEB服务,FTP 服务,SMTP服务!
FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。 下面介绍一个这两种方式的工作原理: Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立...

java里使用ftpClient的被动方式访问ftp服务器读取一系列文件夹,只有第...
你basePath应该有问题,basePath应该指向要删除目录的上一级目录.

公司要求做一个java和jsp怎么实现ftp上传的功能模块,我没有做过,谁有...
if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); throw new I2HFException("COR010", "FTP服务器连接失败"); } \/\/ 登录 if (!ftp.login(user, password)) { throw EXCEPTION_LOGIN; } \/\/ 传输模式使用passive ftp.enterLocalPassiveMode(); \/\/ 设置数据传输超时时间 ftp.setDataTimeout...

相似回答