ISA下FTP的解決辦法(3) |
發布時間: 2012/8/14 11:23:13 |
我也把我的方法做了一下實驗,使用serv-u做的,有一點錯誤,不過終歸做了出來,下面總結一下:
PASV服務器放在ISA后面,其實就是要解決兩個問題: 1、PASV的端口。我上面的方法提出使用secondaryconnection,但事實證明不對,應該每個PASV端口都建立一條primaryconnection,然后分別建立serverpublishingrules,有多少個PASV端口,就要建立多少條。 這里還可以引出另一個話題,就是對Webpublishingrules的運用,tony你應該知道,通過Webpublishingrules也可以發布ftp服務器,但rule里面只給了一個ftp端口的選項,很明顯,這是為PORT模式的FTP服務器準備的,因為PORT模式的數據連接是由服務器發起的,在服務器一邊,不存在穿過防火墻的問題。 使用Webpublishingrules還有一個很令人振奮的特性,就是支持動態公用IP用戶,不需要象serverpublishingrules那樣,每撥一次號都要修改一次外部地址。如果在Webpublishingrules中也能搞定PASV問題,那么對于那些使用撥號上網而又想在內網發布PASV服務器的人來說,簡直是天大的喜訊。 需要好好考慮的是如何通過那個只能填一個端口的選項來發布隨機的PASV端口?我從今天的實驗找到了一點靈感,就是也象上面說的那樣,每個PASV端口都設置一條Webpublishingrules!我還未做這個實驗,還不能證實這樣做行不行,相信晚上就會有結果了。 當然,還需要考慮如何控制PASV模式端口的范圍,serv-u可以設定,而IIS的FTP不行。 2、是服務器向客戶端傳送IP的問題。當FTP客戶端登錄進入服務器的時候,PASV模式服務器會向客戶端傳送本機的IP地址和數據端口,當服務器放在內網中的時候,服務器會向客戶端返回內網的IP,這當然是不能完成連接的,需要讓服務器返回ISA的外網地址。本來,解決方法可以使用firwallclient的applicationsettings中的nameresolutionforlocalhost參數,設為P就可以讓應用程序返回ISA的外網地址,但這個參數是供firewallclient使用的,而發布服務器不能安裝firewallclient,這很可惜。 幸好,還是有一個好消息,就是serv-u本身具有返回ISA外網地址這樣的功能,方法是先選中新建FTP服務器的屬性,在domain標簽里選擇“enabledynamicdns”,此時會出現第二個標簽,叫“dynamicdns”,然后到tz0.com申請動態域名,申請后會得到一個key,在此標簽中填入此key即可。最后一步,是到新建服務器的settings屬性中,選擇advanced標簽,選中“allowpassivemodedatatransfer”,旁邊的IP地址框留空。這個框對于撥號用戶不用填,只有出口使用固定地址才需要填。 這樣,serv-u向客戶端返回IP和端口前,會先向tz0.com查詢到ISA外網的地址,再發送給客戶端。 本文出自:億恩科技【www.vbseamall.com】 |