FTP 工作模式
FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
Port模式:
ftp server:tcp 21 <------client:dynamic
ftp server:tcp 20 ------>client:dynamic
Pasv模式:
ftp server:tcp 21 <----client:dynamic
ftp server:tcp dynamic <----client:dynamic
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
注意:选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端,而不是在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