×

幫助中心

常見(jiàn)問(wèn)題
域名類(lèi)
?  域名介紹
?  注冊(cè)/續(xù)費(fèi)
?  域名管理
?  域名過(guò)戶
?  域名轉(zhuǎn)移
?  增值服務(wù)
?  域名交易
?  通用網(wǎng)址
?  產(chǎn)品更新日志
郵局類(lèi)
?  產(chǎn)品簡(jiǎn)介
?  產(chǎn)品管理
?  郵件客戶端
?  郵箱用戶操作指南
?  郵箱管理員操作指南
?  產(chǎn)品使用手冊(cè)
?  代理商控制臺(tái)操作指南
?  產(chǎn)品更新日志
云虛機(jī)類(lèi)
?  購(gòu)買(mǎi)與升級(jí)
?  FTP
?  主機(jī)管理
?  技術(shù)問(wèn)題
?  數(shù)據(jù)庫(kù)
?  產(chǎn)品更新日志
ECS云主機(jī)類(lèi)
?  產(chǎn)品更新日志
會(huì)員類(lèi)
?  會(huì)員注冊(cè)
?  信息修改
?  忘記密碼
?  賬戶實(shí)名認(rèn)證
?  產(chǎn)品更新日志
財(cái)務(wù)類(lèi)
?  后付費(fèi)計(jì)費(fèi)
?  在線支付
?  線下匯款
?  發(fā)票問(wèn)題
?  匯款單招領(lǐng)
?  退款問(wèn)題
?  充值業(yè)務(wù)
?  產(chǎn)品更新日志
ICP備案
?  備案問(wèn)題快速咨詢(xún)通道
?  備案介紹
?  備案賬號(hào)
?  ICP備案前準(zhǔn)備內(nèi)容
?  ICP備案流程
?  ICP備案操作指導(dǎo)
?  ICP備案信息查看
?  備案合規(guī)核查要求
?  資料下載
?  公安聯(lián)網(wǎng)備案與經(jīng)營(yíng)性備案
?  各地管局備案通知
?  常見(jiàn)問(wèn)題
服務(wù)類(lèi)
?  ICP備案
?  小新服務(wù)
?  產(chǎn)品更新日志
網(wǎng)站定制類(lèi)
?  網(wǎng)站定制問(wèn)題
?  網(wǎng)站訪問(wèn)問(wèn)題
新辦公類(lèi)
?  常見(jiàn)問(wèn)題
?  操作手冊(cè)下載
云推送
?  云推送常見(jiàn)問(wèn)題
速成建站
?  網(wǎng)站訪問(wèn)問(wèn)題
?  網(wǎng)站使用問(wèn)題
?  產(chǎn)品更新日志
SSL證書(shū)
?  SSL證書(shū)常見(jiàn)問(wèn)題
?  產(chǎn)品更新日志
新網(wǎng)云產(chǎn)品類(lèi)
?  新網(wǎng)云WEB應(yīng)用防火墻
?  新網(wǎng)云DDoS防護(hù)
?  云數(shù)據(jù)庫(kù)
?  云產(chǎn)品運(yùn)維
?  內(nèi)容分發(fā)網(wǎng)絡(luò)CDN
?  對(duì)象存儲(chǔ) S3
?  網(wǎng)絡(luò)
資料下載
新手上路

FTP基礎(chǔ)知識(shí)

  • 作者:
  • 文章來(lái)源:新網(wǎng)
  • 點(diǎn)擊數(shù):100
  • 更新時(shí)間:2015-03-16 15:28:48

 FTP基礎(chǔ)知識(shí)  

FTPFile Transfer Protocol(文件傳輸協(xié)議)的縮寫(xiě),用來(lái)在兩臺(tái)計(jì)算機(jī)之間互相傳送文件。相比于HTTP,FTP協(xié)議要復(fù)雜得多。復(fù)雜的原因,是因?yàn)?span lang=EN-US>FTP協(xié)議要用 到兩個(gè)TCP連接,一個(gè)是命令鏈路,用來(lái)在FTP客戶端與服務(wù)器之間傳遞命令;另一個(gè)是數(shù)據(jù)鏈路,用來(lái)上傳或下載數(shù)據(jù)。

FTP
協(xié)議有兩種工作方式:PORT方式和PASV方式,中文意思為主動(dòng)式和被動(dòng)式。
PORT
(主動(dòng))方式的連接過(guò)程是:客戶端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請(qǐng)求,服務(wù)器接受連接,建立一條命令鏈路。

當(dāng)需要傳送數(shù)據(jù)時(shí),客戶端在命令鏈路上用 PORT命令告訴服務(wù)器:我打開(kāi)了****端口,你過(guò)來(lái)連接我。于是服務(wù)器從20端口向客戶端的****端口發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來(lái)傳送數(shù)據(jù)。

PASV
(被動(dòng))方式的連接過(guò)程是:客戶端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請(qǐng)求,服務(wù)器接受連接,建立一條命令鏈路。

當(dāng)需要傳送數(shù)據(jù)時(shí),服務(wù)器在命令鏈路上用 PASV命令告訴客戶端:我打開(kāi)了****端口,你過(guò)來(lái)連接我。于是客戶端向服務(wù)器的****端口發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來(lái)傳送數(shù)據(jù)。
從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數(shù)據(jù)鏈路的建立方法就完全不同。而FTP的復(fù)雜性就在于此。

FTP
服務(wù)器端的注意事項(xiàng)

一、FTP服務(wù)器是公網(wǎng)IP,用公網(wǎng)動(dòng)態(tài)域名;或是內(nèi)網(wǎng)IP,用內(nèi)網(wǎng)專(zhuān)業(yè)版TrueHost

1
、服務(wù)器如果安裝了防火墻,請(qǐng)記住要在防火墻上打開(kāi)FTP端口(默認(rèn)是21)。

2
、所有FTP服務(wù)器軟件都支持PORT方式。至于PASV方式,大部分FTP服務(wù)器軟件都支持。支持PASV方式的FTP服務(wù)器軟件,也可以設(shè)置為只工作在PORT方式上。

3
、為了PASV方式能正常工作,需要在FTP服務(wù)器軟件上為PASV方式指定可用的端口范圍(設(shè)置方法)。此外,還要在服務(wù)器的防火墻上打開(kāi)這些端口。當(dāng)客戶端以PASV方式連接服務(wù)器的時(shí)候,服務(wù)器就會(huì)在這個(gè)端口范圍里挑選一個(gè)端口出來(lái),給客戶端連接。

二、FTP服務(wù)器是內(nèi)網(wǎng)IP,用內(nèi)網(wǎng)動(dòng)態(tài)域名標(biāo)準(zhǔn)版cm*natpro*y

這種情況下,FTP服務(wù)器不需要做特殊設(shè)置,只要支持PASV方式就可以了。大部分FTP服務(wù)器軟件都支持PASV方式。

FTP
客戶端的注意事項(xiàng)

請(qǐng)注意:選擇用PASV方式還是PORT方式登錄FTP服務(wù)器,選擇權(quán)在FTP客戶端,而不是在FTP服務(wù)器。

一、客戶端只有內(nèi)網(wǎng)IP,沒(méi)有公網(wǎng)IP

從 上面的FTP基礎(chǔ)知識(shí)可知,如果用PORT方式,因?yàn)榭蛻舳藳](méi)有公網(wǎng)IP,FTP將無(wú)法連接客戶端建立數(shù)據(jù)鏈路。因此,在這種情況下,客戶端必須要用 PASV方式,才能連接FTP服務(wù)器。大部分FTP站長(zhǎng)發(fā)現(xiàn)自己的服務(wù)器有人能登錄上,有人登錄不上,典型的錯(cuò)誤原因就是因?yàn)榭蛻舳藳](méi)有公網(wǎng)IP,但用了 IE作為FTP客戶端來(lái)登錄(IE默認(rèn)使用PORT方式)。

二、客戶端有公網(wǎng)IP,但安裝了防火墻

如果用PASV方 式登錄FTP服務(wù)器,因?yàn)榻?shù)據(jù)鏈路的時(shí)候,是由客戶端向服務(wù)器發(fā)送連接請(qǐng)求,沒(méi)有問(wèn)題。反過(guò)來(lái),如果用PORT方式登錄FTP服務(wù)器,因?yàn)榻?shù)據(jù)鏈 路的時(shí)候,是由服務(wù)器向客戶端發(fā)送連接請(qǐng)求,此時(shí)連接請(qǐng)求會(huì)被防火墻攔截。如果要用PORT方式登錄FTP服務(wù)器,請(qǐng)?jiān)诜阑饓ι洗蜷_(kāi) 1024以上的高端端口。

三、連接用內(nèi)網(wǎng)標(biāo)準(zhǔn)版cm*natpro*y搭建的FTP服務(wù),必須要用PASV方式。連接任何公網(wǎng)FTP服務(wù)器、或用內(nèi)網(wǎng)專(zhuān)業(yè)版TrueHost搭建的FTP服務(wù)器,PORT方式和PASV方式都可以使用。

當(dāng)然,使用PORT方式的時(shí)候,還要滿足上面的兩個(gè)條件。

四、常見(jiàn)的FTP客戶端軟件PORT方式與PASV方式的切換方法。

大部分FTP客戶端默認(rèn)使用PASV方式。IE默認(rèn)使用PORT方式。

在大部分FTP客戶端的設(shè)置里,常見(jiàn)到的字眼都是“PASV”被動(dòng)模式,極少見(jiàn)到“PORT”主動(dòng)模式等字眼。因?yàn)?span lang=EN-US>FTP的登錄方式只有兩種:PORTPASV,取消PASV方式,就意味著使用PORT方式。

IE


工具 -> Internet選項(xiàng) -> 高級(jí) -> “使用被動(dòng)FTP”(需要IE6.0以上才支持)。

CuteFTP


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

File -> Site Manager
,在左邊選中站點(diǎn) -> Edit -> “Use PASV mode”
FlashGet

工具 -> 選項(xiàng) -> 代理服務(wù)器 -> 直接連接 -> 編輯 -> “PASV模式

FlashFTP


選項(xiàng) -> 參數(shù)選擇 -> 代理/防火墻/標(biāo)識(shí) -> “使用被動(dòng)模式

站點(diǎn)管理 -> 對(duì)應(yīng)站點(diǎn) -> 選項(xiàng) -> “使用被動(dòng)模式

快速連接 -> 切換 -> “使用被動(dòng)模式

LeechFTP


Option -> Firewall -> Do not Use

五、請(qǐng)盡量不要用IE作為FTP客戶端

IE
只是個(gè)很粗糙的FTP客戶端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登錄FTP的時(shí)候,看不到登錄信息。在登錄出錯(cuò)的時(shí)候,無(wú)法找到錯(cuò)誤的原因。在測(cè)試自己的FTP網(wǎng)站的時(shí)候,強(qiáng)烈建議不要使用IE

FTP
建站的詳細(xì)配置過(guò)程

請(qǐng)參考這個(gè)網(wǎng)頁(yè)的說(shuō)明來(lái)配置:

使用Serv-U建立FTP網(wǎng)站

高級(jí)話題

、為什么沒(méi)有公網(wǎng)IP,也能使用PORT方式登錄FTP

NAT
網(wǎng)關(guān)的工作方式是在TCP/IP數(shù)據(jù)包的包頭里找局域網(wǎng)的源地址和源端口,替換成網(wǎng)關(guān)的地址和端口。對(duì)數(shù)據(jù)包里的內(nèi)容,是不會(huì)改變的。而使用PORT方式 登錄FTP的時(shí)候,IP地址與端口信息是在數(shù)據(jù)包里面的,而不是在包頭。因此,沒(méi)有公網(wǎng)IP,使用PORT方式是無(wú)法從internet上的ftp服務(wù)器 下載數(shù)據(jù)的。

但是,極少數(shù)的NAT網(wǎng)關(guān)也支持PORT方式。這些NAT網(wǎng)關(guān)連數(shù)據(jù)包里面的內(nèi)容都掃描,掃描到 PORT指令后會(huì)替換PORT方式的IP和端口。在這種NAT網(wǎng)關(guān)下面,用PORT方式就沒(méi)問(wèn)題了。不過(guò),這些網(wǎng)關(guān)也只掃描21端口的數(shù)據(jù)包,如果FTP 服務(wù)器不是用默認(rèn)的21端口,也無(wú)法使用PORT方式。

、內(nèi)網(wǎng)可以用PORT訪問(wèn)其他FTP,為什么不能用PORT訪問(wèn)自己的TrueHost FTP?

下面要討論的問(wèn)題,只是為了說(shuō)明一些原理,是不影響實(shí)際使用的。如果您沒(méi)有興趣深究這些原理,不必花時(shí)間看。

內(nèi)網(wǎng)用戶通過(guò)支持PORT方式的NAT網(wǎng)關(guān),訪問(wèn)自己本機(jī)利用TrueHost建立的FTP服務(wù)器,FTP命令鏈路的建立過(guò)程如下:

FTP
客戶端

10.10.0.1
端口*** <==> ISP NAT網(wǎng)關(guān)
61.144.1.2
端口**** <==> TH服務(wù)器
*.*.*.*
端口21 <==> TH客戶端 <==> 用戶FTP服務(wù)器
10.10.0.1
端口21

FTP
客戶端通過(guò)ISPNAT網(wǎng)關(guān)、科邁TrueHost服務(wù)器、TrueHost客戶端,連接用戶本機(jī)的FTP服務(wù)器的21端口。

當(dāng)需要下載數(shù)據(jù)的時(shí)候,FTP客戶端通過(guò)這條命令鏈路,向FTP服務(wù)器發(fā)送PORT命令。假設(shè)命令為:

PORT 10,10,0,1,30,4
(即IP=10.10.0.1 端口=30*256+4=7684
當(dāng)命令通過(guò)ISPNAT網(wǎng)關(guān)的時(shí)候,NAT網(wǎng)關(guān)判斷目的端口是21,并且是PORT命令,于是,修改命令里的IP和端口,替換為自己的IP和端口,比如:
PORT 61,144,1,2,50,6
(即IP=61.144.1.2 端口=50*256+6=12806
用戶的FTP服務(wù)器最終收到的是上面這個(gè)PORT命令。于是,FTP服務(wù)器向這個(gè)IP和端口發(fā)送連接請(qǐng)求,建立數(shù)據(jù)鏈路。

用戶FTP服務(wù)器

10.10.0.1
端口20 <==> ISP NAT網(wǎng)關(guān)
61.144.1.2
端口12806 <==> FTP客戶端
10.10.0.1
端口7684

但 是,因?yàn)?span lang=EN-US>NAT網(wǎng)關(guān)的公網(wǎng)IP只能接收外來(lái)的連接請(qǐng)求。就是說(shuō),61.144.1.2:12806只能接收其他公網(wǎng)IP的連接請(qǐng)求,對(duì)于從NAT內(nèi)部 (10.10.0.1:20)發(fā)起的連接請(qǐng)求,是無(wú)法建立連接的。為什么?原因很簡(jiǎn)單,因?yàn)閮?nèi)網(wǎng)IP要訪問(wèn)外網(wǎng),必須要通過(guò)NAT建立映射。于是FTP數(shù) 據(jù)鏈路無(wú)法建立。于是,用戶無(wú)法在自己的機(jī)器上通過(guò)21端口訪問(wèn)自己的TrueHost FTP。

我們?cè)賮?lái)看看,如果FTP端口不是 21,比如是22,會(huì)發(fā)生什么情況呢?在FTP客戶端發(fā)送PORT命令的時(shí)候,NAT網(wǎng)關(guān)檢測(cè)到目標(biāo)端口是22,因?yàn)橹С?span lang=EN-US>PORT的 NAT網(wǎng)關(guān)只監(jiān)視目的端口是21的數(shù)據(jù)包,發(fā)現(xiàn)目的端口是22的數(shù)據(jù)包,不做任何處理,完全放行。于是FTP服務(wù)器收到的PORT命令依然是PORT 10,10,0,1,30,4。于是FTP服務(wù)器向這個(gè)IP和端口發(fā)送連接請(qǐng)求。

用戶FTP服務(wù)器

10.10.0.1
端口20 <==> FTP客戶端
10.10.0.1
端口7684

這種情況下命令鏈路就可以建立起來(lái)了。而且是等于本機(jī)連接本機(jī),速度飛快。
綜上所述,內(nèi)網(wǎng)用戶無(wú)法用PORT方式通過(guò)21端口訪問(wèn)自己的TrueHost FTP服務(wù)器。如果FTP端口不是21,則可以訪問(wèn),而且實(shí)際上是本機(jī)連接本機(jī)。

function forumhottag_callback(data){ tags = data; } parsetag();

function forumhottag_callback(data){ tags = data; } parsetag(); 

FTP

免費(fèi)咨詢(xún)獲取折扣

Loading