当前位置:首页 » 文件管理 » javaftp被动模式

javaftp被动模式

发布时间: 2022-06-12 04:56:25

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软件配置,,,,,,客户端和服务器端,就会协商。

以vsFTP为例子. 修改/etc/vsFTPd/vsFTPd.conf
新增底下四行
listen_port=21
pasv_enable=YES
pasv_min_port=9981
pasv_max_port=9986

㈢ java ftp 和 sftp的区别

FTP是文件传输协议。在网站上,如果你想把文件和人共享,最便捷的方式莫过于把文件上传到FTP服务器上,其他人通过FTP客户端程序来下载所需要的文件。 FTP进行文件传输需要通过端口进行。一般所需端口为: 1. 控制链路—TCP端口21。控制器端。用于发送指令给服务器以及等待服务器响应。 2. 数据链路---TCP端口20。数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。 FTP为了适应不同的网络环境,支持主动连接和被动连接两种模式。这两种模式都主要针对数据链路进行的,跟控制链路无关。 FTP的安全隐患: 一、FTP服务器软件漏洞。 二、明文口令。 三、FTP旗标。 四、通过FTP服务器进行端口扫描。 五、数据劫持。 FTP的安全策略: 一、使用较比安全的系统和FTP服务软件。 二、使用密文传输用户名和口令。 三、更改服务软件的旗标。 四、加强协议安全性。 SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟ftp几乎语法功能一样。 SFTP是SSH的一部分,是一种传输档案至Blogger服务器的安全方式。它...

㈣ java ftpclient 是主动还是被动模式

正常情况下,默认使用主动模式 连接ftp;如果ftp仍然是登陆成功但是没有上传或下载文件,就在登陆后加入一行代码,客户端使用被动方式连接ftp服务端

ftpC.login(user, password);
// ftpC.enterLocalPassiveMode();
if (null != remotePath) {
// 打开进入指定目录
ftpC.changeWorkingDirectory(remotePath);
}

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

正常情况下,默认使用主动模式 连接ftp;如果ftp仍然是登陆成功但是没有上传或下载文件,就在登陆后加入一行代码,客户端使用被动方式连接ftp服务端

ftpC.login(user, password);
// ftpC.enterLocalPassiveMode();
if (null != remotePath) {
// 打开进入指定目录
ftpC.changeWorkingDirectory(remotePath);
}

㈥ Java已经连接到ftp上了 但是不能在ftp上面操作

如果代码没有问题 就是权限

㈦ java里使用ftpClient的被动方式访问ftp服务器读取一系列文件夹,只有第一个内容能读到,其他读不到

你basePath应该有问题,basePath应该指向要删除目录的上一级目录.

㈧ java ftp上传时报错。急。

ftp的工作原理
ftp要用到两个tcp连接即要使用两个端口
一个是命令链路:用来传递命令
一个是数据链路:用来上传下载数据

连接ftp server时有active和passive两种模式
通常使用主动模式可完成上传下载
主动模式工作原理
客户端使用命令链路主动告诉服务端:我打开了XX端口,你来连我吧
被动模式工作原理
跟主动模式相反,服务端告诉客户端:我打开了XX端口,你来连我吧

被动模式常用于有防火墙的情况

===============================================
错误:

引用

Host attempting data connection ip address is not same as server


解决方法:

引用

remoteverification
This parameter allows to enable/disable remote host connections verification. It should help when getting "Host attempting data connection ip address is not same as server" issue. Disable verification with remoteverification="false". Default is value is "true".

Java代码

  • client.setRemoteVerificationEnabled(false);

㈨ 关于JAVA FTP 客户端程序异常

501 PORT not allowed after EPSV ALL~~~说明还是网络的问题,我对网络不熟~~~比如用ftp工具的时候,有些ftp站点必须采用被动模式才能连接。下面的你看看吧,或许有用,找网管看看应该使用哪种方式访问

***************************************************
3. EPSV命令
EPSV请求服务器在一个数据端口上侦听等待连接,它可以带参数。对它的响应是TCP端口号。响应的格式与EPRT参数的很象。这对实现上有很大的方便。而且响应还留下了网络协议和/或网络地址的空位,可以供以后使用。使用扩展地址进行被动模式的响应码必须是229,对它的解释如下:
2yz 主动完成
x2z 连接
xy9 进行扩展的被动模式

响应的格式如下:
<指示服务器已经进入初扩展的被动模式>
(<d><d><d><TCP端口><d>)
包括在括号内的字符串必须是EPRT打开数据连接的端口。具体如上所未,这里就不多说了。数据连接使用的协议必须和控制连接使用的协议和地址一致,下面是响应的一个例子:
Entering Extended Passive Mode (|||6446|)
标准错误代码500和501对EPSV已经足够了。在EPSV命令没有使用参数时,服务器会基于控制连接所使用的协议选择数据连接使用的网络协议。但是在有代理的情况下,这种机制可能不合适。因此客户也需要能够要求一个指定协议。如果服务器返回说明它在指定端口不支持此协议,客户必须发送ABOR(放弃)命令使服务器关闭连接,然后客户再使用EPSV命令要求使用特定的网络协议,具体格式如下:
EPSV<空格><网络协议>
如果请求的网络协议是服务器支持的,那就必须使用此协议;如果不支持,则返回522。最后,EPSV命令可以使用参数"ALL"通过网络地址翻译器,EPRT命令不再使用。下面是例子:

EPSV<空格>ALL
接收到此命令后,服务器要拒绝除了EPSV以外所有建立连接的命令。在下一节我们将详细说明此命令的功能。
**********************************************************************

㈩ java远程进行telnet ftp ssh连接的方法

文件传输协议(File Transfer Protocol, FTP)FTP是用于在网络上进行文件传输的一套标准协议。 它属于网络协议组的应用层。 FTP是一个8位的客户端-服务器协议, 能操作任何类型的文件而不需要进一步处理, 就像MIME或Unencode一样。但是, FTP有着极高的延时,这意味着, 从开始请求到第一次接收需求数据之间的时间会非常长, 并且不时的必需执行一些冗长的登陆进程。 概述 FTP服务一般运行在20和21两个端口。 端口20用于在客户端和服务器之间传输数据流, 而端口21用于传输控制流,并且是命令通向ftp服务器的进口。 当数据通过数据流传输时,控制流处于空闲状态。 而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时, 这样当大量数据通过防火墙时,会产生一些问题。此时, 虽然文件可以成功的传输,但因为控制会话会被防火墙断开, 传输会产生一些错误。 FTP实现的目标: 促进文件的共享(计算机程序或数据) 鼓励间接或者隐式的使用远程计算机 向用户屏蔽不同主机中各种文件存储系统的细节 可靠和高效的传输数据 缺点: 密码和文件内容都使用明文传输,可能产生不希望发生的窃听。 因为必需开放一个随机的端口以建立连接,当防火墙存在时, 客户端很难过滤处于主动模式下的FTP流量。 这个问题通过使用被动模式的FTP得到了很大解决。 服务器可能会被告知连接一个第三方计算机的保留端口。 FTP虽然可以被终端用户直接使用, 但是它是设计成被FTP客户端程序所控制。 运行FTP服务的许多站点都开放匿名服务,在这种设置下, 用户不需要帐号就可以登录服务器,默认情况下, 匿名用户的用户名是:“anonymous”。 这个帐号不需要密码, 虽然通常要求输入用户的邮件地址作为认证密码, 但这只是一些细节或者此邮件地址根本不被确定, 而是依赖于FTP服务器的配置情况。 [编辑] 主动和被动模式 FTP有两种使用模式:主动和被动。 主动模式要求客户端和服务器端同时打开并且监听一个端口以建立连 接。在这种情况下,客户端由于安装了防火墙会产生一些问题。 所以,创立了被动模式。 被动模式只要求服务器端产生一个监听相应端口的进程, 这样就可以绕过客户端安装了防火墙的问题。 一个主动模式的FTP连接建立要遵循以下步骤: 客户端打开一个随机的端口(端口号大于1024,在这里, 我们称它为x), 同时一个FTP进程连接至服务器的21号命令端口。此时, 源端口为随机端口x,在客户端,远程端口为21,在服务器。 客户端开始监听端口(x+1),同时向服务器发送一个端口命令( 通过服务器的21号命令端口), 此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接 收数据。这个端口就是我们所知的数据端口。 服务器打开20号源端口并且建立和客户端数据端口的连接。此时, 源端口为20,远程数据端口为(x+1)。 客户端通过本地的数据端口建立一个和服务器20号端口的连接, 然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。 [编辑] FTP和网页浏览器 大多数最新的网页浏览器和文件管理器都能和FTP服务器建立连接 。这使得在FTP上通过一个接口就可以操控远程文件, 如同操控本地文件一样。 这个功能通过给定一个FTP的URL实现,形如ftp://< 服务器地址>(例如, ftp://ftp.gimp.org )。是否提供密码是可选择的,如果有密码,则形如ftp://< login>:<password>@< ftpserveraddress>。 大部分网页浏览器要求使用被动FTP模式, 然而并不是所有的FTP服务器都支持被动模式。

热点内容
安卓微信签名在哪里修改 发布:2025-01-20 01:25:31 浏览:109
安卓电脑管家怎么恢复出厂设置 发布:2025-01-20 01:24:06 浏览:313
qt编译sqlite库 发布:2025-01-20 01:22:30 浏览:525
360摄像头存储设置 发布:2025-01-20 01:16:01 浏览:538
js防缓存 发布:2025-01-20 01:15:47 浏览:495
编程生日卡 发布:2025-01-20 01:15:14 浏览:206
android备忘录源码 发布:2025-01-20 01:06:32 浏览:455
怎么禁用aspx缓存 发布:2025-01-20 01:00:50 浏览:688
我的手机如何恢复安卓系统 发布:2025-01-20 00:55:48 浏览:367
eclipsejsp编译 发布:2025-01-20 00:51:02 浏览:861