设为首页 收藏本站
查看: 1488|回复: 0

[经验分享] Ftp学习笔记

[复制链接]

尚未签到

发表于 2015-11-6 09:17:14 | 显示全部楼层 |阅读模式
FTP环境
  Linux环境
  
  
  Window环境
  
  
  wuFtpd
  早期的ftp服务器,拥有不错的稳定性
  
  IIS
  
  proFtpd
  对wuFtpd的全面重写

  • 较好的安全性
  • 容易配置易上手
  
  Server-U
  
  vsFtpd
  高速、稳定

  • 在速度上是wuFtpd的两倍
  • 单机(非集群)支持4000以上并发访问
  
  
  
  pureFtpd
  
  
  
  Apache FtpServer
  
  
  
  
  
  


    • 由java编写而成,因此可支持跨平台。
    • 可被独立使用
    • 可做为模块与Java相关软件集成
    • 支持OSGI规范
      
  
  
  
FTP的两个TCP连接

  • 控制连接,用于ftp客户端与ftp服务器端传递命令

  • 数据连接,用来上传/下载数据。
传输方式
  FTP协议规定了两种传输方式:

  • ASCII方式,这种机制指,在针对传输内容是ASCII码文本时,文件内容会被调整,有时会造成传输的文件被损坏,ASCII方式会把文件中的某些字符串位丢弃,所以不能保证文件数据的每一位都是重要的。
  • 二进制方式,首先二进制方式保证了文件内容所有数据位都是重要的。


  • 经过验证在传输文件类型为非文本内容的文件,使用ASCII传输方式造成传输的文件内容损坏。
  FTP自身有两种工作模式,也就是说在第二步中提示“建立另外一条专有数据连接方式”的方法有两种。习惯上我们称为主动模式和被动模式:PORT方式和PASV方式。
  
  PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据,有时候这种连接往往被客户端防火墙当作一种外部攻击而据之在外。
  
  PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
  
  从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同了。在建立数据连接的过程中,客户控制进程反客为主,成为连接的接受者,而服务器数据传输进程成了连接的请求者。
  数据传输模式下,作为新的子进程,服务器传输进程可以申请一个新的端口号建立关联(一般是20端口),但是它向哪个客户端口发送连接请求呢?因为客户是没有公认端口的,这时就要用到控制连接。客户控制进程通过控制连接告诉服务器控制进程自己的数据连接端口号;服务器控制进程将它转告自己的数据传输进程,服务器便利用这个端口与客户建立数据连接。
FTP之Port模式
DSC0000.jpg
FTP之Passive模式
  PASV模式的端口计算
DSC0001.jpg
  端口号的计算机公式为:10*256+22=2582,所以客户端应该连接服务器的2582端口建立数据连接;
DSC0002.jpg
实践(Java与FTP)
  Java与FTP的连接

  • 简易连接方式,账户以及数据信息暴露,无法保障传输数据安全;


  • 支持SSL/TLS的连接

    • 支持证书双向认证;
    • 支持传输数据的过程是较安全的;

  Java应用与FTP传输的逻辑层

  • 记录FTP访问日志;


  • 访问认证机制,与应用系统认证模块集成;
  • 流量统计,待验证
注意事项

  • 注意数据交互方式(ASCII/BINARY),此问题会导致传输的文件内容损坏。
  • 如果出现使用其它客户端传输内容丢失的情况,可考虑直接使用原生ftp命令人工进行测试
  • 服务器权限问题
参考资料

  • FTP综述 http://baike.baidu.com/view/374443.htm


  • FTP服务器 http://en.wikipedia.org/wiki/List_of_FTP_server_software


  • pureFtp  http://www.pureftpd.org/project/pure-ftpd/doc


  • Apache FTP Server  http://mina.apache.org/ftpserver/downloads.html
  • FTP之telnet测试 http://hi.baidu.com/xianyang1981/blog/item/14a20e60511019cd8cb10d3a.html


  • ACT简述 http://baike.baidu.com/view/204040.htm
  
         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-135690-1-1.html 上篇帖子: 十款超高人气FTP客户端软件横评 下篇帖子: RFC0959---FTP协议
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表