FTP server 伺服器軟體
Q:如何正確的設定我的IP位址?

正確設定主機IP是相當重要的一見事 你可用以下快速方式解決設定的難題

本快速方法適用於動態IP用戶以及NAT(分享器)用戶

流程一 : 取得免費網域名稱

miniDNS : http://www.minidns.net/index.php free

TZO.com : http://www.tzo.com/MainPageDownload/index.html

ADSLDNS.org : http://www.adsldns.org/ free

流程二 : 設定伺服器IP , 進入[選單-設定-FTP-伺服器] , 伺服器IP填入你所申請的domain name即可

如果你使用此快速方式 , 則可略過下面的說明 , 但注意NAT用戶仍需設定NAT端之PORT轉送設定

您應視您系統的環境來決定符合您需求的參數組合。

合法IP的意思是說該IP為網際網路上的真實IP,且任何人都能經由這個位址和您建立連結

內部IP的意思是說該IP僅在區域網路的範圍內才是有效的,只有同一區域網路內的使用者能經由這個位址建立連結。

固定IP的意思是指您的IP始終是同一個,而不是由DHCP伺服器指派的。

注意:以下的設定在FTPD的*.ftpd檔案之中,「伺服器IP」是以SERVER_IP表示、「自動選擇IP」以AUTO_CHOOSE_IP表示、「額外的IP」以XTRA_IPS表示、「排除的IP」以XCLU_IPS表示,「自動從多組伺服器IP中輪流使用不同IP來給DATA連線使用」是以PASV_IP_ROLLING表示。

組合一:單一合法IP(固定IP)

伺服器IP:填入您的合法IP ﹙切勿填入Domain Name﹚

自動選擇IP: On 或 Off均可 ﹙但您必須確定在伺服器IP中所填入的IP是正確的﹚

額外的IP :﹙不要更動它﹚

排除的IP : ﹙不要更動它﹚

自動從多組伺服器IP中輪流使用不同IP來給data連線使用:Off

組合二:單一合法IP ﹙浮動IP﹚

伺服器IP:﹙保持空白﹚

自動選擇IP:On

額外的IP:﹙不要更動它﹚

排除的IP:﹙不要更動它﹚

自動從多組伺服器IP中輪流使用不同IP來給data連線使用:On

組合三 : 一個合法IP (固定 IP) + 一個內部 IP

伺服器IP:填入您的合法IP ﹙切勿填入Domain Name﹚

自動選擇IP: Off

額外的IP:﹙不要更動它﹚

排除的IP:﹙不要更動它﹚

自動從多組伺服器IP中輪流使用不同IP來給data連線使用: Off

組合四 : 一個合法IP (浮動 IP) + 一個內部IP

伺服器IP:﹙保持空白﹚

自動選擇IP:On

額外的IP:﹙不要更動它﹚

排除的IP:您的內部IP (可設定多組,例如 xxxx.xxx.xxx.xxx,yyy.yyy.yyy.yyy)

自動從多組伺服器IP中輪流使用不同IP來給data連線使用:On

組合五 : 多個IP (固定 IP)

伺服器IP:設為其中一個IP

自動選擇IP: Off

額外的IP:將所有的IP加入額外的IP﹙包括伺服器IP﹚,例如:xxx.xxx.xxx.xxx,yyy.yyy.yyy.yyy,zzz.zzz.zzz.zzz

排除的IP:﹙不要更動它﹚

自動從多組伺服器IP中輪流使用不同IP來給data連線使用:On

組合六:多個合法IP﹙固定IP﹚+ 一個內部IP

伺服器IP:設為其中一個IP

自動選擇IP:Off

額外的IP:除了內部IP以外的所有合法IP都填入

排除的IP:您的內部IP

自動從多組伺服器IP中輪流使用不同IP來給data連線使用: On

組合七:伺服器有可對應浮動IP的網址﹙當IP有更動時會隨之更新﹚

伺服器IP:﹙保持空白﹚

自動選擇IP:Off

額外的IP: ﹙保持空白﹚

排除的IP:﹙保持空白﹚

自動從多組伺服器IP中輪流使用不同IP來給data連線使用:Off

DYN_IP_HOST : 設為您的Domain Name ,例如:DYN_IP_HOST=xxxx.dynadns.org

組合八:一個內部 IP

您的環境無法服務網際網路的使用者。

 

好,現在您已經正確的完成了IP的設定,但為什麼客戶端還是不能做LIST/RETR/STOR/FXP?

可能一:您的站位於防火牆後方,而這個防火牆可能被設定為僅僅開放某個區段的連接埠,您可以洽詢本地端的防火牆管理員來取得相關資料,再將伺服器的DATA PORT RANGE(資料連接埠區段)配合防火牆做出設定。

可能二:客戶端位於防火牆後方(通常您可經由伺服器紀錄檔內的PORT指令失敗來得知),您可要求使用者的FTP客戶端使用PASV(被動)模式,否則無法有效運作。

可能三:客戶端位於NAT(網路位址轉換)後方,通常您可經由伺服器紀錄檔內的PORT指令失敗來得知,不過PORT指令要求伺服器連上去的通常不是客戶端的真實IP,因此您應要求該使用者的FTP客戶端使用PASV(被動)模式,否則無法有效運作。

可能四:當使用者要和將「AntiBounce Attack」功能開啟的FTP伺服器做FXP時(例如微軟的IIS,或SERV-U),除非您將DATA PORT RANGE(資料連接埠區段)設定至port 1024以上的區段(例如1050-2000),否則它們和您之間的FXP並無法正常運作。

可能五:客戶端所使用的軟體設計欠佳,沒錯,很多的FTP客戶端軟體並沒有遵守遊戲規則,一般來說FTP客戶端應該先與伺服器建立好DATA連結之後,再下進一步的指令,例如LIST、RETR,不過某些客戶端下了PORT/PASV指令之後,並不先等連結建立好,就直接再下LIST/RETR指令,雷電FTPD並不打算去支援這樣的做法。請要求您的使用者更換或升級他的客戶端軟體。這種情形通常您可以藉由伺服器端的紀錄檔中有「LIST W/O DATA connection」的錯誤訊息來得知。

可能六:客戶端使用不相容的軟體,目前不相容的客戶端軟體包括了StarFTP、LeapFTP 2.6x(更新的版本則相容)、LapLink v1、舊版的FlashGET(新版則可運作。)

可能七:您在伺服器的設定表單中啟動了檢查DATA連線IP範圍,請關掉它,若不關掉,也可以將許可主機的IP加入允許的IP列表中,不然您的伺服器不會接受來自其他伺服器的DATA連線。

如果到現在還無法解決問題,那您就得知道更多相關的知識。

Q01. 好,我有個疑問,我想設計一個100%無漏洞的防火牆,如果我要雷電FTPD使用某個連接埠範圍,假設是1400-1500好了,在做xfers的時候就使用這些連接埠,可是當使用著登入並下LIST指令時,竟然使用的是port 90-???…

A01. 嗯…您並無法100%強制所使用的連接埠範圍,指定連接埠範圍只有當客戶端使用PASV而非PORT模式時才有用。當客戶端決定使用PORT指令時,他同時也可以決定連接埠的範圍;當客戶端使用PASV時,則由伺服器端取得連接埠範圍的決定權。在FTP客戶端軟體中應該要有一個選項是可以強制它自己使用某個範圍的連接埠,不過當然不是每個客戶端軟體都會有。由於這個部分是讓客戶端自行決定的,因此您的問題無法歸咎於雷電FTPD。

Q02. 為什麼當有人和我的雷電FTPD伺服器做FXP時,我看到以下的訊息?

(CLIENT) PASV

(RAIDEN) 227 Entering Passive Mode (140,89,228,21,0,214)

(RAIDEN) PORT 140,89,228,21,0,214

(OTHER?) 500 Illegal PORT range rejected.

A02. 嗯…這是因為該伺服器啟動了「AntiBounce Attack」的功能,由於那不是你的機器,您當然無法把這個功能取消掉,如果您真的非跟對方做FXP不可,您必須使用特定範圍的DATA PORT RANGE(資料連接埠區段),而因您使用目的的不同,我們會建議使用不同的連接埠範圍。如果您的站台是要讓人從網頁下載的,您可以試試port 26-79,如果您要做一個可以跟別人做FXP的站,試試port 1400-1500。這裡我無法給您一個放諸四海皆準的答案,因為事實就是有些客戶端/伺服器端就是會認為,他們對解決封鎖某些連接埠之後所產生的問題遊刃有餘。而由於要不要封鎖某些IP區段是他方的伺服器決定的,您的問題無法片面的從雷電FTPD上得到完全的解決。

Q03. 「PASV accept failed, no one connects to me」是什麼意思?它是由伺服器還是客戶端產生的?我的意思是說它究竟是由雷電FTPD產生的,還是連接過來的使用者所產生的?

A03. 嗯…這個訊息是由雷電FTPD產生的,這個是說當雷電FTPD從ftp的客戶端接受了PASV的指令之後,它先去伺服器IP+PORT的其中一組等待(listen),並將這組IP+PORT的號碼回傳到客戶端,只是過了十五秒鐘後,仍然沒有ftp的客戶端連接到這組IP+PORT,於是伺服器便向您回報這個錯誤。很多的原因都會導致這樣的結果,並且可能是客戶端、伺服器端中的任何一方或雙方的問題。所以您需要檢查一下客戶端的指令紀錄視窗,先尋找PASV字串,您就會發現類似以下的東西:

(CLIENT) PASV

(RAIDEN) 227 Entering Passive Mode (140,89,228,21,0,214)

現在這裡是關鍵了,看看這個140,89,228,21是不是你的伺服器IP?還有0*256 + 214是不是你的等待(listen)的PORT?如果140,89,228,21不是你的伺服器IP,或者它是個從外部無法連接的內部IP,就表示你的IP設定出問題了,您可以對照一下本文前段,找出最適合的組合來重新設定。如果IP的部分沒問題,就再看看PORT的部分,如果您的環境有防火牆,而這裡的PORT並非位於開放的PORT區段時,則人家當然連不上來,因為所有的連線都被拒絕了。因此你必須問問您本地端的網管者哪些PORT是開放的,然後將它設定到DATA PORT RANGES(資料連接埠區段)裡面,否則就無法正常運作。有沒有再簡單一點的辦法呢?恐怕沒有囉!因為沒有人會知道你的網管者會設定開放或是拒絕,也沒人知道你的內部IP及外部外部IP,所以您得自己搞定囉!

Q04. 我有一個合法的浮動IP和一個內部的固定IP,我可否架單一站台(也就是使用同一個*.ftpd檔案)來同時服務內部與外部的使用者?

A04. 不行,因為您的合法IP是浮動的,您必須架兩個站台(使用兩個不同的*.ftpd檔),一個讓內部用,另一個外部用。

Q05. 我無法和G6 ftp server 2.0做FXP,問題出在哪呢?

A05. 好,如果我們不說明,大家還以為不能和G6 2.0 Final做FXP是我們的問題。在G6 2.0 Final,無論指令是否真的成功,它都會回報「200 PORT command successful」。我們怎麼知道的呢?很簡單,我們只是把自己的PASV模式關掉來測試(這就意味著事實上雷電FTPD並沒有在等待(listen),只不過是回傳「正確進入被動模式」的字串給對方而已),雷電FTPD沒有在等待(listen),G6 2.0 Final當然不可能建立連線。這是G6程式的臭蟲,以下節錄一小段的紀錄檔:

(flashfxp ->RaidenFTPD) PASV

(RaidenFTPD) 227 Entering Passive Mode (MY_IP,0,201) <- 我們其實並沒有真正的listen

(flashfxp ->G6) PORT MY_IP,0,201

(G6) 200 Port command successful. <- G6 回傳了錯誤的字串訊息

(flashfxp ->G6) STOR f-xxxxxx.zip <- flashfxp 被騙到了

(G6) 150 Opening data connection for f-xxxxxx.zip. (flashfxp ->RaidenFTPD) RETR f-xxxxxx.zip 150 Sending /OOOOOO/f-xxxxxx.zip (2555741 bytes). Mode STREAM Type BINARY

(RaidenFTPD) 426 Connection closed , transfer aborted (transfer failed).(exception)

就這麼簡單囉!G6回傳了錯誤的狀態,而flashfxp就被拐了,因此很明顯是誰該做出修正。而這並非雷電FTPD的問題,因為是G6回傳了錯誤的狀態給FlashFXP,我們並不清楚這個問題在新版中解決了沒有,如果遇到了這樣的問題,我們只能說錯誤並非出在我們身上。

Q06. 為什麼雷電FTPD不能和微軟的IIS做FXP?

A06. 當然可以,不過你必須將DATA PORT RANGE設定在1400-1500,我們並不知道是否還有其他的連接埠區段可以正常運作,不過這絕對可以,如果你不這樣設,就無法跟微軟的IIS做FXP。雷電FTPD在這裡並沒有設計上的缺陷,ftp無法強制伺服器非得使用哪個port來做資料傳輸不可,決定該用哪個port是站台管理員的責任。

Q07. 為什麼我在伺服器的紀錄檔裡面會看到「port connect failed(123.123.123.123 1234)」這樣的訊息?

A07. 是的,這有可能是您的問題,不過通常還是客戶端出問題的情形居多,您可以很輕易的從那個IP 123.123.123.123看出來問題是出在你還是對方身上。在伺服器監控器(Server Monitor)中,點一下客戶端的圖示,你就可以看到客戶端的來源了,假設它是140.123.123.123好了,如果你看到「port connect failed(123.123.123.123 1234)」,很顯然的,兩個IP 140.123.123.123和123.123.123.123是不一樣的,因此可以斷定這是客戶端的問題,問題可能出在它位於NAT的後方,而它的ftp客戶端軟體無法自行判斷出它的IP其實是個虛擬IP!而如果兩個IP是相同的,則問題可能就是出在您這邊了,您必須檢查一下以下兩個地方,第一個是確認一下客戶端所要求的PORT(也就是這裡的1234)是否在您的防火牆的規則中有將它打開,先確定沒有把它關上;第二個比較技術性一點,您可能有多個NIC的介面,確定一下你沒有把內部NIC的IP設為額外的IP,你甚至應該將它加到排除的IP裡面,想要從內部的NIC和ftp客戶端建立連線是不可能的。最後還有一個可能性,就是客戶端並非從同一來源做下載的動作,並嘗試做FXP,我想,如果確定你的IP都設定正確而問題還是發生了,就應該不會是你的問題了。

Copyright

REVISION 2.4 , 2003/09/01