FTP(File Transfer Protocol) 文件传输协议 

    端口:

        TCP 21

        TCP 20


    连接:

        命令连接:

            控制链接,不指定超时时间一直在线。

            监听在TCP 21端口


        数据连接:

            按需打开,按需关闭。客户端发起请求时才打开连接,完成传输后关闭。

            主动模式在20端口,被动模式不确定。



            主动模式(PORT模式):

                服务器端用20号端口主动连接客户端。

                1.客户端通过A端口连接到服务器端的21号端口发送请求。

                2.服务器端通过20号端口连接客户端的A+1端口进行数据传输。若端口被占用则使用A+1,以此类推。


                Client A --> Server 21

                Server 20 --> Client A+1(端口若被占用则自动+1)


                缺点:服务端的请求会被客户端防火墙拦截。造成传输失败。


            被动模式(PSAV模式):

                1.客户端通过A端口连接到服务器的21号端口发送请求。同时打开A+1端口。

                2.服务器端通过21号端口发送响应请求给给客户端的A端口,告知客户端连接服务器端的B端口进行数据传输。请求中的部分内容为XY,B=X*256+Y。

                3.客户端通过A+1号端口连接服务器端的B端口,完成数据传送。


                Client A --> Server 21

                Server 21 --> Client A+1(连接Server的B端口)

                Client A+1 --> Server B


                缺点:客户端的请求有可能被服务器端防火墙拦截。


            防火墙连接追踪:

                自身请求出去的,响应回来会自动放行。


    数据传输模式:

        二进制

        文本

        具体传输哪种格式由服务器和客户端自行协商。


    用户分类:

        以下用户都映射为系统用户。

        用户的验证都是基于PAM的。


        匿名用户

            anonymous

            用户的根目录是/var/ftp,被强行锁定到此。


        虚拟用户:


        系统用户

            系统上存在的用户,其根目录就是/home/USERNAME