当直接连接ftp成功但报出无法显示文件目录错误时的解决方法 :
iptables里面仅仅开放了80、21等常用端口,这样就导致了vsFTPd在被动模式时无法使用随机端口,从而造成了客户端连接FTP时无法列出目录这样的问题。解决方式很简单,给vsFTPd增加随机端口的范围,然后把这个端口范围添加到iptables。给vsFTPd增加随机端口的范围,然后把这个端口范围添加到iptables就可以解决vsftpd不能显示文件目录的问题。
具体做法如下:
1.修改/etc/vsftpd/vsftpd.conf的配置文件,在文件末端添加:
| pasv_max_port=6666 pasv_min_port=5555 |
然后重启vsftpd:systemctl restart vsftpd
2.添加一条防火墙规则:
| iptables -I INPUT -p tcp --dport 5555:6666 -j ACCEPT service iptables save systemctl restart iptables |
再进行ftp链接,成功!
当直接连接ftp成功 但 java程序中获取不到ftp目录下文件时的解决方法 :
使用ftp.enterLocalPassiveMode();切换到被动模式 (部分ftp服务器会默认为被动模式 )