问题如下:现通过本机(如ip分配:172.23.250.2)
ftp所在服务器ip 172.23.0.10
本机无法直接ping通ftp服务器,本机与ftp服务器之间有安全平台,如果使用tracert可以看到环路
安全平台给了我一个ip为2.0.0.1,并为我开放了一个端口20021。
通过ftp被动机制,ftp服务器端已经绑定了20001~20005端口供我使用使用org.apache.commons.net.ftp.FTPClient以及sun包下的FTPclient
都可以登录,但都无法获取ftp服务器的文件路径,返回的操作码都是: 425 无法打开数据连接
因此也就无法传文件了,换句话说就是压根除了登录 我就啥事都做不了,后来查看ftp服务器上各类权限都已经给我打开。
后查阅了org.apache.commons.net.ftp包下的ftpclient源码,发现ftp被动模式下,客户端发一个pasv命令过去,ftp服务器会给客户端开一个端口(20001~20005之间),我这边客户端也可以拿到这个端口,但是在new socket(ip,port)中,源码里面设置的ip却是ftp服务器的ip,因本身客户端的机器无法直接ping通ftp服务器,所以问题程序在这一步就挂了。我也想过把ftpclient重写,但是貌似各种工作量太大了。。
(ftp服务器以及中间平台的各类设置都是没有问题的,因为在客户端使用leapftp工具可以进行文件上传!)尝试了很多办法 都木有解决。
求有搞过ftp的高人指点迷津啊···
ftp所在服务器ip 172.23.0.10
本机无法直接ping通ftp服务器,本机与ftp服务器之间有安全平台,如果使用tracert可以看到环路
安全平台给了我一个ip为2.0.0.1,并为我开放了一个端口20021。
通过ftp被动机制,ftp服务器端已经绑定了20001~20005端口供我使用使用org.apache.commons.net.ftp.FTPClient以及sun包下的FTPclient
都可以登录,但都无法获取ftp服务器的文件路径,返回的操作码都是: 425 无法打开数据连接
因此也就无法传文件了,换句话说就是压根除了登录 我就啥事都做不了,后来查看ftp服务器上各类权限都已经给我打开。
后查阅了org.apache.commons.net.ftp包下的ftpclient源码,发现ftp被动模式下,客户端发一个pasv命令过去,ftp服务器会给客户端开一个端口(20001~20005之间),我这边客户端也可以拿到这个端口,但是在new socket(ip,port)中,源码里面设置的ip却是ftp服务器的ip,因本身客户端的机器无法直接ping通ftp服务器,所以问题程序在这一步就挂了。我也想过把ftpclient重写,但是貌似各种工作量太大了。。
(ftp服务器以及中间平台的各类设置都是没有问题的,因为在客户端使用leapftp工具可以进行文件上传!)尝试了很多办法 都木有解决。
求有搞过ftp的高人指点迷津啊···
解决方案 »
- 我打算年初去培训java,成都传智播客怎么样?我一直很疑惑
- 我看了韩顺平的坦克大战后模仿着做了坦克游戏,但是有问题
- struts2 Web项目移植问题
- 如何将一个DLL发布为Web服务?
- 关于Hibernate
- struts中ActionForm的属性是数组的问题
- 对于实习生,一个项目下来,作为新手的我们该学些什么,怎么学?求解答。
- java dom4j xml 解析 求大虾指教
- 如何用Xerces用schema对xml文件进行验证?
- 有关Math类的一个方法
- struts2.3.1.2中使用<sx:tree>标签生成动态树形结构的问题
- hibernate annotation oracle nvarchar2 类型映射
问题就是找不到425造成的原因、因为目前只有登录可用 其他都不行,
同时 使用ie来访问这个ftp正确登录之后会提示超时、
或者可以換個:ftp4j
http://www.sauronsoftware.it/projects/ftp4j/