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

[经验分享] 关于ftp的主动模式(Active Mode)和被动模式(Passive Mode)

[复制链接]

尚未签到

发表于 2016-6-10 12:10:42 | 显示全部楼层 |阅读模式
  首先FTP协议是建立在TCP协议基础上的,所以client与server的每次交互都要经过三次握手(「TCP Three-Way Handshake)
  通过两张图进行解释
  1、主动模式(也叫做PORT模式、standard模式,需要利用服务器的21端口进行资料传输)
  
  
DSC0000.png
  说明:client端利用>1024的任意端口发起于server的21端口建立连接,建立“命令联系通道”,如果要发生资料传输,通过21告知server数据联系通道端口(也是一个>1024的端口例如1333),并进行listen,server利用20端口向client的1333端口发起连接,并建立“资料联系通道”。
  “资料联系通道”是由server主动建立的(步骤6),所以叫做“祖东模式”。
  
  局限性:client端在防火墙或IP分享服务器后面是,其“命令联系通道”可以顺利建立,但“资料联系通道”无法顺利建立。
  2、被动模式
  
DSC0001.png
  说明:建立“命令联系通道”的方式和主动模式基本一样,也是连接server的21端口。但是如果需要传输资料,client会送出PASV指令,告诉server要利用被动模式建立“资料联系通道”,然后server会打开一个>1024端口,并开始listen,并把这个端口好通过“命令联系通道”告知client,client再打开一个>1024的端口,与server建立“资料连接通道”。
  “资料连接通道”是由server被动建立的,所以称作“被动模式”。
  
  3、VSFTP关于主动模式被动模式的配置
  
  pasv_enable=YES    //开启被动模式,默认是YES
  pasv_min_port=3000  
  pasv_max_port=4000 //设置建立“资料联系通道”的端口范围,指定是为了利于server端防火墙设置
  pasv_promiscuous=YES(默认是N,设置为Y时,将关闭PASV模式的安全检查,该检查确保数据连接和控制连接是来自同一个IP地址,小心打开此选项,此选项唯一合理的用法是存在于由安全隧道方案构成的组织中)
  
  
  4、FTP命令行连接设置主动和被动模式
  windows的ftp命令默认是使用的主动方式连接FTP serer。
  linux默认是PASV模式,并通过passive on  | off  来进行切换
  
  5、实际中遇到的一个问题
  关于pasv_promiscuous=YES。
  没有设置此项时客户端连接服务器正常,但是执行“list”等命令时报
  425 Security: Bad IP connecting
  说明“资料联系通道”建立时发现与“命令联系通道”的IP不同,倒是连接诶失败。
  
  
  14:15:27.563 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 返回结果: 220 (vsFTPd 2.0.5)
  14:15:27.564 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 发送命令: ---> USER ws
  14:15:27.566 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 返回结果: 331 Please specify the password.
  14:15:27.566 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 发送命令: ---> PASS ********
  14:15:27.570 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 返回结果: 230 Login successful.
  14:15:27.570 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 发送命令: ---> TYPE I
  14:15:27.571 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 返回结果: 200 Switching to Binary mode.
  14:15:27.571 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 发送命令: ---> TYPE I
  14:15:27.571 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 返回结果: 200 Switching to Binary mode.
  14:15:27.578 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 发送命令: ---> SYST
  14:15:27.578 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 返回结果: 215 UNIX Type: L8
  14:15:27.583 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 发送命令: ---> PWD
  14:15:27.583 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 返回结果: 257 "/"
  14:15:27.583 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 发送命令: ---> PASV
  14:15:27.584 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 返回结果: 227 Entering Passive Mode (200,200,200,8,119,147)
  14:15:27.586 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 发送命令: ---> LIST
  14:15:27.587 [main] INFO  c.b.c.util.ftp.EventListenerImpl - 返回结果: 425 Security: Bad IP connecting.
  
  
  参考资料:http://www.phys.nthu.edu.tw/~cc/QA/vsftpd.pdf
         http://vsftpd.beasts.org/vsftpd_conf.html

运维网声明 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-228639-1-1.html 上篇帖子: Android中FTP服务器、客户端搭建以及SwiFTP、ftp4j介绍 下篇帖子: 使用Ftpclient从FTP上进行下载时文件少一个字节,打不开
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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