FTP工作原理及内网用端口映射方式建FTP的注意事项 
--------------------------------------------------------------------------------
发表时间: 2007-3-24 22:00:51 被阅览数: 2317 次 作者: 腾达电脑  
文字 〖 大 中 小 〗  自动滚屏(右键暂停)  您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇文章。所谓磨刀不误砍柴功,掌握这些基础知识,会令您事半功倍。否则,很可能折腾几天,最后一事无成。
FTP基础知识
FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

FTP服务器端的注意事项
一、FTP服务器是公网IP,用公网动态域名;或是内网IP,在网关上开端口映射或用内网专业版TrueHost1、服务器如果安装了防火墙,请记住要在防火墙上打开FTP端口(默认是21)。

2、所有FTP服务器软件都支持PORT方式。至于PASV方式,大部分FTP服务器软件都支持。支持PASV方式的FTP服务器软件,也可以设置为只工作在PORT方式上。3、为了PASV方式能正常工作,需要在FTP服务器软件上为PASV方式指定可用的端口范围。此外,还要在服务器的防火墙上打开这些端口。当客户端以PASV方式连接服务器的时候,服务器就会在这个端口范围里挑选一个端口出来,给客户端连接。
FTP客户端的注意事项
请注意:选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端,而不是在FTP服务器。
一、客户端只有内网IP,没有公网IP
从上面的FTP基础知识可知,如果用PORT方式,因为客户端没有公网IP,FTP将无法连接客户端建立数据链路。因此,在这种情况下,客户端必须要用PASV方式,才能连接FTP服务器。大部分FTP站长发现自己的服务器有人能登录上,有人登录不上,典型的错误原因就是因为客户端没有公网IP,但用了IE作为FTP客户端来登录(IE默认使用PORT方式)。
作为FTP站长,有必要掌握FTP的基础知识,然后指导您的朋友如何正确登录您的FTP。
二、客户端有公网IP,但安装了防火墙
如果用PASV方式登录FTP服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,没有问题。反过来,如果用PORT方式登录FTP服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被防火墙拦截。如果要用PORT方式登录FTP服务器,请在防火墙上打开1024以上的高端端口。

四、常见的FTP客户端软件PORT方式与PASV方式的切换方法。
大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。
在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。
IE:工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。
CuteFTP:
Edit -> Setting -> Connection -> Firewall -> “PASV Mode”

File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode”

FlashGet:工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”
FlashFXP:
选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式”

站点管理 -> 对应站点 -> 选项 -> “使用被动模式”

快速连接 -> 切换 -> “使用被动模式”
 
LeechFTP:
Option -> Firewall -> Do not Use
五、请尽量不要用IE作为FTP客户端

IE只是个很粗糙的FTP客户端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登录FTP的时候,看不到登录信息。在登录出错的时候,无法找到错误的原因。在测试自己的FTP网站的时候,强烈建议不要使用IE。
一、为什么没有公网IP,也能使用PORT方式登录FTP?
NAT网关的工作方式是在TCP/IP数据包的包头里找局域网的源地址和源端口,替换成网关的地址和端口。对数据包里的内容,是不会改变的。而使用PORT方式登录FTP的时候,IP地址与端口信息是在数据包里面的,而不是在包头。因此,没有公网IP,使用PORT方式是无法从internet上的ftp服务器下载数据的。 
但是,极少数的NAT网关也支持PORT方式。这些NAT网关连数据包里面的内容都扫描,扫描到PORT指令后会替换PORT方式的IP和端口。在这种NAT网关下面,用PORT方式就没问题了。不过,这些网关也只扫描21端口的数据包,如果FTP服务器不是用默认的21端口,也无法使用PORT方式。
内网用端口映射方式建FTP的注意事项根据上面的FTP原理,在只映射一个端口的情况下,只能要求来访者使用PORT方式来访问你的FTP服务器,但这样的话就限制了内网用户。
而如果映射很多个端口,就可以使用PASV方式了
但还要从FTP服务器上作一些设置
比如,从网关上映射21端口和5000-5020端口到你的计算机21端口和5000-5020端口,
在Serv-U的Local Server -> Settings -> Advanced -> PASV port range里,填入给PASV模式使用的端口范围5000-5020,然后在
你建立的域--设置--高级-允许被动模式数据传输,使用IP 里面填入你的网关在公网的IP地址。
还有,用端口映射方式建FTP是看不到来访者的IP地址,只能看到网关在内网中的IP地址。(应该是这样,但也不一定,毕竟我没试过)
这样就不能限制一个IP的连接数了。

转载于:https://www.cnblogs.com/zhiji6/archive/2009/11/18/1649231.html

FTP工作原理及内网用端口映射方式建FTP的注意事项相关推荐

  1. (SVN笔记)https内网IP端口配置SVN服务端+内网SVN客户端联合使用

    目录 1.前言 2.SVN服务端设置 3.开始使用SVN (1)新建版本库 (2)迁入项目到SVN服务端 (3)检索项目/拉取项目check out (4)提交代码commit (5)更新代码upda ...

  2. (SVN笔记)https外网IP端口映射内网IP端口访问SVN服务端

    目录 1.前言 2.花生壳优点与相关技术 3.设置SVN服务器 4.外网IP映射内网IP访问SVN Server 5.总结 1.前言         上一章介绍了局域网内https服务端配置与客户端联 ...

  3. FRP内网穿透映射本地内网80端口到云服务器

    FRP内网穿透映射本地内网80端口到云服务器 如题,我的配置中本地服务器和云服务器都为ubuntu20.04,但CentOS同样适用. PS:怎么把网页部署到本地80端口请找别的教程,本文重点在内网穿 ...

  4. 【计算机网络】应用层 : FTP 文件传输协议 ( FTP 客户端 和 服务器 | FTP 工作原理 | FTP 传输模式 )

    文章目录 一.文件传送协议 二.FTP 客户端 和 服务器 三.FTP 工作原理 四.FTP 传输模式 一.文件传送协议 文件传送协议 : 文件传送协议 FTP ( File Transfer Pro ...

  5. ESXI + pfsense + 公网ip ,实现内网服务器端口映射

    暴露内网服务器端口的方法有很多,之前介绍过ngrok和frp,今天我们用 ESXI +pfsense 来做下. 0. 准备材料 ESXI服务器一台,双网卡,版本5.5以上 公网ip一个(有固定IP是最 ...

  6. 外网访问内网80端口【内网穿透】

    微信公众号开发.本地搭建web服务器,或者在本地服务器搭建了IIS或apache等web网站时,需要解决80端口映射的问题. 但很多人在路由器映射80端口的时候,会出现映射失败的情况.造成这种情况的原 ...

  7. 内网ADSL 端口映射 提高BT下载速度

    内网ADSL 端口映射 提高BT下载速度 一直以来有很多ADSL用户在寻找如何做端口映射,使自己的BT下载速度能有一个质的提高. 这里收集整理了一些网上文章 希望对广大淫民有所帮助 现在很多关于端口映 ...

  8. ssh 使用新法:公网(合法 ip)用户访问内网(私有 ip)服务器(http,ftp,sshd,cvs...),

    内网的朋友苦于没有合法 ip,不能对外提供 internet 服务.解决方案很多,可以通过在网关做端口映射,或其他的辅助软件等. 本文介绍两种比较简单实用的方法,利用 ssh 这个强大的工具. (以下 ...

  9. ssh 使用新法:公网(合法 ip)用户访问内网(私有 ip)服务器(http,ftp,sshd,cvs...),内网的朋友不妨一看。

    原文网址:http://www.linuxsir.org/bbs/thread37295.html 内网的朋友苦于没有合法 ip,不能对外提供 internet 服务.解决方案很多,可以通过在网关做端 ...

最新文章

  1. 通俗解释协方差与相关系数
  2. 经典算法题 -- 判断单链表是否成环及寻找成环节点
  3. 硬核图解| Kafka 如何保证消息不丢失?
  4. 图解算法之排序算法(3)——插入排序
  5. html单元格选中状态,UITableViewCell 设置单元格选中后只显示一个打勾的状态
  6. mybatis 实现查询商品列表的分页
  7. 模块“dm.dll”已加载,但对 DllRegisterServer 的调用失败,错误代码为 0x80020009
  8. java公司薪酬管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  9. HttpSession session用法详解
  10. css制作类似优惠券的卡片样式(vue)
  11. 国科大学习资料--人工智能原理与算法-第四次作业解析(学长整理)
  12. 基于MPC的移动机器人轨迹跟踪控制qpOASES例程
  13. Java1.8接口方法都是抽象,判断(1分) Java接口中所有的方法都是抽象的。
  14. yum -- Failed connect to mirrors.aliyuncs.com:80; No route to host
  15. CentOS7.2 Django + uwsgi + Nginx 部(cǎi )署(kēng)指(zhī)南(lǜ)
  16. 格式化数据恢复怎么做?超实用的3种方法在这!
  17. 入门级:GitHub和Git超超超详细使用教程!
  18. Tomcat 2022-7-27
  19. 怎样恢复回收站中已被删除的文件
  20. 配置基本的tabBar--底部导航配置属性

热门文章

  1. 用python写一个带界面的剑灵取色卡刀工具
  2. 【Oracle】查询题
  3. 三国杀开源系列之九-vscode调试electron
  4. 腾讯面试官:矩阵中的路径怎么求?
  5. 得生态者得天下,亚马逊云科技开启“无边界”合作伙伴模式
  6. 华为p10手机安装linux,matebookD安装linux系统总结
  7. android架桥游戏,抖音搭桥小能手
  8. Android菜鸟笔记-实现一键重启和关机
  9. 从技术出发 | 有孚网络吕鑫:生信海量数据管理的实践与探讨
  10. mysql连接字符串参数大全