最近為項(xiàng)目臨時(shí)配了 FTP 服務(wù).客戶端用 cuteftp,cuteftp 還是蠻好的軟件,很多朋友也在用.開始怎么也建立不了數(shù)據(jù)連接.控制連接已經(jīng) ok, 網(wǎng)上也沒答案.
看了有關(guān)資料終于搞清楚了.拿出來和大家分享.
Port模式與Pasv模式
FTP的連接一般是有兩個(gè)連接的,一個(gè)是客戶程和服務(wù)器傳輸命令的,另一個(gè)是數(shù)據(jù)傳送的連接。FTP服務(wù)程序一般會支持兩種不同的模式,一種是Port模式,一種是Passive模式(Pasv Mode),我先說說這兩種不同模式連接方式的分別.
先假設(shè)客戶端為C,服務(wù)端為S.
Port模式:
當(dāng)客戶端C向服務(wù)端S連接后,使用的是Port模式,那么客戶端C會發(fā)送一條命令告訴服務(wù)端S(客戶端C在本地打開了一個(gè)端口N在等著你進(jìn)行數(shù)據(jù)連接),當(dāng)服務(wù)端S收到這個(gè)Port命令后 就會向客戶端打開的那個(gè)端口N進(jìn)行連接,這種數(shù)據(jù)連接就生成了。
Pasv模式:
當(dāng)客戶端C向服務(wù)端S連接后,服務(wù)端S會發(fā)信息給客戶端C,這個(gè)信息是(服務(wù)端S在本地打開了一個(gè)端口M,你現(xiàn)在去連接我吧),當(dāng)客戶端C收到這個(gè)信息后,就可以向服務(wù)端S的M端口進(jìn)行連接,連接成功后,數(shù)據(jù)連接也建立了。--
從上面的解釋中,大家可以看到兩種模式主要的不同是數(shù)據(jù)連接建立的不同,對于Port模式,是客戶端C在本地打開一個(gè)端口等服務(wù)端S去連接建立數(shù)據(jù)連接;而Pasv模式就是服務(wù)端S打開一個(gè)端口等待客戶端C去建立一個(gè)數(shù)據(jù)連接。
比如,你所有LAN中的計(jì)算機(jī)都是共享這個(gè)218.63.1.5訪問INTERNET的(中間通過了192.168.1.1這個(gè)網(wǎng)關(guān)),讓我們來看一個(gè)連接的詳細(xì)過程,以便您更進(jìn)一步了解為什么需要設(shè)置成為PASV mode 傳送:
當(dāng)您通過下載工具或使用瀏覽器下載影片的時(shí)候就開始連接FTP服務(wù)器, 當(dāng)FTP服務(wù)收到你的連接請求后發(fā)送應(yīng)答信息給客戶并
開始等待用戶的認(rèn)證信息,-->認(rèn)證通過后開始建立數(shù)據(jù)連接 如果你不是設(shè)置成為pasv模式,那么客戶段(下載工具)會在本地計(jì)算機(jī)開一個(gè)數(shù)據(jù)端口,然后發(fā)送一條“命令”給FTP服務(wù)段,(我已打開了n端口你現(xiàn)在可以連接我),那么FTP服務(wù)器段就開始連接你ip地址的N端口,(但是連接是失敗的) 因?yàn)槟闶峭ㄟ^192.168.1.1 這個(gè)網(wǎng)關(guān)(你的路由設(shè)備)訪問internet的ftp服務(wù)段他實(shí)際上是同你的外網(wǎng)地址為218.63.1.5的路由設(shè)備連接,根本就連接不上你下載工具中打開的端口,例如你使用的是 192.168.1.2 這個(gè)客戶機(jī),F(xiàn)TP服務(wù)段此時(shí)無法同你計(jì)算機(jī)(192.168.1.2)監(jiān)聽端口N連接上,所以此時(shí)你會看到服務(wù)器反饋的錯(cuò)誤信息,提示你192.168.1.2打開的端口無法連接之類的, 信息此時(shí)你就需要把傳送模式設(shè)置成為PASV模式,而如果你使用的是PASV模式那么當(dāng)你ftp通過認(rèn)證后,客戶段首先向服務(wù)器發(fā)送一條PASV命令,服務(wù)段接受到命令后打開一個(gè)端口并告訴客戶段“我已打開了一個(gè)端口,你此時(shí)可以來連接了" 客戶段(下載工具)接受到信息后,就去連接服務(wù)段已經(jīng)打開了的端口,從而完成數(shù)據(jù)連接,所有ftp下載的數(shù)據(jù)流都將通過這個(gè)端口傳送.
對于cuteftp 要在工具->全局選項(xiàng)->容錯(cuò)->選擇使用PASV mode
簡單介紹,希望對大家有幫助.
看了有關(guān)資料終于搞清楚了.拿出來和大家分享.
Port模式與Pasv模式
FTP的連接一般是有兩個(gè)連接的,一個(gè)是客戶程和服務(wù)器傳輸命令的,另一個(gè)是數(shù)據(jù)傳送的連接。FTP服務(wù)程序一般會支持兩種不同的模式,一種是Port模式,一種是Passive模式(Pasv Mode),我先說說這兩種不同模式連接方式的分別.
先假設(shè)客戶端為C,服務(wù)端為S.
Port模式:
當(dāng)客戶端C向服務(wù)端S連接后,使用的是Port模式,那么客戶端C會發(fā)送一條命令告訴服務(wù)端S(客戶端C在本地打開了一個(gè)端口N在等著你進(jìn)行數(shù)據(jù)連接),當(dāng)服務(wù)端S收到這個(gè)Port命令后 就會向客戶端打開的那個(gè)端口N進(jìn)行連接,這種數(shù)據(jù)連接就生成了。
Pasv模式:
當(dāng)客戶端C向服務(wù)端S連接后,服務(wù)端S會發(fā)信息給客戶端C,這個(gè)信息是(服務(wù)端S在本地打開了一個(gè)端口M,你現(xiàn)在去連接我吧),當(dāng)客戶端C收到這個(gè)信息后,就可以向服務(wù)端S的M端口進(jìn)行連接,連接成功后,數(shù)據(jù)連接也建立了。--
從上面的解釋中,大家可以看到兩種模式主要的不同是數(shù)據(jù)連接建立的不同,對于Port模式,是客戶端C在本地打開一個(gè)端口等服務(wù)端S去連接建立數(shù)據(jù)連接;而Pasv模式就是服務(wù)端S打開一個(gè)端口等待客戶端C去建立一個(gè)數(shù)據(jù)連接。
比如,你所有LAN中的計(jì)算機(jī)都是共享這個(gè)218.63.1.5訪問INTERNET的(中間通過了192.168.1.1這個(gè)網(wǎng)關(guān)),讓我們來看一個(gè)連接的詳細(xì)過程,以便您更進(jìn)一步了解為什么需要設(shè)置成為PASV mode 傳送:
當(dāng)您通過下載工具或使用瀏覽器下載影片的時(shí)候就開始連接FTP服務(wù)器, 當(dāng)FTP服務(wù)收到你的連接請求后發(fā)送應(yīng)答信息給客戶并
開始等待用戶的認(rèn)證信息,-->認(rèn)證通過后開始建立數(shù)據(jù)連接 如果你不是設(shè)置成為pasv模式,那么客戶段(下載工具)會在本地計(jì)算機(jī)開一個(gè)數(shù)據(jù)端口,然后發(fā)送一條“命令”給FTP服務(wù)段,(我已打開了n端口你現(xiàn)在可以連接我),那么FTP服務(wù)器段就開始連接你ip地址的N端口,(但是連接是失敗的) 因?yàn)槟闶峭ㄟ^192.168.1.1 這個(gè)網(wǎng)關(guān)(你的路由設(shè)備)訪問internet的ftp服務(wù)段他實(shí)際上是同你的外網(wǎng)地址為218.63.1.5的路由設(shè)備連接,根本就連接不上你下載工具中打開的端口,例如你使用的是 192.168.1.2 這個(gè)客戶機(jī),F(xiàn)TP服務(wù)段此時(shí)無法同你計(jì)算機(jī)(192.168.1.2)監(jiān)聽端口N連接上,所以此時(shí)你會看到服務(wù)器反饋的錯(cuò)誤信息,提示你192.168.1.2打開的端口無法連接之類的, 信息此時(shí)你就需要把傳送模式設(shè)置成為PASV模式,而如果你使用的是PASV模式那么當(dāng)你ftp通過認(rèn)證后,客戶段首先向服務(wù)器發(fā)送一條PASV命令,服務(wù)段接受到命令后打開一個(gè)端口并告訴客戶段“我已打開了一個(gè)端口,你此時(shí)可以來連接了" 客戶段(下載工具)接受到信息后,就去連接服務(wù)段已經(jīng)打開了的端口,從而完成數(shù)據(jù)連接,所有ftp下載的數(shù)據(jù)流都將通過這個(gè)端口傳送.
對于cuteftp 要在工具->全局選項(xiàng)->容錯(cuò)->選擇使用PASV mode
簡單介紹,希望對大家有幫助.
本博客為學(xué)習(xí)交流用,凡未注明引用的均為本人作品,轉(zhuǎn)載請注明出處,如有版權(quán)問題請及時(shí)通知。由于博客時(shí)間倉促,錯(cuò)誤之處敬請諒解,有任何意見可給我留言,愿共同學(xué)習(xí)進(jìn)步。