FTP基础知识及排障方法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
在近来的工作中遇到这个问题,一台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以上才支持)。(具体请看示图)
 
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测试(略)

转载于:https://blog.51cto.com/freepeng/249028

FTP基础知识及排障方法相关推荐

  1. FTP基础知识_FTP服务端应用开发

    网络编程_进阶_FTP服务器开发 文件传输是日常生活,工作中需求量较高的一项功能,FTP可以使用户在两个已联网的计算机之间传输文件,它是互联网环境下传递文件最主要的方法. 要了解FTP的传输过程,学习 ...

  2. html clear属性值,【Web前端基础知识】clear使用方法

    [摘要] 前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页.下面是[Web前端基础知识]clear使用方法,小编建议有准备参加考试的备考生一定要合理规划时间,仔细阅读相关规定,提 ...

  3. ftp主动和被动模式_【扫盲】FTP基础知识详解

    关注我,你的眼睛会怀孕 本文主要介绍FTP的工作原理,FTP主动与被动两种工作模式. FTP 简介 FTP协议就是文件传输控制协议.它可以使文件通过网络从一台主机传送到同一网络的另一台主机上,而不受计 ...

  4. flannel vxlan工作基本原理及常见排障方法

    写在前面 最近用kubeadm鼓捣了几个cluster集群测试用,网络用的flannel.因为这些机器都不是纯净的环境(以前部署过其他的k8s或者有一些特别的设置),所以部署起来遇到了很多问题.看了下 ...

  5. java定义一个eat方法_小黄鸭系列java基础知识 | java中的方法

    前言 今天我们要探讨的问题,是java基础语法的最后一个问题,也就是java中的方法,今天主要从以下几个方面来介绍: 方法是什么(定义) 方法的分类 方法的调用 应该说,学完今天的知识,你至少应该看懂 ...

  6. 按不同vlan下发dhcp_电脑网络:交换机VLAN基础知识及基本划分方法,揭开VLAN的面纱...

    一.VLAN基础 VLAN(Virtual Local Area Network,虚拟局域网)是一种将局域网设备从逻辑上划分成一个 个网段,从而实现虚拟工作组的数据交换技术,这种技术通过在局域网数据帧 ...

  7. php5d,php挖洞基础知识篇以及防范方法

    命令注入攻击 PHP中可以使用下列5个函数来执行外部的应用程序或函数 system.exec.passthru.shell_exec."(与shell_exec功能相同) 函数原型 stri ...

  8. 3D人脸重建:从基础知识到识别/重建方法!

    | 如何快速入门三维重建(计算机视觉)? 大家好!我叫Leo. 以我个人的经验来看,首先找一篇有实现代码的经典文章来入手是最有效的方法.不管你是否有基础,都可以通过这种方式来让你快速发现自己知识点上的 ...

  9. C#基础知识整理:基础知识(5) 方法的重载

    老师都有讲课这个方法,一个老师先是在西部偏远山区,是站在教室里木头的黑板前讲课:过了几年表现好,调到了稍微好点的城市里,是坐在教室前用多媒体设备讲课:又过了几年考博士了,毕业后继续当老师,不过现在是躺 ...

最新文章

  1. 【拓扑排序】【bitset】Gym - 101128A - Promotions
  2. pyqt5 QMainWindow 居中
  3. 几款开源的数据挖掘工具
  4. bat修改文件内容_在win10系统中一键修改MapGIS67系统库背景色
  5. 在linux系统JDK安装中文字体
  6. 文件下载乱码问题分析与解决
  7. 求生之路 服务器优化参数,《求生之路2》服务器及网络参数优化指南
  8. 1105: 判断友好数对(函数专题)
  9. vs 如何将源文件转换成可执行文件_如何将图片文件转换成PDF文件?
  10. 广西国际商务职业技术学院官网计算机功课,2019—2020学年秋季学期线上线下混合式教学课程听课情况汇报...
  11. mysql创建有参数的函数,7-3:MySQL 创建不带参数的自定义函数
  12. MS17-010 永恒之蓝漏洞利用方式
  13. 红警安装中出现的问题 win10,黑屏和无法联机对战(缺少ipx协议)的问题。
  14. 企业微信分享小程序功能
  15. 十年,MongoDB从一片小绿叶长成一颗大树
  16. bert做文本摘要_BERT文本摘要
  17. Apple开启双重认证过程
  18. node文件系统 常用文件处理方法
  19. 百度地图 JavaScript API ios不能使用情况
  20. 【转】苹果警告中国开发者:不要绕过APP反追踪功能

热门文章

  1. php 发送表格,PHP邮件表格,带有使用AJAX发送的单选按钮
  2. 百练OJ:2714:求平均年龄
  3. 信息系统项目管理师优秀论文:项目沟通管理202111
  4. Oracle 排序中使用nulls first 或者nulls last 语法
  5. java 根据当前时间获得一周日期
  6. redis 配置文件示例
  7. Android中设置RecyclerView的每一个item的单项点击事件
  8. Android入门教程免费获取
  9. Java开发中模拟接口工具moco的使用
  10. SpringBoot+MyBatisPlus整合时提示:Invalid bound statement(not found):**.dao.UserDao.queryById