java ftp linux_Linux安装ftp及java访问配置

本文介绍了如何在CentOS系统中安装并配置FTP服务器,包括vsftpd的安装、配置文件解析、启动服务以及允许root用户连接的步骤。此外,还讲解了在生产环境中开放FTP防火墙的方法,并解决了Java程序上传文件到FTP失败的问题,通过设置selinux策略实现成功上传。
摘要由CSDN通过智能技术生成

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则成功

直接在直接电脑上查看:

e8a89cefdb7db1c7b400f495642a55bd.png

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

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

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

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

getsebool -a | grep ftp

d395cbef18c33cd26426e58f54c53dac.png

setsebool -P allow_ftpd_full_access on

5cbef3b5250417aa6963d15b78b2b8b0.png

设置完后,java上传成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值