ftp的主动模式和被动模式区别:
主动模式:
1、客户端使用非特权端口N向服务端的21端口发起三次握手建立tcp连接用于传输命令。
2、服务端通过20端口主动去连接客户端的N+1端口(具体端口号是客户端通过建立好的传输命令通道告知服务端的)建立连接用于传输数据。
场景:
FTP CLient——》防火墙/路由器——》Internet——》FTP Server
客户端处于内网环境下,服务端处于互联网上,客户端访问互联网上的服务都是通过防火墙或者路由器做snat
这种场景下,服务端通过20端口主动发起连接到客户端N+1端口一般是被防火墙或路由器拦截掉,因为无法确认客户端N+1端口
被动模式:
1、客户端使用非特权端口N向服务端的21端口发起三次握手建立tcp连接
2、服务端会将数据传输端口P通过命令传输通道告知客户端,由客户端的N+1端口主动向服务端的端口P建立连接
这样由客户端主动发起连接,就可以避免了主动模式的缺陷
参考了两篇文章: