• FTP:File Transfer Protocol
  • 基于C/S结构
  • 双通道协议:分为数据传输通道,命令传输通道
  • 数据传输格式:(默认)二进制,和文本

    FTP传输数据时分为两种模式:从服务器角度来看

    主动模式:即服务器主动连接 客户端
    命令传输通道打开的端口: 客户端端口:随机端口 服务器端口:tcp
    21
    数据传输通道打开的端口: 客户端端口:命令端口+1 服务器端口:tcp20
    被动模式:即客户端主动连接 服务器端
    命令传输通道打开的端口: 客户端:随机端口 服务器端口:tcp21 
    数据传输通道打开的端口: 客户端端口:命令端口+1 服务器端口:随机port 

服务器被动模式端口计算实例:
"注意被动模式每次传输,服务器端口都会根据协商生成新的端口,就算敲一个命令都会改变端口"

例如:

ftp> ls -l
227 Entering Passive Mode (192,168,136,6,37,184).
150 Here comes the directory listing.

协商端口方法如:
227 Entering Passive Mode (192,168,136,6,"37","184"). 
服务器数据端口为:37*256+184 

客户端软件:

    ftp,lftp,lftpget,wget,curl
    ftp -A ftpserver port  -A主动模式 –p 被动模式 
    lftp –u username ftpserver 
    lftp username@ftpserver 
    lftpget ftp://ftpserver/pub/file
    IE  ftp://username:password@ftpserver 

状态码:

      1XX:信息                            125:数据连接打开  
      2XX:成功类状态                  200:命令OK     230:登录成功  
      3XX:补充类                         331:用户名OK  
      4XX:客户端错误                  425:不能打开数据连接  
      5XX:服务器错误                  530:不能登录 

用户认证方式:

    匿名用户:ftp,anonymous,对应Linux用户ftp  
    系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow  
    虚拟用户:特定服务的专用用户,独立的用户/密码文件           
        nsswitch:network service switch名称解析框架   
        pam:pluggable authentication module 用户认证   
        /lib64/security  /etc/pam.d/  /etc/pam.conf