最近須要在Web服務器上發佈一下FTP,不想安裝Server-U之類的,就用IIS的了,安裝好後,發現外網沒法鏈接。通過測試,發現是防火牆的問題。服務器
查找了下關於FTP的資料,ftp server支持兩種模式:主動模式/被動模式(port/pasv),在port模式下,當須要在server和client之間傳輸數據時,client會在控制通道發port指令,client在本機開一個>1024的監聽端口,等待server鏈接,server在控制通道接受該port指令後,使用其20端口去鏈接client的監聽端口,即server:20 ->;client:any,使用該數據通道進行數據傳輸; 對於PASV模式,client發pasv指令,server將會隨機開放一個>1024的監聽端口,隨後 CLIENT鏈接到該高端口進行數據傳送。測試
根據以上的分析,若是是使用PASV模式,因爲server端須要使用一個>1024的隨機端口,這樣不便於防火牆設置;所以採用PORT模式更方便防火牆發佈,按如下建立2條防火牆規則便可:server
一、外網any address : any port -> FTP server : 21;cli
二、FTP server : 20 -> 外網any address : any port;ftp
接下來,只須要將FTP客戶端設置爲使用主動模式PORT便可。防火牆