Java连接FTP成功,但是上传是失败,报错:Connected time out
Java代码在本机上传文件到FTP服务器的时候成功,但是部署到测试服务器的时候出现,连接FTP成功但是上传失败,并且报Connected time out错误;
测试服务器和FTP服务都在阿里云上;(使用内网外网连接都有错)
原因:
网上找资料原因可能是防火墙策略阻止了java测试服务的端口连接,FTP服务器使用的有可能是被动模式;
注意:
1.FTP的PORT(主动模式)和PASV(被动模式)
(1) PORT(主动模式)
PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据。
(2) PASV(被动模式)
PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输。
关于主动和被动模式可参考:https://www.cnblogs.com/ajianbeyourself/p/7655464.html
和https://www.cnblogs.com/yeyublog/p/6056424.html
也就是说,服务器开放的数据端口,防火墙限制了,连不上,所以得在ftp服务器的配置里规定一个范围的端口号作为数据端口,然后再在防火墙设置这些端口可访问;
设置方法:在ftp的配置文件中增加
pasv_min_port=40001
pasv_max_port=41000
在防火墙配置中增加:
-A INPUT -p tcp --dport 40001:41000 -j ACCEPT
-A OUTPUT -p tcp --dport 40001:41000 -j ACCEPT 配置信息可参考:ttps://www.cnblogs.com/ahaii/p/5390616.html
最新文章
- ACM: Happy 2004-数论专题-因子求和-快速幂
- 【书单】book list
- 将C1Chart数据导出到Excel
- 附加数据库对于服务器失败(Microsoft.SqlServer.Smo),无法升级数据库,因为它是只读的,或者具有只读文件
- secure CRT 介绍
- Linux中的MyEclipse配置Hadoop
- [转]SQL语句:Group By总结
- Android客户端与服务端交互之登陆示例
- VBA取得EXCEL表格中的行数和列数
- 在sql server中怎样获得正在执行的Sql查询
- MySQL远程(IP)连接报错:Host 'IP地址' is not allowed to connect to this MySQL server
- AsyncHandler
- WinForm 制作一个简单的计算器
- 【Android Developers Training】 47. 序言:拍摄照片
- 项目实战13—企业级虚拟化Virtualization-KVM技术
- 如何为form表单的button设置submit事件
- ITU-T G.1081 IPTV性能监测点 (Performance monitoring points for IPTV)
- seo相关知识
- Vue 可输入可下拉组件的封装
- Jquery ajax 表单.serialize() 和serializeArray()序列化$.param()
热门文章
- 关于移动web教程免费发布
- C语言Linix服务器网络爬虫项目(二)项目设计和通过一个http请求抓取网页的简单实现
- Windows 的Apache支持SSI配置
- Linq 生成运算符 Empty,Range,Repeat
- jQuery兼容浏览器IE8方法
- ajax中设置contentType: “application/json”的作用
- Spring Security入门(1-13)Spring Security的投票机制和投票器
- Spring Security 入门(1-1)Spring Security是什么?
- IDEA安装和JDK的配置
- mysql乱码配置