FTP连接时出现“227 Entering Passive Mode” 的解决方法

16 篇文章 2 订阅

今天从公网的服务器连接本地内网的FTP server copy文件时,系统老是提示227 Entering Passive Mode (xxx,xxx,xxx,xxx,x),很是奇怪,于是上网找资料仔细研究了一下,原来FTP有两种工作模式,PORT模式和PASV模式.

在主动模式下,FTP客户端随机开启一个大于1024的本地端口(比如N号端口)向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。
服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端的N+1号端口进行数据传输。


在被动模式下,FTP库户端随机开启一个大于1024的本地端口(比如N号端口)向服务器的21号端口发起连接,同时会开启N+1号端口,
然后向服务器发送PASV命令通知服务器自己处于被动模式。服务器收到该命令后,会开放一个大于1024的端口(比如P号端口)进行监听,
然后用PORT P命令通知客户端,而自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的P号端口,
最后在客户端N+1号端口和服务器的P号端口之间进行数据传输。


用下面的图例会更清晰说明两者之间的区别:


*主动模式


命令连接:客户端 大于1024 端口 → 服务器 21 端口
数据连接:客户端 大于1024 端口 ← 服务器 20 端口

*被动模式

命令连接:客户端 大于1024 端口 → 服务器 21 端口
数据连接:客户端 大于1024 端口 ← 服务器 大于1024 端口

总的来说,主动模式是服务器主动连接客户端的数据端口,被动模式是服务器被动地等待客户端连接自己的数据端口。

被动模式通常用在处于防火墙之后的FTP客户端需要访问外界FTP服务器的场景,因为在这种场景下,防火墙通常被配置为不允许外界访问防火墙之后主机,而只允许防火墙之后的计算机发起的连接请求。因此在这种场景下不能使用主动模式,而被动模式可以良好的工作。

由于我的本地FTP服务器在内网,只是从外网映射了两个端口(20,21),即FTP服务器处于防火墙之后,所以应该使用主动模式。 

ftp> passive
Passive mode off.

ftp> passive (再次运行命令可打开)

Passive mode on.

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值