浅析FTP的主动模式与被动模式
最近在工作中遇到客户端不能访问FTP服务器情况,用ping命令测试网络正常,后来发现是FTP工作模式设置不正确所致,切换FTP工作模式后访问正常。那么什么是FTP的主动模式和被动模式呢?FTP(文件传输协议)是运行在TCP协议上的一个应用协议,它采用两个TCP连接来传输一个文件。两个TCP连接为控制连接和数据连接,默认情况下端口21用于控制连接,端口20用于数据连接。主动模式(PORT)与被动模式(PASV)在建立控制连接方式上是一样的,区别在于建立数据连接方式的不同。
主动模式(PORT)的连接过程:
1.客户端打开一个临时端口N并用此端口连接服务器的21端口,建立控制连接。
2.客户端打开N+1端口被动等待服务器连接。
3.客户端用PORT命令从控制连接上将N+1端口号发向服务器,告诉服务器“我的N+1端口已打开,快来连接”。
4.服务器从控制连接上接收到命令后,用20端口连接客户端的N+1端口,建立数据连接。
被动模式(PASV)的连接过程:
1.客户端打开一个临时端口N并用此端口连接服务器的21端口,建立控制连接。
2.客户端打开N+1端口。
3.客户端从控制连接发送PASV命令到服务器,告诉服务器“我已经准备好了,快告诉我向哪个端口连接”。
4.服务器接收到PASV命令后打开一个非特权端口M。
5.服务器用PORT命令从控制连接上将M端口号发向客户端。
6.客户端收到PORT命令后用N+1端口连接服务器的M端口,建立数据连接。
主动模式是服务器主动连接客户端的N+1端口,在客户端开启防火墙禁止外部连接访问N+1端口时,FTP连接失败;被动模式是客户端主动连接服务器的M端口,在服务器端开启防火墙禁止外部连接访问M端口时,FTP连接也失败。另外,有时服务器端为了安全考虑会禁止使用被动模式,这种情况下客户端就必须用主动模式访问。
IE浏览器切换FTP主/动模式的方法:工具——>Internet选项——>高级——>使用被动FTP(用于防火墙和DSL调制解调器的兼容)前面的勾打上为被动模式,取消为主动模式。下图为IE8的截图。
页:
[1]