Linux之ftp命令及java访问配置

1、安装
  yum -y install vsftpd

2、配置文件详解

  安装后配置文件位于/etc/vsftpd

  vsftpd.ftpusers:该文件中用户账户不能访问FTP服务器,例如root等。

  vsftpd.user_list:该文件中用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。

  vsftpd.conf:该文件自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。

3、启动ftp
  systemctl start vsftpd.service

4、允许root用户连接的示例

  修改/etc/vsftpd/ftpusers文件,将root用户注释掉

  修改/etc/vsftpd/user_list文件,将root用户注释掉

  重新启动服务:service vsftpd restart

5、防火墙开放ftp服务

  为了方便的测试功能,我们本地环境的防火墙通常是关闭的,这样ftp不会被防火墙拦截。但是,生产环境中防火墙肯定是运行的。这就需要配置ftp不被防火墙拦截,配置方法如下:

firewall-cmd --add-service=ftp --permanent  #防火墙中开启ftp服务,永久生效
firewall-cmd --reload  #重新加载,使上面的配置立即生效
firewall-cmd --query-service ftp  #查询是否设置成功,如果返回yes则成功

  直接在直接电脑上查看:

  6、java程序上传文件被拦截

  做完上面的设置,浏览器中访问是没问题了,可是用java程序上传文件到ftp不会成功,返回false,代码如下:

Boolean isSuccess = ftpClient.storeFile(file.getName(),FileUtil.file2InputStream(file));//保存文件

  这时需要做如下检查,如果返回如下,都是off。则需要设置ftpd_full_access为on

getsebool -a | grep ftp

setsebool -P allow_ftpd_full_access on

  设置完后,java上传成功!

 

  

 

posted @ 2019-12-29 19:10  雷雨客  阅读(642)  评论(0)    收藏  举报