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