PORT
(主动模式)在主动模式下,FTP
客户端随机打开一个大于1024
的端口N,并发起与服务器端口21
的连接,发送FTP
用户名和密码。然后打开N+1
端口进行监听,并向服务器发出PORT N+1
命令,告诉服务器客户端采用主动模式并打开该端口。 FTP
服务器收到PORT
命令后,会使用其本地的FTP
数据端口(通常为20
)连接到客户端指定的端口N+1
用于数据传输。
PASV
(被动模式)被动模式下,FTP
客户端随机打开大于1024
N
的端口向服务器的21
端口发起连接,并发送用户名和密码登录。 ,同时打开N+1
端口。然后向服务器发送PASV
命令,通知服务器处于被动模式。服务器收到命令后,会打开一个大于1024
的端口P
(端口P
的范围是可以设置的,这个很重要,以后会发现)稍后讨论)用于监控。 ,然后使用PORT P
命令通知客户端其数据端口为P
。客户端收到命令后,会通过端口号N+1
连接到服务器的P
端口,然后在两个端口之间进行数据传输。
ftp
客户端需要通过SSL
双向认证连接到服务器,所以你会看到客户端使用59739
端口连接到ftp
服务器的2121
端口,绿框的内容应该是服务器将服务器随机选择的40006
端口号加密并发送给客户端,以便客户端在使用时可以使用40006
端口传输文件。
可以发现,客户端向服务器发送文件所使用的端口号正是56740
(等于59739+1
)。新的端口号用于发送文件,因此不再使用TSL
加密协议。因为在登录认证过程中,只要登录成功,就说明客户端和服务器之间是相互信任的。此时允许打开新的端口号来传输文件。
最后出现两行黑色的【Tcp重传】
数据包,这是两次重传的信息。这是因为内网安装了ftp
服务器,并且没有配置P
端口用于服务器传输文件。而且,防火墙上端口59740
没有映射到外部。 ftp
客户端使用59740
端口向ftp
服务器传输数据包。 Tcp
协议重传3次,否则失败。
简单概括一下主动模式和被动模式的区别就是:主动模式传输数据时,“服务器”连接“客户端”的端口(客户端打开数据端口);当以被动模式传输数据时,“客户端”连接到“服务器”的端口(服务器打开数据端口)。
主动模式要求客户端打开FTP
服务器的端口。许多客户端位于防火墙内。很难打开FTP
服务器的端口进行访问。
被动模式只需要服务器打开客户端连接的端口。如果服务器在防火墙内,还需要端口映射。
在我们的系统中,FTP
采用被动模式,服务安装在小型网络中。为了与大型网络通信,需要IP
和端口映射。当时我没有手动配置FTP
的端口范围用于服务器数据传输。我只在防火墙上做了30000-30010
的端口映射。结果客户端(一台设备)上传时只有一次上传成功。这是因为服务器随机打开的一个端口恰好在30000-30010
范围内。其他时间上传失败。从抓包来看,只有客户端连接到服务器的数据包。
所以,如果FTP
服务安装在小型网络中(防火墙内部),如果使用被动模式,且客户端位于防火墙外部,则来自的数据传输端口必须限制FTP 服务。范围,并且必须映射这些端口。
如果工作中必须使用FTP
服务器,在当今的互联网环境下,只需使用FTP
被动模式进行连接传输即可。如果你只是想知道答案,就看这里吧。对技术和原理感兴趣的朋友请继续阅读。
a。以主动模式传输数据时,“服务器”连接到“客户端”的端口;当以被动模式传输数据时,“客户端”连接到“服务器”的端口。
b。主动模式要求客户端打开到服务器的端口。许多客户端位于防火墙内,很难打开FTP服务器访问的端口。被动模式只需要服务器打开端口供客户端连接。
需要注意的是,被动模式和主动模式下的登录过程都需要FTP
客户端连接到FTP
服务器。
因为大多数客户端都在路由器后面,没有独立的公网IP
地址。服务器主动连接客户端太困难了。在目前真实的互联网环境下几乎是不可能的。可能的任务。
部署 FTP
服务器时,默认采用主动运行模式。如果企业的FTP
服务器的用户都在内网,即不需要像外网用户一样提供FTP
连接,那么这种默认的操作方式足够了。但如果部分出差或在家办公的员工也需要访问公司内部的FTP
服务器,出于安全考虑或者公网IP
地址数量的限制,企业通常在防火墙或 NAT 服务器后面部署 FTP
服务器。这时,这种主动操作方式就不起作用了。
总之,在部署FTP
服务器时,请考虑采用主动运行模式还是被动运行模式。只需记住一个原则,即如果 如果 FTP 服务器部署在防火墙或 NAT
服务器后面,则处于主动操作模式的客户端只能建立命令连接,但不能建立命令连接。无法执行文件传输。如果部署FTP
服务器后,系统管理员发现用户可以连接到FTP
服务器,并且可以查看目录下的文件,但无法下载或上传文件。如果排除权限,如果超出限制,那么很可能是操作模式选择错误。系统管理员告诉用户选择合适的操作模式,这就基本上解决了文件传输问题。
参考:FTP主动模式和被动模式工作原理及抓包分析