两权分立的FTP工作模式
工作环境:
ADSL---(219.154.214.150)NAT(10.41.221.2)-----PC(10.41.221.6/FTPSERVER)
1、映射21端口到PC,PC安装FTP服务serv-u,用serv-u是因为他可以方便的设置FTP的两种工作模式。外网发起连接为例。
PORT方式能连接,不能列目录
PASV方式能连接,不能列目录
分析:FTP支持两种模式。这两种模式被称为“标准”(或PORT,或“主动”)和“被动”(或PASV)。“标准”模式FTP客户端会向FTP服务器发送PORT命令。“被动”模式客户端会向FTP服务器发送PASV命令。这些命令是在建立FTP会话时通过FTP命令通道进行发送的。
2种模式FTP客户端都要建立一个到FTP服务器上TCP端口21的连接。客户选择大于1024的端口发起连接,此连接会建立FTP命令通道。不能列目录是因为FTP使用不同的通道来传递数据,这也是FTP不同于HTTP服务的地方,HTTP需要一条通道就可以了
2、再映射20端口到PC,serv-u默认的方式就是PORT方式。
PORT方式能连接、也能列目录、能下载文件
PASV方式能连接、不能列目录下载文件
分析:PORT方式:当FTP客户端需要接收数据(如文件夹列表或者文件)时,客户端就会通过FTP命令通道发送PORT命令。此PORT命令包含了FTP客户端在哪个端口(比如3328)上接收数据的相关信息。接下来,PC从TCP端口20发起到3328用户端口的连接,而这是一个新的连接,也许客户端防火墙会拦截。可以看出是服务器用20端口“主动”连接客户指定的端口,所以PORT方式也叫主动方式。该模式下有2个特点:
1客户是动态的端口,而服务器使用的是固定端口20,而且是服务器发起主动新连接。
2在FTP客户连接服务器的整个过程中,控制信道是一直保持连接的,而数据传输通道是临时建立的。
PASV方式不能到达是因为PASV要求服务器用动态的端口来连接,而这个端口一般在1024-5000之间,而且是用户发起连接,虽然PC开了此端口等待连接,但是NAT并没有映射这么多端口,所以通讯中断。
3关闭20端口映射,再映射10001-10004到PC
PORT方式能连接、不能列目录、不能下载文件
PASV方式能连接、不能列目录、不能下载文件
serv-u真的很帅,在设置(高级)选项中设置10001-10004,然后启动被动模式,这样就可以建立连接了。
分析:
朗月繁星也做过这个实验,实验的过程和分析被微软收录到微软的官方网站上,不过通过我的实验,发现他有个理解不全面的的地方,原因是他直接在可以见面的2台计算机上做的实验,而我把他们用NAT分开来做,更能看出问题。