由于最近在跟LMS项目,前期的环境部署需要使用到FTP协议,所以在这里记录一下项目中学习到的知识,以作记录。
FTP为基于TCP/IP网络传输协议的文件传输应用层协议。
FTP协议在两台服务器中传输文件时,需要建立两个通道,分别为:命令传输通道和文件传输通道。
FTP传输文件过程中分为客户机和FTP服务器,在此过程中总是先建立起命令通道后,再建立文件传输通道。
在传输文件过程中,可以分为两种传输模式:
1. 主动方式 POST
客户端发起命令连接请求,服务器发起文件传输通道建立请求。
客户端端口:N,N+1 (N>1024随机端口)
服务器端端口:21,20
2. 被动方式 PASV
客户端分别发起命令连接和文件传输通道建立请求。
客户端端口:N,N+1(N>1024随机端口)
服务器端端口:21,N(N>1024随机端口)
被动方式下,服务器端可以通过设置配置文件参数,达到控制N端口范围,如下:
#liunx环境下设置 /etc/vsftpd/vsftpd.conf pasv_enable=YES|NO
pasv_min_port=port number
pasv_max_port=port number
两种连接方式中文命名是以服务器为主命名的,也就是说主动被动都是相对服务器端来说的。
两种模式都需要服务器端开启21端口来建立命令通道连接。