各位网络高手,我想了解一下关于FTP的基本知识。

分类: 电脑/网络
问题描述:

谢谢大家了,当然我也会把我知道的,和大家共享的。

解析:

FTP基础知识

您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇文章。所谓磨刀不误砍柴功,掌握这些基础知识,会令您事半功倍。否则,很可能折腾几天,最后一事无成。

FTP基础知识

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。

当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了****端口,你过来连接我”。于是服务器从20端口向客户端的****端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。

当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了****端口,你过来连接我”。于是客户端向服务器的****端口发送连接请求,建立一条数据链路来传送数据。

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

FTP服务器端的注意事项

一、FTP服务器是公网IP,用公网动态域名;或是内网IP,用内网专业版TrueHost

1、服务器如果安装了防火墙,请记住要在防火墙上打开FTP端口(默认是21)。

2、所有FTP服务器软件都支持PORT方式。至于PASV方式,大部分FTP服务器软件都支持。支持PASV方式的FTP服务器软件,也可以设置为只工作在PORT方式上。

3、为了PASV方式能正常工作,需要在FTP服务器软件上为PASV方式指定可用的端口范围(设置方法)。此外,还要在服务器的防火墙上打开这些端口。当客户端以PASV方式连接服务器的时候,服务器就会在这个端口范围里挑选一个端口出来,给客户端连接。

二、FTP服务器是内网IP,用内网动态域名标准版cm*natpro*y

这种情况下,FTP服务器不需要做特殊设置,只要支持PASV方式就可以了。大部分FTP服务器软件都支持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以上的高端端口。

三、连接用内网标准版cm*natpro*y搭建的FTP服务,必须要用PASV方式。连接任何公网FTP服务器、或用内网专业版TrueHost搭建的FTP服务器,PORT方式和PASV方式都可以使用。

当然,使用PORT方式的时候,还要满足上面的两个条件。

四、常见的FTP客户端软件PORT方式与PASV方式的切换方法。

大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。

在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。

IE:

工具 -> Inter选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。

CuteFTP:

Edit -> Setting -> Connection -> Firewall -> “PASV Mode”



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

FlashGet:

工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”

FlashFTP:

选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式”



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



快速连接 -> 切换 -> “使用被动模式”

LeechFTP:

Option -> Firewall -> Do not Use

五、请尽量不要用IE作为FTP客户端

IE只是个很粗糙的FTP客户端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登录FTP的时候,看不到登录信息。在登录出错的时候,无法找到错误的原因。在测试自己的FTP网站的时候,强烈建议不要使用IE。

FTP建站的详细配置过程

请参考这个网页的说明来配置:

使用Serv-U建立FTP网站

高级话题

一、为什么没有公网IP,也能使用PORT方式登录FTP?

NAT 网关的工作方式是在TCP/IP数据包的包头里找局域网的源地址和源端口,替换成网关的地址和端口。对数据包里的内容,是不会改变的。而使用PORT方式登录FTP的时候,IP地址与端口信息是在数据包里面的,而不是在包头。因此,没有公网IP,使用PORT方式是无法从inter上的ftp服务器下载数据的。

但是,极少数的NAT网关也支持PORT方式。这些NAT网关连数据包里面的内容都扫描,扫描到 PORT指令后会替换PORT方式的IP和端口。在这种NAT网关下面,用PORT方式就没问题了。不过,这些网关也只扫描21端口的数据包,如果FTP 服务器不是用默认的21端口,也无法使用PORT方式。

二、内网可以用PORT访问其他FTP,为什么不能用PORT访问自己的TrueHost FTP?

下面要讨论的问题,只是为了说明一些原理,是不影响实际使用的。如果您没有兴趣深究这些原理,不必花时间看。

内网用户通过支持PORT方式的NAT网关,访问自己本机利用TrueHost建立的FTP服务器,FTP命令链路的建立过程如下:

FTP客户端

10.10.0.1

端口*** <==> ISP NAT网关

61.144.1.2

端口**** <==> TH服务器

*.*.*.*

端口21 <==> TH客户端 <==> 用户FTP服务器

10.10.0.1

端口21

FTP客户端通过ISP的NAT网关、科迈TrueHost服务器、TrueHost客户端,连接用户本机的FTP服务器的21端口。

当需要下载数据的时候,FTP客户端通过这条命令链路,向FTP服务器发送PORT命令。假设命令为:

PORT 10,10,0,1,30,4 (即IP=10.10.0.1 端口=30*256+4=7684)

当命令通过ISP的NAT网关的时候,NAT网关判断目的端口是21,并且是PORT命令,于是,修改命令里的IP和端口,替换为自己的IP和端口,比如:

PORT 61,144,1,2,50,6 (即IP=61.144.1.2 端口=50*256+6=12806)

用户的FTP服务器最终收到的是上面这个PORT命令。于是,FTP服务器向这个IP和端口发送连接请求,建立数据链路。

用户FTP服务器

10.10.0.1

端口20 <==> ISP NAT网关

61.144.1.2

端口12806 <==> FTP客户端

10.10.0.1

端口7684

但是,因为NAT网关的公网IP只能接收外来的连接请求。就是说,61.144.1.2:12806只能接收其他公网IP的连接请求,对于从NAT内部(10.10.0.1:20)发起的连接请求,是无法建立连接的。为什么?原因很简单,因为内网IP要访问外网,必须要通过NAT建立映射。于是FTP数据链路无法建立。于是,用户无法在自己的机器上通过21端口访问自己的TrueHost FTP。

我们再来看看,如果FTP端口不是21,比如是22,会发生什么情况呢?在FTP客户端发送PORT命令的时候,NAT网关检测到目标端口是22,因为支持PORT的 NAT网关只监视目的端口是21的数据包,发现目的端口是22的数据包,不做任何处理,完全放行。于是FTP服务器收到的PORT命令依然是PORT 10,10,0,1,30,4。于是FTP服务器向这个IP和端口发送连接请求。

用户FTP服务器

10.10.0.1

端口20 <==> FTP客户端

10.10.0.1

端口7684

这种情况下命令链路就可以建立起来了。而且是等于本机连接本机,速度飞快。

综上所述,内网用户无法用PORT方式通过21端口访问自己的TrueHost FTP服务器。如果FTP端口不是21,则可以访问,而且实际上是本机连接本机。

上面的文字,仅仅是为了说明一些原理,不影响实际使用。如果本机访问本机,还要通过FTP的话,就有画蛇添足之嫌了。

  • 璇鍚勪綅濂藉績鐨勭綉鍙,鏈夌粡楠岀殑浜哄+杩涙潵涓哄皬寮浜嗚В涓鐣
    绛旓細3 鎴戞兂璁╄嚜宸辫瘉鏄庡墠涓浠g殑閭d簺浼犵粺涓浗鎬濇兂锛岃櫧鐒舵垜涓嶆槸浠涔堜紵浜猴紝涓嶈兘鏀瑰彉浠讳綍瑙傜偣锛屼絾鏄仛濂借嚜宸辨劅鏌撲粬浜轰篃鏄釜涓嶉敊鐨勯夋嫨銆4 鎴戞槸瀹炰簨姹傛槸鐨勪汉锛屾垜鍋氫换浣曚簨鎴戦兘浼氱簿鐩婃眰绮撅紝鍕囦簬鍒涙柊銆傛垜鐨勭溂鍏夊拰鑳嗚瘑涓嶈繙绂讳紬浜锛屾垜鎯瓒呰秺鑷繁銆5 鍥犱负缃戠粶鐨勬矡閫氬苟涓嶈兘浜嗚В瀵规柟 浠ヤ笂鐐圭偣锛岄兘璁╂垜闈炲父鎯宠璇嗕綘銆
  • 缃戠粶楂樻墜甯繖鐪嬩笅鎴戠殑瀹藉甫闂
    绛旓細鎵緄sp浜嗚В鎯呭喌锛屽鏋滀笉鏄數淇★紝涔熸病鏈夎В閲婏紝杩欐槸姝e父鎯呭喌锛岃鑷繁鍘讳簡瑙c傜櫨搴﹁创鍚ч噷鏈夊緢澶氳繖鏍风殑鏇濆厜銆
  • 鎴戞兂浜嗚В鍏充簬FTP鐨勭煡璇嗐傝阿璋楂樻墜浠!!
    绛旓細绠鍗曞湴璇达紝鏀寔FTP鍗忚鐨勬湇鍔″櫒灏辨槸FTP鏈嶅姟鍣紝涓嬮潰浠嬬粛涓涓浠涔堟槸FTP鍗忚锛堟枃浠朵紶杈撳崗璁級涓鑸潵璇达紝鐢ㄦ埛鑱旂綉鐨勯瑕佺洰鐨勫氨鏄疄鐜颁俊鎭叡浜紝鏂囦欢浼犺緭鏄俊鎭叡浜潪甯搁噸瑕佺殑涓涓唴瀹逛箣涓銆Internet涓婃棭鏈熷疄鐜颁紶杈撴枃浠讹紝骞朵笉鏄竴浠跺鏄撶殑浜嬶紝鎴戜滑鐭ラ亾 Internet鏄竴涓潪甯稿鏉傜殑璁$畻鏈虹幆澧冿紝鏈塒C锛屾湁宸ヤ綔绔欙紝鏈...
  • 璇缃戠粶楂樻墜甯府鎴戙
    绛旓細瑕佷簡瑙f晠闅滃師鐞,鎴戜滑鍏堟潵浜嗚В涓涓ARP鍗忚銆傚湪灞鍩熺綉涓,閫氳繃ARP鍗忚鏉ュ畬鎴怚P鍦板潃杞崲涓虹浜屽眰鐗╃悊鍦板潃(鍗矼AC鍦板潃)鐨勩侫RP鍗忚瀵缃戠粶瀹夊叏鍏锋湁閲嶈鐨勬剰涔夈傞氳繃浼營P鍦板潃鍜孧AC鍦板潃瀹炵幇ARP娆洪獥,鑳藉鍦ㄧ綉缁滀腑浜х敓澶ч噺鐨凙RP閫氫俊閲忎娇缃戠粶闃诲銆侫RP鍗忚鏄淎ddress Resolution Protocol鈥(鍦板潃瑙f瀽鍗忚)鐨勭缉鍐欍傚湪灞鍩熺綉涓,...
  • 鎴戞槸ADSL鐨勭敤鎴(涓浗鐢典俊),鎴戞兂闂涓涓嬮珮鎵甯歌鐨凙DSL鐨勬晠闅滄湁鍝簺?_鐧 ...
    绛旓細濡傛灉涓鍛虫妸鏁呴殰鐨勫浜庤繖鏍风殑鏁呴殰,涓瀹氳浜嗚ВMSN瑙嗛鑱婂ぉ鎵闇瑕佺殑缃戠粶鐜,鏌ユ壘鏁呴殰鍘熷洜瑕佸交搴,鑰屼笉鏄仠鐣欏湪琛ㄩ潰銆 鍥涖丄DSL瀹藉甫鏃犺寰嬬殑鎺夌嚎 鏁呴殰琛ㄧ幇:涓鍙板垰鍒氳喘涔扮殑鍝佺墝鏈,鐢宠浜嗗甯︿箣鍚,鍦ㄤ娇鐢ㄨ繃绋嬩腑,鍙戠幇瀹藉甫杩炴帴缁忓父浼氳嚜鍔ㄦ柇寮,閲嶆柊鎷ㄥ彿鍗冲彲鎭㈠姝e父銆傛帀绾垮悗,瑙傚療Modem鎸囩ず鐏殑鐘舵,鍙戠幇鏂嚎鐨勮繃绋嬩腑,ADSL...
  • 鍏充簬缃戠粶娓告垙宸ヤ綔瀹(瀹岀編鍥介檯),鎯充簡瑙d竴涓
    绛旓細绉佷汉鐨勫皬鍨嬬綉娓稿伐浣滃杩愪綔涓鑸敱鍒涘浜+涓氬姟鍛+鎺ㄥ箍鍛+鑻ュ共涓存椂宸ョ粍鎴愶紒濡傛灉鏄闈㈡墜鐨勮瘽锛屽氨鏈繀闇瑕侀偅涔堝浜轰簡锛1.鍒涘浜哄氨涓嶇敤澶氳浜嗭紝寰堝鍒濇閮芥槸鍑犱釜浜哄悎浼欑殑 2.涓氬姟鍛樹富瑕佹槸璐熻矗瀹㈡埛鐨勬悳瀵诲強娲借皥锛堟湁涓撲笟涓氬姟鍛樼殑澶氫负涓昏惀鍥藉娓告垙椤圭洰鐨勶紝褰撶劧杩橀渶瑕佺炕璇戯級3.鎺ㄥ箍鍛樹富瑕佽礋璐e浗鍐呭浗闄缃戠粶涓婄殑...
  • 鍏充簬鐢佃剳瀹藉甫杩炴帴闂~!!鎯充簡瑙d竴涓
    绛旓細鐩墠璺敱鍣ㄥ凡缁忓箍娉涘簲鐢ㄤ簬鍚勮鍚勪笟锛屽悇绉嶄笉鍚屾。娆$殑浜у搧宸茬粡鎴愪负瀹炵幇鍚勭楠ㄥ共缃戝唴閮ㄨ繛鎺ャ侀骞茬綉闂翠簰鑱斿拰楠ㄥ共缃戜笌浜掕仈缃戜簰鑱斾簰閫氫笟鍔$殑涓诲姏鍐涖傛墍璋撹矾鐢卞氨鏄寚閫氳繃鐩镐簰杩炴帴鐨缃戠粶鎶婁俊鎭粠婧愬湴鐐圭Щ鍔ㄥ埌鐩爣鍦扮偣鐨勬椿鍔ㄣ備竴鑸潵璇达紝鍦ㄨ矾鐢辫繃绋嬩腑锛屼俊鎭嚦灏戜細缁忚繃涓涓垨澶氫釜涓棿鑺傜偣銆傞氬父锛屼汉浠細鎶婅矾鐢卞拰浜ゆ崲...
  • 姹傚姪:缃戠粶娴侀噺,缃戠粶楂樻墜杩
    绛旓細濡傝繃鏄叾浠栫殑绋嬪簭锛岀湅璁よ瘑涓嶈璇嗭紝涓嶈璇嗙粨鏉熸帀锛夈傚彟澶栨垜杩鎯充簡瑙d竴涓浣犵殑鏈哄櫒鐨勯厤缃紝浣犺鐨勪粈涔堢郴缁燂紝浣犵殑鏈哄櫒鏈杩戞湁娌℃湁澶ф壒閲忕殑鏉ュ洖浼犳枃浠讹紝杩樻湁浣犵殑纭洏鐏槸涓嶆槸甯镐寒銆傚鏋滆兘璇存槑浣犵殑鏈哄櫒浠庝粈涔堟椂鍊欏紑濮嬪嚭鐜拌繖鏍风殑闂鐨勮瘽锛岄偅灏辨洿濂戒簡銆傝繕鏈変粈涔堥棶棰樺彲浠ュ啀璺熸垜鑱旂郴锛屾垜瀛︾殑涓撲笟灏辨槸璁$畻鏈恒
  • 楂樻墜鏉ヤ粙缁涓涓嬬綉缁宸ョ▼甯 璋㈣阿
    绛旓細杩欏氨鏄綉缁滃伐绋嬪笀銆傝屽浜庣綉缁滅鐞嗗憳鏉ヨ锛屼粬涓昏宸ヤ綔鏄浜庣綉缁滅殑缁存姢銆備粬鐨勫伐浣滄病鏈夊伐绋嬪笀閭d箞鐨勯夯鐑︼紝涓嶉渶瑕佷翰鑷粠澶村畨瑁咃紝浠栨槸鐜版垚鐨勫幓绠$悊涓庣淮鎶ょ綉缁溿傛瘮濡傚綋缃戠粶鍑虹幇榧撴帉鏃朵粬灏遍渶瑕佸幓妫鏌ユ槸鍝噷鍑虹幇鐨勯棶棰橈紝骞朵笖鎺掗櫎鏁呴殰銆傜幇鍦ㄦ槑鐧戒簡鍚楋紵鑷充簬涔︾殑璇濓紝鎴戝缓璁綘鍘绘柊鍗庝功搴楃湅鐪嬶紝鍥犱负鍏充簬缃戠粶宸ョ▼鏂归潰鐨...
  • 姹傚姪缃戠粶绠$悊楂樻墜
    绛旓細妤间笂鐨勮瑙fゼ涓荤殑鎰忔濅簡銆傛ゼ涓绘槸鎯鐭ラ亾宸ヤ綔浜ゆ帴閮借娉ㄦ剰浜涗粈涔堬紝涓嶆槸浣滀负缃戠粶绠$悊鍛樺簲璇ユ帉鎻′簺浠涔堬紒浣滀负缃戠粶绠$悊鍛樼殑宸ヤ綔浜ゆ帴锛屼竴瀹氳娉ㄦ剰浠ヤ笅鏂归潰锛1銆侀鍏堢鐞嗗憳浣跨敤鐨勭數鑴戝緱浜ょ粰浣狅紝骞朵笖鏍稿濂芥満鍣ㄩ厤缃锛屼簡瑙鐜版湁鏈哄櫒閮借繍琛屼簡鍝簺蹇呭鐨勮蒋浠讹紝濡備綍瀹夎銆佸浠芥暟鎹佸悇绫诲瘑鐮佺瓑銆2銆佸叕鍙稿唴閮ㄨ绠楁満鐨勯厤缃崟...
  • 扩展阅读:怎么改掉自卑不会说话 ... 每个人身体里都有两个自己 ... 跟刚认识的女孩子怎么聊天 ... 伸出右手让对方握一根手指 ... 手就这么大握不住太多东西 ... 说手不是手张开一个口 ... 学会说话的技巧 ... 老师最讨厌的三种家长 ... 医生怎么练手稳 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网