ftp java 主动被动模式_主动和被动FTP有什么区别?

FTP连接模式(主动或被动)确定如何 Build 数据连接 . 在这两种情况下,客户端都会创建到FTP服务器命令端口21的TCP控制连接 . 这是标准的传出连接,与任何其他文件传输协议(SFTP,SCP,WebDAV)或任何其他TCP客户端应用程序(例如Web浏览器)一样) . 因此,打开控制连接时通常没有问题 .

FTP协议比其他文件传输协议更复杂的是文件传输 . 虽然其他协议对会话控制和文件(数据)传输使用相同的连接,但FTP协议使用单独的连接进行文件传输和目录列表 .

在活动模式下,客户端开始在随机端口上侦听来自服务器的传入数据连接(客户端发送FTP命令 PORT 以通知服务器它正在侦听哪个端口) . 如今,通常客户端位于防火墙(例如内置Windows防火墙)或NAT路由器(例如ADSL调制解调器)后面,无法接受传入的TCP连接 .

为了这引入被动模式的原因现在主要用于被动模式 . 使用被动模式是优选的,因为大多数复杂配置在服务器端仅由经验丰富的管理员完成一次,而不是由客户端(可能)由没有经验的用户单独完成 .

在被动模式下,客户端使用控制连接向服务器发送 PASV 命令,然后从服务器接收服务器IP地址和服务器端口号,然后客户端使用该端口号打开与服务器IP地址的数据连接,收到服务器端口号 .

被动模式的网络配置

在被动模式下,大多数配置负担都在服务器端 . 服务器管理员应按如下所述设置服务器 .

FTP服务器端的防火墙和NAT必须配置为不仅允许/路由FTP端口21上的传入连接,还要配置传入数据连接的一系列端口 . 通常,FTP服务器软件具有配置选项,用于设置服务器将使用的一系列端口 . 并且必须在防火墙/ NAT上打开/路由相同的范围 .

当FTP服务器位于NAT后面时,它需要知道它的外部IP地址,因此它可以在响应 PASV 命令时将其提供给客户端 .

活动模式的网络配置

在主动模式下,大部分配置负担都在客户端 .

客户端上的防火墙(例如Windows防火墙)和NAT(例如ADSL调制解调器路由规则)必须配置为允许/路由一系列端口以用于传入数据连接 . 要在Windows中打开端口,请转到“控制面板”>“系统和安全”>“Windows防火墙”>“高级设置”>“入站规则”>“新建规则” . 要在NAT上路由端口(如果有),请参阅其文档 .

当您的网络中存在NAT时,FTP客户端需要知道WinSCP需要使用 PORT 命令向FTP服务器提供的外部IP地址 . 这样服务器就可以正确连接回客户端来打开数据连接 . 某些FTP客户端能够自动检测外部IP地址,有些必须手动配置 .

智能防火墙/ NAT

某些防火墙/ NAT尝试通过检查FTP控制连接和/或转换控制连接流量中的数据连接IP地址来自动打开/关闭数据端口 .

使用这样的防火墙/ NAT,对于普通的未加密FTP,上述配置不是必需的 . 但这不适用于FTPS,因为控制连接流量已加密,防火墙/ NAT无法检查或修改它 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值