Saber 酱的抱枕

Fly me to the moon

04/23
2020
软件

FTP 主动模式和被动模式

FTP 协议需要服务器端和客户端配合。总所周知 FTP 的端口号是 21,但其实这个端口只用于传输 FTP 命令,传输文件时使用的是其他端口。(一般是一个随机的端口)

主动和被动是以客户端为主体来定义的。

PORT 主动模式:当需要传输文件时,客户端告诉服务器,我开放了 xxxx 端口,服务器来连接客户端。

PASV 被动模式:和主动模式相反,由服务器告诉客户端使用什么端口,然后客户端去连接服务器。

今天我因为这两个模式的区别,栽了一个跟头。

因为这个服务器防火墙的入站规则只允许外部网络连接指定的几个端口,出站规则不受限制。

问题来了,被动模式里,服务器告诉客户端,我们使用 1551 端口,你来连接我吧。

然后连接就被防火墙拦截了,GG。

此时把客户端改为只使用主动模式,这样会由服务器来连接客户端。服务器出站没有限制,而客户端一般不会那么严格,传输就可以进行了。

一开始我不知道有这两个模式,连接服务器失败,我摸不着头脑。后来根据客户端的日志,搜索了下,才知道这俩模式。

FTP 主动模式和被动模式

然后我看了日志,一开始是被动模式,失败之后尝试主动模式。可为何主动模式也失败了呢?

之后把这个连接的属性改为只使用主动模式,连接成功了。

FTP 主动模式和被动模式

FTP 主动模式和被动模式