ftp软件报此错误,估计是在连接中变换了ip
编辑vsftp配置文档,位置:
/etc/vsftpd/vsftpd.conf
在最后一行添加
pasv_promiscuous
=
YES
关于此参数的说明:
引用:
如果你想关闭被动模式安全检查(这个安全检查能确保数据连接源于同一个IP地址)的话,设为YES。确定后再启用它(注:原话是:只有你清楚你在做什么时才启用它!)
合理的用法是:在一些安全隧道配置环境下,或者更好地支持FXP时(才启用它)。
默认值:NO
FTP主被动连接
FTP是仅基于TCP的服务,不支持UDP。与
众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP 工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。
(一)主动FTP
主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端
口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:
1. 任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)
2. FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)
3. FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)
4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)
(二)被动FTP
为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。
在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。
当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N >
1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交
PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT
P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
1. 从任何大于1024的端口到服务器的21端口 (客户端初始化的连接)
2. 服务器的21端口到任何大于1024的端口 (服务器响应到客户端的控制端口的连接)
3. 从任何大于1024端口到服务器的大于1024端口 (客户端初始化数据连接到服务器指定的任意端口)
4. 服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)
以上关于主动和被动FTP的解释,可以简单概括为以下两点:
主动FTP:
命令连接:客户端 >1024端口 -> 服务器 21端口
数据连接:客户端 >1024端口 <- 服务器 20端口
被动FTP:
命令连接:客户端 >1024端口 -> 服务器 21端口
数据连接:客户端 >1024端口 -> 服务器 >1024端口
下面是主动与被动FTP优缺点的简要总结:
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的
防火墙
阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口
很有可能被服务器端的防火墙阻塞掉。
幸运的是,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过为FTP服务器指定
一个有
限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危
险。
更多相关资料:
主动FTP与被动FTP-权威解释
IE 在 internet 选项 - 高级 中可以选择 passive(被动)方式
via http://susis.ust.hk/tut011.php
相关推荐
Java FTP连接池是一种用于管理FTP(文件传输协议)连接的资源池,它的主要目标是提高应用程序的性能和效率。在传统的FTP操作中,每次需要连接到FTP服务器时都会创建一个新的连接,这会消耗大量时间和系统资源。而...
这个"ftp连接器"应该是提供了一个编程接口或工具,使得开发者能够轻松地实现FTP的基本操作,如连接、上传、下载等。接下来,我们将深入探讨FTP的相关知识点。 1. FTP协议基础: FTP基于TCP/IP协议族,它定义了两台...
本文将深入探讨如何在Spring Boot项目中集成FTP连接池,以解决并发用户上传附件时的性能问题。 首先,我们需要引入相关的依赖。在Spring Boot项目中,可以使用Apache Commons Net库来实现FTP功能,并使用Apache ...
其实ftp连接池跟数据库连接池的原理是差不多的,不同的是ftp连接池有个连接时间的限制,如果你没设置的话,它的默认连接服务器的时间是0,所以我们要合理的设置它的服务器的时间,ftp.setConnectTimeout(5000);...
使用JDK1.8、SpringBoot2.2.10.RELEASE、lombok1.18.8、guava23.0、hutool5.3.10、commons-pool2 2.7.0、tika1.22等实现多Ftp连接池实现,通过守护线程实现连接池内连接可用性校验,配置最大、最小连接个数防止Ftp...
下面将详细介绍如何在C#中实现FTP连接到服务器以及相关的知识点。 1. **创建FtpWebRequest对象**: 首先,我们需要创建一个FtpWebRequest对象,它代表FTP请求。通过传递URL(包括服务器地址和端口号)到...
Windows Server 2012 R2 服务器建立 FTP 访问及无法与服务器建立连接相关问题解决 FTP(File Transfer Protocol)是一种常用的文件传输协议,用于在网络中传输文件。Windows Server 2012 R2 提供了一种简单的方式来...
FTP协议父子连接
FTP 连接抓包分析 FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上传输文件的协议。它是应用层协议,使用 TCP 作为传输层协议。FTP 的主要目标是提供一种高效、可靠的文件传输方式。 FTP 连接过程...
8uFTP支持多种FTP连接模式,包括主动模式和被动模式,以适应不同的网络环境。主动模式下,客户端会向服务器请求数据连接,而在被动模式下,服务器会主动打开一个端口等待客户端连接,这种方式更适合通过NAT或防火墙...
2、控制面板 --- Windows防火墙 --- 高级 --- 选中"本地连接**”(或者无线网络连接,和使用何种方式连接路由器共享上网有关)--- 设置 --- 钩选"FTP服务器"和“HTTP服务”。开放端口。 3、如果你还使用了路由器,就...
FTP连接与密码明文抓取的实验内容(win2003).pdf 学习资料 复习资料 教学资源
FillZilla是一款功能强大的FTP(File Transfer Protocol)连接工具,专为用户提供了高效且便捷的文件上传和下载服务。...它的易用性和强大的功能使得它在同类软件中脱颖而出,是许多用户首选的FTP连接工具。
小巧,方便而且实用 FTP连接器,必备的工具!
FTP连接工具
ftp连接工具,最大特点在于方便快捷,特别小,就几十kb,但是功能较为简单,ftp下载是没问题的
ftp连接Windows和Linux实现文件互传。同大多数Internet服务一样,FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照 FTP 协议提供服务,进行文件传送的计算机就是 FTP...
本文将详细介绍如何在C#中实现FTP连接,并提供相关的示例源码。 首先,为了在C#中实现FTP连接,我们需要使用System.Net命名空间中的FtpWebRequest和FtpWebResponse类。这两个类提供了与FTP服务器交互的基本功能,...
本文将深入探讨Java中实现FTP连接的基本步骤和关键知识点。 首先,Java提供了一个内置的`java.net.Socket`类,可以用来创建网络连接,但FTP协议的复杂性使得直接使用Socket进行FTP操作并不方便。因此,Java社区开发...