更新時間:2019-09-26 09:36:30 來源:動力節點 瀏覽2780次
FTP本身是基于TCP的,那么肯定會有IP和端口對不對?
回答:是對的
一般默認的FtpServer默認端口21,這里我單純的以為他只會用到端口21(怪我之前沒有好好掃盲)。
踩到的第一個坑"防火墻"
當我的FTPserver集成完后,防火墻只開放了我監聽的7000端口。興高采列的上測試服務器測試了。
然后在測試服務器用ftp命令連接了一下,嗯~,非常順利竟然連接成功,然后防火墻開了7000端口。過了一會發現用別的機器連接好像不行了。這出現了大寫的尷尬~。經過反復測試發現關掉防火墻就好了,在這里我還不知道FTP有個控制端口和連接端口。
簡單的說控制端口用來登錄的,連接端口是在登錄之后使用的,至于使用什么端口要看主動模式和被動模式了。
Minaftpserver使用
這個用起來也很簡單的
接著說,話說防火墻也被我關了。這下應該沒啥事兒,嗯~話說這種情況在局域網(客戶端和服務器),真的一點問題都沒有。
當我們的客戶端程序搬到外網之后,FTPserver在內網通過路由器的端口映射
可能有小伙伴看不大明白,弄張圖吧:
左邊就是我的服務器,這樣部署后,發現客戶端死活連不上服務器,但是可以登錄,嘗試過主動模式、被動模式、將所有端口映射還是不起作用。
找文檔,找資料。找到了一個可以設備被動模式和主動模式使用的端口如下:
到這里算是有一點收獲,總算把使用的端口搞明白了。但是還是沒解決客戶端不能連的問題。
接著找,再仔細的看主動模式和被動模式
主動模式、被動模式
這二個模式都是針對服務器而言
主動模式
當客戶端登錄服務器成功后,客戶端告訴服務器客戶端開放的端口,然后服務器主動去連接客戶端告訴過來的端口
被動模式
當客戶端登錄服務器成功后,服務器告訴客戶端我開放的端口,然后客戶端來連接服務器的端口,相當于是服務器一直是被動的等待連接
到這兒可能有點思路了,確定我的服務器一定是使用被動模式。通過日志發現被動模式使用的IP不對
以上就是動力節點java培訓機構小編介紹的“Java 集成Ftp Server踩到的坑”的內容,希望對大家有幫助,更多java最新資訊請繼續關注動力節點java培訓機構官網,每天會有精彩內容分享與你。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習