FTP详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最后对于主被动模式的总结:
主动FTP:
命令连接:客户端>1023端口――> 服务器 21端口
数据连接:客户端 >1023端口<―― 服务器 20端口被动FTP:
命令连接:客户端 >1023端口――> 服务器 21端口
数据连接:客户端 >1023端口――> 服务器 >1023端口
如图
然后对主被动模式的利弊做个小结:
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。

因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉,例如:当客户端使用PORT登录方式时,FTP服务器将无法连接客户端建立数据链路。

因为客户端没有公网IP地址,这种情况下,客户端必须使用PASV登录方式。

这就是很多内网用户不能登录FTP服务器的一个重要原因。

被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。

因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉
幸运的是,我们可以通过为FTP服务器指定一个有限的端口范围来减小服务器高位端口的暴露。

这样,不在这个范围的任何端口会被服务器的防火墙阻塞。

虽然这没有消除所有针对服务器的危险,但它大大减少了危险。

在此时我顺便了解了一下0-1023各个端口。

第三部分
IE无法登录FTP的解决方案之Client:
由于许多人只是限于对FTP基础知识认识的匮乏,习惯于用IE登录FTP,并且IE是个很粗糙的浏览器,无法很仔细地显示出在登录FTP的过程中所出现的各种信息,并且像xp浏览器所默认的模式是port,所以导致许多不了解FTP的同学无法登录FTP,接下来问题就要对IE无法登录FTP做出一个完美的解决,以利于同学们正常登录FTP。

如果不修改FTP服务器的配置,就要对客户端的进行设置。

PORT方式在传送数据时,由于服务器要主动连接客户端,所以,如果客户端在防火墙或NAT网关后面,用PORT方式将无法与Internet上的FTP服务器传送文件。

这种情况需要使用PASV方式。

几乎所有的ftp客户端软件都支持这两种方式。

目前我们用的xp 版本中IE默认的模式是被动,因为学校Ftp服务器的高端端口没有打开,于是我们用主动模式登录FTP
如果要在IE里启用PASV方式,请打开IE,在菜单里选择:工具 -> Internet选项 -> 高级,在“使用被动ftp”前面钩去掉。

IE无法登录FTP的解决方案之Server:
修改了防火墙的配置文件后,使我的基于centos的ftp服务器同时支持主动和被动模式
思考:
主动模式下,客户连接 TCP/21,服务器通过 TCP/20 连接客户
被动模式下,客户连接 TCP/21,客户再通过其他端口连接服务器的随机端口
卡住的原因,是因为服务器在被动模式下没有打开临时端口让 client 连过来,因此需要几个条件
参考第三条:
1、client 没有防火墙时,用主动模式连接即可
2、server 没有防火墙时,用被动模式即可
3、双方都有防火墙时,vsftpd 设置被动模式高端口范围,server 打开那段范围,client 用被动模式连接即可
4、加载 ip_conntrack_ftp 模块,使 server 支持connection tracking,支持临时打洞,client 用被动模式即可
5、server 使用 ip_conntrack_ftp、client 使用
ip_conntrack_ftp 和 ip_nat_ftp,支持临时打洞和临时NAT 穿越打洞,双方使用主动或被动模式均可(这个具体意思我不是太懂)
四.解决
1.在vsftpd主配置文件/etc/vsftpd/vsftpd.conf里添加pasv_enable=yes
pasv_min_port=50000
pasv_max_port=60000
重启vs.
2.开放防火墙中的端口号,需修改防火墙配置文件
/etc/sysconfig/iptables,需打开以下端口。

-A RH-Firewall-1-INPUT -p tcp
--dport 50000:60000 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
重启iptables.
在这个设置后,我的基于centos的FTP服务器便支持被动模式了。

第四部分
FTP 常见问题现象于分析
一、无法访问FTP SERVER
原因可能是
1、有防火墙过滤了ftp请求
2、客户端强制使用PASV MODE连接,而FTP SERVER不支持或没有开启PASV MODE
3、网络无法访问
二、客户端能够登陆,但是无法浏览数据
原因可能是
1、客户端处于内网,而且GATEWAY没有相关设置允许PORT MODE 访问远程FTP SERVER
2、客户端本身有网络限制了自己1024以上端口的访问(如:TCP\IP筛选)
3、客户端使用的软件没有开启或支持PASV MODE 的访问
三、有的能登陆,有的不能登陆
原因是不能登陆的客户端没有使用PASV MODE 访问FTP SERVER
FTP 访问出错排查步骤
1、确认能够在FTP SERVER 上以127.0.0.1访问自己
2、确认在FTP SERVER 上能够以使用的IP访问
3、确认客户端和服务器端网络通畅
4、确认双方的防火墙设置正确
5、确认双方的访问模式正确
FTP 常见问题的解决
一、FTP SERVER 有公网IP,且前面有防火墙
1、在防火墙上开启21端口(默认)
2、在FTP SERVER 上开启PASV MODE 支持
3、在FTP SERVER 上指定PASV MODE 使用的端口范围
4、在防火墙上开放相应的PASV MODE 所需要的端口
二、FTP SERVER 处于内网
1、如果有防火墙,参照上面的设置
2、在GATEWAY 上做端口映射,映射TCP 21端口到FTP SERVER 的21端口
3、在FTP SERVER 上指定PASV MODE 使用的端口范围
4、还需要额外的在GATEWAY 上再映射20端口和PASV MODE 使用的端口到FTP SERVER 上
三、FTP CLIENT
1、在防火墙上允许对外21端口的访问
2、在防火墙上开启1024端口以支持使用PORT MODE 从内网访问外网的FTP SERVER
3、开启FTP CLIENT 使用软件的PASV模式支持(如IE 默认是不使用PASV MODE)
说明1、PASV MODE 端口范围的作用:
当客户端以PASV方式连接服务器的时候,服务器就会在这
个端口范围里挑选一个端口出来,给客户端连接。

如果不指定,默认是随机的1024以上的端口。

说明2、IE开启PASV MODE的方法:控制面板->INTERNET选项->高级标签->启用被动FTP
总结:在架设FTP SERVER出现问题后,根据经验,用以下原则进行设置可以解决大多数问题
1、FTP SERVER 启用并指定PASV MODE 使用的端口范围,如果有防火墙在防火墙上允许这些端口的访问
2、FTP CLIENT 尽量不要使用IE,IE只是一个粗糙的FTP CLIENT 工具,默认不开启PASV MODE ,访问出错信息单一
3、FTP CLIENT 关闭TCP\IP筛选
4、尽量使用PASV MODE 访问FTP服务器,而非PORT MODE。

相关文档
最新文档