更新時(shí)間:2019-09-26 09:36:30 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3160次
FTP本身是基于TCP的,那么肯定會(huì)有IP和端口對(duì)不對(duì)?
回答:是對(duì)的
一般默認(rèn)的FtpServer默認(rèn)端口21,這里我單純的以為他只會(huì)用到端口21(怪我之前沒(méi)有好好掃盲)。
踩到的第一個(gè)坑"防火墻"
當(dāng)我的FTPserver集成完后,防火墻只開(kāi)放了我監(jiān)聽(tīng)的7000端口。興高采列的上測(cè)試服務(wù)器測(cè)試了。
然后在測(cè)試服務(wù)器用ftp命令連接了一下,嗯~,非常順利竟然連接成功,然后防火墻開(kāi)了7000端口。過(guò)了一會(huì)發(fā)現(xiàn)用別的機(jī)器連接好像不行了。這出現(xiàn)了大寫(xiě)的尷尬~。經(jīng)過(guò)反復(fù)測(cè)試發(fā)現(xiàn)關(guān)掉防火墻就好了,在這里我還不知道FTP有個(gè)控制端口和連接端口。
簡(jiǎn)單的說(shuō)控制端口用來(lái)登錄的,連接端口是在登錄之后使用的,至于使用什么端口要看主動(dòng)模式和被動(dòng)模式了。
Minaftpserver使用
這個(gè)用起來(lái)也很簡(jiǎn)單的

接著說(shuō),話(huà)說(shuō)防火墻也被我關(guān)了。這下應(yīng)該沒(méi)啥事兒,嗯~話(huà)說(shuō)這種情況在局域網(wǎng)(客戶(hù)端和服務(wù)器),真的一點(diǎn)問(wèn)題都沒(méi)有。
當(dāng)我們的客戶(hù)端程序搬到外網(wǎng)之后,F(xiàn)TPserver在內(nèi)網(wǎng)通過(guò)路由器的端口映射
可能有小伙伴看不大明白,弄張圖吧:

左邊就是我的服務(wù)器,這樣部署后,發(fā)現(xiàn)客戶(hù)端死活連不上服務(wù)器,但是可以登錄,嘗試過(guò)主動(dòng)模式、被動(dòng)模式、將所有端口映射還是不起作用。
找文檔,找資料。找到了一個(gè)可以設(shè)備被動(dòng)模式和主動(dòng)模式使用的端口如下:

到這里算是有一點(diǎn)收獲,總算把使用的端口搞明白了。但是還是沒(méi)解決客戶(hù)端不能連的問(wèn)題。
接著找,再仔細(xì)的看主動(dòng)模式和被動(dòng)模式
主動(dòng)模式、被動(dòng)模式
這二個(gè)模式都是針對(duì)服務(wù)器而言
主動(dòng)模式
當(dāng)客戶(hù)端登錄服務(wù)器成功后,客戶(hù)端告訴服務(wù)器客戶(hù)端開(kāi)放的端口,然后服務(wù)器主動(dòng)去連接客戶(hù)端告訴過(guò)來(lái)的端口

被動(dòng)模式
當(dāng)客戶(hù)端登錄服務(wù)器成功后,服務(wù)器告訴客戶(hù)端我開(kāi)放的端口,然后客戶(hù)端來(lái)連接服務(wù)器的端口,相當(dāng)于是服務(wù)器一直是被動(dòng)的等待連接

到這兒可能有點(diǎn)思路了,確定我的服務(wù)器一定是使用被動(dòng)模式。通過(guò)日志發(fā)現(xiàn)被動(dòng)模式使用的IP不對(duì)

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“Java 集成Ftp Server踩到的坑”的內(nèi)容,希望對(duì)大家有幫助,更多java最新資訊請(qǐng)繼續(xù)關(guān)注動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)