文件共享服务 FTP-01

本秂侑毒 提交于 2019-12-24 11:28:06

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

文件共享服务 FTP-01

文件传输协议FTP

  • File Transfer Protocol 早期的三个应用级协议之一
  • 基于C/S结构
  • 双通道协议:数据和命令连接
  • 数据传输格式:二进制(默认)和文本
  • 两种模式:服务器角度
    • 主动(PORT style):服务器主动连接
      • 命令(控制):客户端:随机port --- 服务器:tcp21
      • 数据:客户端:随机port ---服务器:tcp20
    • 被动(PASV style):客户端主动连接
      • 命令(控制):客户端:随机port --- 服务器:tcp21
      • 数据:客户端:随机port ---服务器:随机port
  • 服务器被动模式数据端口示例:
    • 227 Entering Passive Mode (172,16,0,1,224,59)
    • 服务器数据端口为:224*256+59

FTP软件介绍

  •  FTP服务器:
    • Wu-ftpd,Proftpd,Pureftpd,ServU,IIS
    • vsftpd:Very Secure FTP Daemon,CentOS默认FTP服务器
      • 高速,稳定,下载速度是WU-FTP的两倍
      • ftp.redhat.com数据:单机最多可支持15000个并发
  • 客户端软件:
    • ftp,lftp,lftpget,wget,curl
      • ftp -A ftpserver port -A主动模式 –p 被动模式
      • lftp –u username ftpserver
      • lftp username@ftpserver
      • lftpget ftp://ftpserver/pub/file
      • gftp:GUI centos5 最新版2.0.19 (11/30/2008)
      • filezilla,CuteFtp,FlashFXP,LeapFtp
      • 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

vsftpd服务

  • 由vsftpd包提供
  • 不再由xinetd管理
  • 用户认证配置文件:/etc/pam.d/vsftpd
  • 服务脚本: /usr/lib/systemd/system/vsftpd.service
    • /etc/rc.d/init.d/vsftpd
  • 配置文件:/etc/vsftpd/vsftpd.conf
    • man 5 vsftpd.conf
    • 格式:option=value
    • 注意:= 前后不要有空格
  • 匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp
  • 系统用户共享文件位置:用户家目录
  • 虚拟用户共享文件位置:为其映射的系统用户的家目录

vsftpd服务配置

  • 命令端口
    • listen_port=21
  • 主动模式端口
    • connect_from_port_20=YES 主动模式端口为20
    • ftp_data_port=20 (默认) 指定主动模式的端口
  • 被动模式端口范围
    • linux 客户端默认使用被动模式
    • windows 客户端默认使用主动模式
    • pasv_min_port=6000 0为随机分配
    • pasv_max_port=6010
  • 使用当地时间
    • use_localtime=YES 使用当地时间(默认为NO,使用GMT)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!