sun.net.ftp.FtpClient踩坑

sun.net.ftp.FtpClient 是一个FTP连接工具,比较坑的一点是该工具只能运行在FTP被动模式下。

FTP连接模式

FTP连接模式分为被动模式和主动模式。
FTP连接分为命令端口和数据端口。

FTP主动模式

命令端口号:21
数据端口号:20

FTP被动模式

命令端口号:21
数据端口号:1024-65535

问题

代码中使用了sun.net.ftp.FtpClient 连接工具实现文件同步到FTP服务器上,但是该连接工具只支持被动模式,客户服务器不允许放行这么多端口号。

解决方法

1、修改代码使用Apache提供的FTPClient工具,设置FTP连接方式为主动方式,防火墙放开20/21两个端口。

2、不修改代码,修改FTP配置,指定FTP被动模式传输端口范围。

(1)/etc/vsftpd.conf中添加如下配置

pasv_enable=YES
pasv_min_port=5000 (根据现场安全要求,自己填写)
pasv_max_port=6000(根据现场安全要求,自己填写)

(2)FTP服务器防火墙配置中放开相应的端口号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值