1. 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的話,就有畫蛇添足之嫌了。
2. 如何設置windows自帶的ftp使用被動模式上傳
主動式有利於伺服器端管理
但是可能會被客戶端防火牆攔截
被動式由於數據傳輸由客戶端發起出所有不會被客戶端防火牆攔截
但是不利於伺服器管理
使用windows
server搭建完畢
雙擊FTP防火牆
填寫埠和IP即可
例如填寫5000-5100,即為允許100個被動連接(此時可能為灰色需要開通防火牆)
如果埠位置為灰色,需執行以下命令添加防火牆策略
允許ftp
netsh
advfirewall
firewall
add
rule
name="FTP
Service"
action=allow
service=ftpsvc
protocol=TCP
dir=in
netsh
advfirewall
firewall
set
global
StatefulFTP
disable
添加完畢再看埠可以輸入數值
輸入數值
和外部連接的IP地址
點擊應用
此時再次使用被動式連接
即可成功連接
按:
測試發現關閉防火牆無效,填寫被動式埠依然為灰色.
必須添加2條命令
3. 如何設置windows自帶的ftp使用被動模式上傳
主動式有利於伺服器端管理 但是可能會被客戶端防火牆攔截
被動式由於數據傳輸由客戶端發起出所有不會被客戶端防火牆攔截 但是不利於伺服器管理
使用windows server搭建完畢 雙擊FTP防火牆
按: 測試發現關閉防火牆無效,填寫被動式埠依然為灰色. 必須添加2條命令
4. win2008配置FTP伺服器,出現227錯誤,如何開啟FTP的被動模式
做了一個下劃線,修改與2020年2月17號下午
發布文章以來,很多朋友找我問具體的配置,說實話,當初配置的迷迷糊糊的,也忘記當時到底有沒有配置好。
無論如何,過去了,大家用心得方法吧。
大家不需要再自己手工配置了,2020年2月10號左右,我使用了免費的filezilla配置一下。
因為我是阿里雲,所以,在配置的時候,還需要進入阿里雲的安全規則里,開啟21埠,和你所需要的埠。
伺服器上,裝filezilla的服務端。
電腦上,用filezilla的客戶端。
阿里雲的配置,跟網上的很多教程,有點不一樣,所以,我貼出來,給大家看看。
https://www.cnblogs.com/leowork/p/setup_ftp_server.html
---------------------------------------------------------------------------------------
以下內容是以前的。
2017.08.23 14:17:28字數 657閱讀 1,179
本文配置win2008 FTP伺服器,基於以下幾點。
1.win2008伺服器
2.使用win2008自帶的FTP功能
3.配置特定賬戶的FTP,不配置FTP隔離用戶。
其他條件下,自行尋找其他文檔。另註:相關操作,都在IIS7,或者IIS7.5管理器中進行。一點都不需要IIS6。網上有些教程,是忽悠我的。
本人配置FTP伺服器遇到的錯誤
一.賬號密碼明明是對的,內網,外網都無法訪問。這是許可權問題。需要三件事,確定許可權 。
1.在伺服器管理中,新建用戶,配置賬號密碼。這是你准備使用的FTP賬號,密碼
2.新建FTP目錄,配置目錄的許可權,右鍵文件屬性,安全,添加,高級搜索,立刻查找,找到剛建的FTP用戶名,添加所有許可權,應用。
3.新建FTP站點的時候,到了用戶選項,選擇基本,輸入FTP賬號密碼,上面的匿名選項,可以忽略。
4.綁定IP的時候,綁定到指定IP,或者不填。
這四點保證了,FTP賬號的訪問權許可權,可以進入外網和內網的測試。
二.內網能訪問,外網訪問的時候,出現227.這是伺服器配置的遇到的防火牆問題。
網上建議在連接FTP的時候,選擇主動模式。(具體操作是。如果是瀏覽器訪問伺服器,設置IE禁止被動訪問,如果是FTP軟體訪問伺服器,也選擇主動模式。)
然而,這其實是伺服器自身的配置問題。需要在伺服器端解決。
1.在IIS7界面,選擇FTP站點,進入FTP防火牆選項。
a.查看埠范圍。如果是灰色0-0.那就到IIS最頂端的伺服器站點配置里配置埠。
很多人建立FTP站點以後,在IIS管理界面。發現FTP埠范圍是灰色的,無法修改。那是因為,你要從最上級的伺服器級別的站點設置。我的設置是1025-2000.
b.配置防火牆外網IP,這里必須要填,填上伺服器的外網IP就好了。
2.防火牆允許程序選項。 允許windows主服務程序的運行。(2B的微軟,在2003,2008伺服器里都默認禁止了win主服務。這里需要允許程序運行,增加一條就好了。win2008,是svchost.exe, win2003 是inetsrv.exe)
3.添加入站規則。
a.開始添加入站規則。命名為FTP PASV埠(主要是好記,可以隨便叫)。
b.屬性設置里,埠配置,填上1025-2000,跟步驟1對應。
c.程序和服務選項,選擇所有符合指定條件的程序。
d.程序和服務選項.服務--設置--僅應用於服務。
至此,設置完成。不需要重啟伺服器,只需要重啟IIS。如何重啟IIS,不需要從命令中重啟,只需要在IIS伺服器級別的那個網站選項上,右鍵。
也不需要重啟FTP服務。真不行才重啟FTP服務。net stop ftpsvc ,net start ftp ftpsvc。
四.WIN2008的FTP伺服器配置,以及FTP防火牆的配置至此完成。有不會的,聯系我,QQ:909743105.
此文作為記錄,以免自己忘記。
5. 如何設置windows自帶的ftp使用被動模式上傳數據
被動模式:
1、客戶端打開命令埠X(X>1024)到伺服器21埠。
2、客戶端在該命令通道中,發送「PASV」命令給伺服器。
3、伺服器在監聽該埠後,將會開啟一個任意的非特權埠Z(Z>1024),返回並發送給客戶端。
4、客戶端建立數據通道,並從本地埠X+1發送到伺服器Z埠。
5、伺服器接受該數據通道。
6. FTP主動模式和被動模式!
FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一。FTP協議包括兩個組成部分,其一為FTP伺服器,其二為FTP客戶端。其中FTP伺服器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP伺服器上的資源。在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web伺服器上。此外,由於FTP傳輸效率非常高,在網路上傳輸大的文件時,一般也採用該協議。
默認情況下FTP協議使用TCP埠中的 20 和 21 這兩個埠,其中20用於傳輸數據,21用於傳輸控制信息。但是,是否使用20作為傳輸數據的埠與FTP使用的傳輸模式有關,如果採用主動模式,那麼數據傳輸埠就是20;如果採用被動模式,則具體最終使用哪個埠要伺服器端和客戶端協商決定。
FTP支持兩種模式,它在工作運行時也主要是這兩種模式,一種模式叫作Standard也被稱為PORT方式和 主動方式 ,另一種模式叫作Passive也叫作PASV, 被動方式 。Standard模式FTP的客戶端發出PORT命令到伺服器,Passive模式FTP的客戶端發送PASV命令到FTP Server中,從而保證文件相互傳輸正常。
我們使用華為的模擬器Ensp來做一個小實驗。
FTP三次握手有兩次,第一次的TCP三次握手是控制層的握手,第二次是數據層的TCP三次握手
(1)伺服器打開埠 21,等待連接;
(2)客戶端(100.1.12.1)發起控制連接的建立請求,伺服器響應連接,控制連接建立,使用TCP 三次握手(第一次TCP三次握手);
隨機埠的計算
可以看到PORT為 10,0,0,2,8,6
隨機埠計算為: 8*256+6=2054
(3)客戶端通過控制連接發送 PORT 命令(在應用層數據中帶有自己的 ip 地址和臨時埠),將客戶端數據連接的臨時埠號告訴伺服器
(4)伺服器的 20 號埠與客戶端建立起數據連接,使用TCP 三次握手(第二次TCP三次握手);
點擊登出後控制埠斷開連接
FTP三次握手有兩次,第一次的TCP三次握手是控制層的握手,第二次是數據層的TCP三次握手
(1)伺服器打開埠 21,等待連接
(2)客戶端發起控制連接的建立請求,伺服器響應連接,控制連接建立,使用TCP 三次握手(第一次TCP三次握手);
(3)客戶端通過控制連接發送命令字 PASV,告知伺服器處於被動模式;
(4)伺服器回應,將伺服器數據連接的臨時埠號(2060)告訴客戶端;
(5)客戶端與伺服器的臨時埠建立起數據連接,使用TCP 三次握手(第二次TCP三次握手);