为FXP铺条“空中走廊”
站长空间
近日,笔者打算利用FlashFXP对某论坛两台FTP服务器上的软件资源进行FXP,但无论怎样设置都无法实现。无奈之下,只有使用FlashFXP将一台FTP服务器上的软件下载到本地硬盘,而后再上传到另一台FTP服务器。
利用这种办法所受制约实在太多,若是本地硬盘太小,那么当下载FTP服务器上的大文件时就会受到限制,当然也就无法完成上传到另一台FTP服务器上的任务。其实,要想解决这个问题,只须利用代理服务器软件CCProxy即可(下载地址:http://www.yaozhi.com/download.htm)。
设置FlashFXP
将CCProxy下载后进行安装,安装完毕后执行该程序。在打开的主界面中单击“设置”按钮,在出现的设置对话框中勾选“FTP”协议,并记住使用的端口号是“2121”(图1),单击“确定”按钮返回主界面,最后点击“启动”按钮开启CCProxy的代理服务。

1.设定代理服务
Step1:打开FlashFXP主界面,依次点击界面上的主菜单“选项→参数设置”选项,在出现的对话框中单击“连接”;
Step2:在页面上的“代理服务器”区域中,打开“类型”一栏中的下拉列表,选择列表上的“USER ftp-user@ftp-host:ftp-port”;“主机”栏目中可填入“127.0.0.1”这个IP地址;“端口”栏目中则要填入在CCProxy代理中所设定的FTP端口号“2121”;
Step3:为确保长时间进行FXP传输时不会发生传输中断的情况,可勾选“传送时发送保持活动命令”前的复选框(图2),最后单击“确定”按钮完成设置。

2.使用代理服务进行连接
Step1:回到FlashFXP主界面,依次打开“站点→站点管理器”选项,在“站点管理器”窗口中展开“FlashFXP站点”选项,选择任意一个FTP服务器;
Step2:打开右侧窗口中的“选项”卡,确保页面中的“这个连接不使用代理服务器”选项不被勾选(图3),也就是说要确认本机通过代理服务器连接该站点。

然后分别在FlashFXP中登录两台FTP服务器进行FXP操作,此时会发现两台FTP服务器上的文件都可以进行互相传输了。
提示:引起无法进行FXP数据传输的原因很多,比如FTP服务器本身不支持FXP、所处网络环境制约、用户没有进行正确的设置等。如果无法对支持FXP服务的FTP服务器进行FXP,以FlashFXP为例,可按以下步骤进行:打开FlashFXP主界面,选中FTP服务器,在右侧窗口中打开“高级”,在“交互式站点对传”区域中,分别勾选“下载(非PASV)”、“上传(PASV)”选项即可(图4)。若依然无法进行FXP,请参照本文方法。

虚拟FXP的原理
其实在这种情况下所实现的FXP,并非是两台FTP服务器之间的直接传输。之所以会实现类似于FXP的效果,是因为本机使用了CCProxy这样支持FTP Gateway 的代理服务器软件,从而使本机充当了一条可进行数据传输的“空中走廊”。虽然数据流通过该“走廊”,但并不会真正存储在本地硬盘中,而是在下载数据的同时立即进行上传。
因为不是真正的FXP,所以这种虚拟FXP的数据传输效果在很大程度上取决于本地机器所处网络环境的带宽。与真正的FXP不同之处还在于,如果本地机器停止工作,那么虚拟FXP的数据传输也会实然中止。
利用这种“虚拟FXP”的方法,可使那些无法使用FXP的用户也能在两台FTP服务器上实现类似于FXP的效果,避免了下载数据到本地硬盘后再上传数据的麻烦,从而为两台FTP服务器之间进行数据对传提供方便。
小知识:
FXP是指在两台FTP服务器之间的直接对传,也可以称为“站到站传输”(Site to Site Transfers)。FXP过程需要两台服务器均支持才可进行,它利用服务器之间的直接连接,从而实现文件的高效传输,几乎不会占用本机的带宽资源。
小知识:
PASV和PORT是FTP(File Transfer Protocol即文件传输协议)的两种工作方式。
PASV:是被动模式,其工作过程是客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端向服务器的空闲端口发送连接请求,建立一条数据链路来传送数据。
PORT:是主动模式,其工作过程是客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器主动向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据。
因为PORT方式在传送数据时,是由服务器主动去连接客户端的,所以如果客户端在防火墙或NAT网关后面,用PORT方式将无法与Internet上的FTP服务器传送文件。因此当出现这种情况时就需要使用PASV方式。目前几乎所有的FTP客户端软件都支持这两种方式。