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

为何客户端软件可以而浏览器则不能连接FTP服务器

[复制链接]

尚未签到

发表于 2015-5-27 07:26:24 | 显示全部楼层 |阅读模式
  为了便于工作,在REHL5上面使用vsftp快速配置了FTP服务器,并在/etc/sysconfig/iptables中开启了20, 21端口。
  在我的电脑上打开IE浏览器,发现无法匿名访问,但是通过命令行方式可以访问,同时通过FTP客户端软件也可以正常访问。
  这就奇怪了?根据以上分析应该服务器设置是正确的,且网络也是没有问题的。那是为什么呢?
  通过查询资料,发现FTP服务存在主动(Active Mode)与被动(Passive Mode)两种模式的服务。
  检查/etc/vsftpd/vsftpd.conf文件,发现没有设置被动模式,而我的IE浏览器的工具-》Internet-》高级中,IE浏览器设置为使用被动FTP模式。
  因此我修改vsftpd.conf文件,设置FTP服务器为被动模式。修改方式如下:

  pasv_enable=YES
pasv_min_port=3000
pasv_max_port=4000   同时修改/etc/sysconfig/iptables打开端口3000到4000,具体可查阅相关资料。
  为何被动模式需要设置最小、最大端口呢?
  这就需要了解一下主动模式与被动模式FTP服务的机制:
  FTP是基于TCP协议的,而不是基于UDP的,FTP与其他协议不同,使用两个控制命令(command port)与数据(data port)两个端口。
  通常使用21作为命令端口,20作为数据端口。
  一、主动模式
  1、客户端随机从一大于1023的端口(比如1030)基于FTP协议向服务器端的21端口发起连接。
  2、服务器端从21端口向客户端确认连接
  3、服务器端从20数据端口主动连接客户端的1031(1030+1)端口
  4、客户端从1031端口向20端口确认连接
  这样形成了控制命令与数据传输两条连接,21-1030 20-1031
  但是主动模式有一个要注意的地方就是,由于服务器端会主动向客户端发出连接请求,在客户端防火墙处可能会认为此为网络入侵,若不放开规则,可能会被客户端拒绝。
  二、被动模式
  1、客户端随机从一大于1023的端口(比如1030)基于FTP协议向服务器端的21端口发起连接。
  2、服务器端从21端口向客户端确认连接,
  3、客户端通过控制命令通道高速服务器端应该在哪一个端口(>1023)监听数据连接,比如2000。
  4、客户端从1031端口向约定的2000端口发起连接,建立数据传输通道。
  5、服务器端从2000向客户端1031端口确认连接。
  这样形成了控制命令与数据传输两条连接,21-1030 2000-1031
  但是被动模式有一个要注意的地方就是,服务器端被动在>1023的约定端口监听来自客户端的连接请求,故应该在服务器端防火墙侧打开此端口。
  三、总结
  Active FTP :
  command : client >1023 -> server 21
  data : client >1023 1023 -> server 21
  data : client >1023 -> server >1023
  主动模式对服务器端有利,被动模式对客户端有利。但是服务器端既然要提供FTP服务,应该在服务器端设置防火墙规则,提供被动模式服务,而不能要求所有的客户端都设置防火墙规则以适应主动服务模式。当然服务器端在提供被动模式服务时,出于安全考虑,应该设置客户端可发起数据连接的端口范围,这就是上面配置文件中的
  pasv_min_port=3000
pasv_max_port=4000
  即告诉客户端可以向3000与4000之间的端口发起数据连接。
  摘取国外网站上的一段英文如下:
  Active FTP is beneficial to the FTP server admin, but detrimental to the client side admin. The FTP server attempts to make connections to random high ports on the client, which would almost certainly be blocked by a firewall on the client side. Passive FTP is beneficial to the client, but detrimental to the FTP server admin. The client will make both connections to the server, but one of them will be to a random high port, which would almost certainly be blocked by a firewall on the server side.

运维网声明 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-70981-1-1.html 上篇帖子: [转]FTP搜索引擎的设计与实现(优化版) 下篇帖子: asp.net (网页中操作FTP)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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