至於為什么要搭建公網ftp服務器,就當我心血來潮吧。
ftp開源工具很多,咱用的是filezilla服務器。后來為了方便搭建web服務器,就改成了集成工具xampp。客戶端工具也是filezilla client,用瀏覽器也行。
首先內網用戶想搭建公網ftp服務器第一個要解決的問題是如何得到公網ip。經過認真試驗仔細研究得到兩種方案:
1.設置路由器參數,增加轉發規則,外網21端口轉發到內網21端口;
2.還是設置路由器,設置dmz主機,把自己的內網ip地址填上去,路由器的公網ip就成了自己電腦的公網ip。
這里要注意的是,設置完路由器后,還要把21端口添加到防火牆的例外中,否則外網的連接被拒絕。我是直接關掉了防火牆。
幸運的話,打開ftp服務器,設置用戶名密碼和根目錄,一個公網ftp服務器就誕生了。查一下路由器自己的公網ip即可從外網訪問。
路由器的公網ip也不是一成不變的,為了解決這個問題,咱們下載一個免費的花生殼,注冊賬號密碼登錄,就能得到一個域名。用域名代替公網ip,就可以坐享公網ftp服務器了。
其實剛開始咱還是很幸運的,舒舒服服用了兩天公網ftp后,突然不能連接了。這個原因排查的過程,真是不堪回首月明中啊。我把上面的過程翻來覆去重復了5遍,已經看透了原理學懂了理論,結果仍是一樣的。為了測試公網ip的可用性,特地找遠程的朋友用socket工具測試了tcp連接,發現聊天妥妥的順滑。問題就定位在ftp服務器上了。最具有誤導性的現象是,公網ip過來的連接是可以正常登錄服務器的,但是無法進入pasv模式,用dir命令列出目錄也不能,服務器會斷開socket。我就以為是服務器設置的問題,禁用pasv模式,改用port模式也不能夠可以。查到一個方案,說是用花生殼做端口映射,但是妹的那是內網映射,收費的。后來發現別人有遇到有時候可用有時候不能用的情況,更換21端口就穩定了。我試了一下,問題解決!原來是ISP把21端口給封了,路由器的公網ip也不是免費的午餐!
最后,ftp端口改成21212,塵埃落定。