FTP基础知识及排障方法

FTP 基础知识及排障方法
 
在近来的工作中遇到这个问题,一台 Server-U FTP 服务器一启动操作系统自带的防火墙后,使用 IE 和资源管理器无法访问 FTP 站点。但是使用命令行又可以访问,对此很是郁闷。于是便花时间来进行处理此事,最终得以解决。下面我便介绍一下 FTP 相关知识及我处理过程。
 
一、 FTP 基础知识
FTP File Transfer Protocol (文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于 HTTP FTP 协议要复杂得多。复杂的原因,是因为 FTP 协议要用到两个 TCP 连接,一个是命令链路,用来在 FTP 客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
 
FTP 协议有两种工作方式: PORT 方式和 PASV 方式,中文意思为主动式和被动式。
PORT (主动)方式的连接过程是:客户端向服务器的 FTP 端口(默认是 21 )发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用 PORT 命令告诉服务器: 我打开了 **** 端口,你过来连接我 。于是服务器从 20 端口向客户端的 **** 端口发送连接请求,建立一条数据链路来传送数据。
 
PASV (被动)方式的连接过程是:客户端向服务器的 FTP 端口(默认是 21 )发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用 PASV 命令告诉客户端: 我打开了 **** 端口,你过来连接我 。于是客户端向服务器的 **** 端口发送连接请求,建立一条数据链路来传送数据。
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而 FTP 的复杂性就在于此。
 
二、 FTP 服务器端的注意事项
2.1 FTP 服务器是公网 IP ,用公网静态域名
A 、服务器如果安装了防火墙,请记住要在防火墙上打开 FTP 端口(默认是 21 )。
B 、所有 FTP 服务器软件都支持 PORT 方式。至于 PASV 方式,大部分 FTP 服务器软件都支持。支持 PASV 方式的 FTP 服务器软件,也可以设置为只工作在 PORT 方式上。
C 、为了 PASV 方式能正常工作,需要在 FTP 服务器软件上为 PASV 方式指定可用的端口范围(设置方法)。此外,还要在服务器的防火墙上打开这些端口。当客户端以 PASV 方式连接服务器的时候,服务器就会在这个端口范围里挑选一个端口出来,给客户端连接。
 
2.2 FTP 服务器是内网 IP
这种情况下, FTP 服务器不需要做特殊设置,只要支持 PASV 方式就可以了。大部分 FTP 服务器软件都支持 PASV 方式。
 
三、 FTP 客户端的注意事项
请注意:选择用 PASV 方式还是 PORT 方式登录 FTP 服务器,选择权在 FTP 客户端,而不是在 FTP 服务器。
3.1 、客户端只有内网 IP ,没有公网 IP
 
从上面的 FTP 基础知识可知,如果用 PORT 方式,因为客户端没有公网 IP FTP 将无法连接客户端建立数据链路。因此,在这种情况下,客户端必须要用 PASV 方式,才能连接 FTP 服务器。很多 FTP 管理员发现自己的服务器有人能登录上,有人登录不上,典型的错误原因就是因为客户端没有公网 IP ,但用了 IE 作为 FTP 客户端来登录( IE 默认使用 PORT 方式)。
 
3.2 、客户端有公网 IP ,但安装了防火墙
如果用 PASV 方式登录 FTP 服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,没有问题。反过来,如果用 PORT 方式登录 FTP 服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被防火墙拦截。如果要用 PORT 方式登录 FTP 服务器,请在防火墙上打开 1024 以上的高端端口。
 
 
3.3 、常见的 FTP 客户端软件 PORT 方式与 PASV 方式的切换方法。
 
大部分 FTP 客户端默认使用 PASV 方式。 IE6.0 以后默认也使用 PASV 方式。 XP 操作系统的资源管理器打开 FTP 默认也使用 PASV 方式(我的电脑是这样的)
在大部分 FTP 客户端的设置里,常见到的字眼都是 “PASV” 被动模式 ,极少见到 “PORT” 主动模式 等字眼。因为 FTP 的登录方式只有两种: PORT PASV ,取消 PASV 方式,就意味着使用 PORT 方式。
IE 查看 FTP 模式:
工具 -> Internet 选项 -> 高级 -> “ 使用被动 FTP” (需要 IE6.0 以上才支持)。(具体请看示图)
FTP基础知识及排障方法_第1张图片
 
3.4 、请尽量不要用 IE 作为 FTP 客户端
 
IE 只是个很粗糙的 FTP 客户端工具。首先, IE6.0 以下的版本不支持 PASV 方式;其次, IE 在登录 FTP 的时候,看不到登录信息。在登录出错的时候,无法找到错误的原因。在测试自己的 FTP 网站的时候,强烈建议不要使用 IE 。我常使用资源管理器。
 
四、解决问题
从上面的知识部分的介绍,现在来说一下实际的环境。
服务器端:有一个公网 IP 地址直接与 internet 相连,前端出口的硬件防火墙只做一起简单的配置,因此需要在服务器开启操作系统自带的软件防火墙来保护服务器。
客户端:绝大部分是没有公网 IP 的企业内部用户,操作系统多为 windows XP 以上版本。小量用户是安装有 windows Server 2003 的具有公网 IP 地址的服务器。
结合实际环境和 FTP 知识得出在 FTP 服务器需要打开主动和被动两种模式来供客户端使用。而我开始只在软件防火墙上开启了主动模式。在这种情况下,使用命令行和部分 FTP 客户端软件可以进行连接。而常用的 IE ,资源管理器和部分的 FTP 客户端软件不能连接。我们需要在 FTP 服务器软件开启被动模式,并在防火墙开放相应端口。
 
FTP 服务器软件是 Server-U.
4.1 被动模式配置操作:
A, 打开 Serv-U 的管理界面:开始 程序 ―Serv-U---Serv-U administrator.
B, 配置被动模式: Serv-U 服务器 本地服务器 配置 --- 高级 --- 在服务器栏的 PASV 端口范围中输入你分配给 FTP 端口范围(此处我输入 6000-6005 -- 应用。(具体请看示图)
4.2 软件防火墙的设置操作:
A, 打开防火配置界面:右击“网上邻居” 属性 右击“本地连接” 属性 在本地连接属性页上点击 高级 ”--- windows 防火墙栏中点击设置 --- windows 防火墙页上点击 例外
B, 添加 FTP 被动端口:添加端口 输入端口名称(我输入 FTP 6000 -- 在端口号中输入需要开放的相应端口(此处我输入 6000 --- 由于客户端比较分散,此处我没有限制源地址的范围,而直接点击 确定 。按上述的方法将其它开放的 FTP 添加到例外中。(具体请看示图)
C, 启用防火墙:在 windows 防火墙 页中点击常规, --- 点击 启用
 
4.3 客户端 FTP 测试(略)
 

你可能感兴趣的:(职场,休闲,排障方法,FTP基础知识)