专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java 集成Ftp Server踩到的坑

Java 集成Ftp Server踩到的坑

更新时间:2019-09-26 09:36:30 来源:动力节点 浏览2251次



  FTP本身是基于TCP的,那么肯定会有IP和端口对不对?


  回答:是对的


  一般默认的FtpServer默认端口21,这里我单纯的以为他只会用到端口21(怪我之前没有好好扫盲)。


  踩到的第一个坑"防火墙"


  当我的FTPserver集成完后,防火墙只开放了我监听的7000端口。兴高采列的上测试服务器测试了。


  然后在测试服务器用ftp命令连接了一下,嗯~,非常顺利竟然连接成功,然后防火墙开了7000端口。过了一会发现用别的机器连接好像不行了。这出现了大写的尴尬~。经过反复测试发现关掉防火墙就好了,在这里我还不知道FTP有个控制端口和连接端口。


  简单的说控制端口用来登录的,连接端口是在登录之后使用的,至于使用什么端口要看主动模式和被动模式了。


  Minaftpserver使用


  这个用起来也很简单的

image.png

  接着说,话说防火墙也被我关了。这下应该没啥事儿,嗯~话说这种情况在局域网(客户端和服务器),真的一点问题都没有。


  当我们的客户端程序搬到外网之后,FTPserver在内网通过路由器的端口映射


  可能有小伙伴看不大明白,弄张图吧:

image.png

  左边就是我的服务器,这样部署后,发现客户端死活连不上服务器,但是可以登录,尝试过主动模式、被动模式、将所有端口映射还是不起作用。


  找文档,找资料。找到了一个可以设备被动模式和主动模式使用的端口如下:

image.png

  到这里算是有一点收获,总算把使用的端口搞明白了。但是还是没解决客户端不能连的问题。


  接着找,再仔细的看主动模式和被动模式


  主动模式、被动模式


  这二个模式都是针对服务器而言


  主动模式


  当客户端登录服务器成功后,客户端告诉服务器客户端开放的端口,然后服务器主动去连接客户端告诉过来的端口

image.png

  被动模式


  当客户端登录服务器成功后,服务器告诉客户端我开放的端口,然后客户端来连接服务器的端口,相当于是服务器一直是被动的等待连接

image.png

  到这儿可能有点思路了,确定我的服务器一定是使用被动模式。通过日志发现被动模式使用的IP不对

image.png

  以上就是动力节点java培训机构小编介绍的“Java 集成Ftp Server踩到的坑”的内容,希望对大家有帮助,更多java最新资讯请继续关注动力节点java培训机构官网,每天会有精彩内容分享与你。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>