某单位计划异地部署网站副本,如图1所示,机房1是目前网站位置,机房2是网站副本位置之一,这两个机房不在同一个地理位置。由于网站数据量大,拟采用FTP方式传送数据。
图1 网站多地部署示意图
在机房2使用Serv-U(版本:6.4.0.6)架设 FTP服务器,采用默认值安装Serv-U,并设置好域、IP、用户名、口令、对应文件夹及上传下载文件权限。打开机房1运维终端的Windows文件资源管理器,在文件夹地址栏中输入“ftp://机房2FTP服务器IP地 址 /”后回车,输入用户名和口令,提示FTP文件夹错误(如图2)。
首先排查FTP服务器。打开机房2任意一台非FTP服务器的Windows文件资源管理器,通过输入“ftp://机房2FTP服务器IP地址/”检测发现FTP服务正常,排除FTP服务器故障。
其次,检查防火墙策略。从图1可以看出,要建立FTP数据传输通道,至少经过两道防火墙。询问网管员,防火墙2仅对外开放了21、80等几个常用TCP端口,防火墙1 开放的端口有 20、21、80等,确认了FTP服务端口21对外开放。
第三,排查FTP连接模式。查阅有关资料,在上述防火墙策略下,FTP连接模式应设置为主动模式。采用能指定连接模式的FTP客户端软件,如WinSCP(版本5.11.1),在新建站点界面点击“高级(A)…”按钮,在FTP站点高级设置界面的“连接”设置区取消“被动模式(P)”,保存设置后,单击“登录”按钮,提示已连接,几十秒钟后又提示失去连接(如图3),连接还是不成功。至此,可将故障定位到机房1的运维终端。
检查机房1运维终端的防火墙设置,发现专用网络和公用网络均启用了Windows防火墙。在“允许应用或功能通过Windows防火墙”对话框中添加WinSCP(如图4),问题得到彻底解决。
图2 FTP文件夹错误
图3 提示连接超时
FTP传输有主动模式与被动模式之分,这两种模式共同点是通过服务器的21端口建立命令连接,不同点是在数据连接阶段区分主动和被动。在主动模式中,服务器20端口主动与客户端(端口大于1024)建立数据传输连接;在被动模式中,服务器(端口大于1024)被动与客户端(端口大于1024)建立数据传输连接。而防火墙2仅对外开放了21、80等几个端口,但是防火墙2采用了状态检测技术,对所有主动外连建立连接状态表,只要是内部端口主动发起的连接全部放行,所以主动模式下能正常传输数据。同样原理,如果运维终端对外端口全部关闭,FTP服务器主动过来的连接也被拦截了,导致图3所示错误。
目前软件的智能化、人性化程度越来越高,出现故障时一般会有相应提示,图2中就明确提示了采用被动模式连接不成功。可根据这些提示快速找到解决方法,达到事半功倍的效果。
图4“允许应用或功能通过Windows防火墙”对话框