1.创建ftp用户
创建ftpuser用户
useradd ftpuser
查看用户
# 创建的使用用户都在home目录下
cd home/
设置用户密码
passwd ftpuser
2.vsftp服务安装
yum -y install vsftpd
3.开启安全策略
查看命令
getsebool -a | grep ftp
如果报getsebool: SELinux is disabled
解决报错: 修改配置文件
# 将 SELINUX 的值修改为 permissive
vi /etc/selinux/config
重启实例
# 依次执行以下命令, 重启
touch /.autorelabel
shutdown -r now
成功解决
执行命令放开权限
# 所有操作都放行
setsebool -P ftpd_connect_all_unreserved on
# 全局的访问控制
setsebool -P ftpd_full_access on
# 最基本的home
setsebool -P tftp_home_dir on
开启成功
getsebool -a | grep ftp
3.编辑文件
vi /etc/vsftpd/vsftpd.conf
listen_port=21
4.启动vsftp服务
启动ftp服务命令
systemctl start vsftpd
查看ftp启动状态
systemctl status vsftpd
5.java测试连接ftp服务
引入依赖
<!-- FTPClient -->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
测试
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.net.ftp.FTPClient;
@Slf4j
public class FtpUtil {
// ftp服务器地址
private static final String host = "8.134.xxx.xxx";
// ftp端口
private static final int port = 21;
// ftp用户名
private static final String username = "ftpuser";
// ftp密码
private static final String password = "PanGuanQing";
public static void main(String[] args) throws Exception {
// 1、创建FTPClient对象
FTPClient ftpClient = new FTPClient();
// 保存FTP控制连接使用的字符集,必须在连接前设置
ftpClient.setControlEncoding("UTF-8");
// 2、指定服务器地址(端口)
ftpClient.connect(host, port);
// 3、指定用户名和密码
ftpClient.login(username, password);
// 连接成功或者失败返回的状态码
int reply = ftpClient.getReplyCode();
// 如果reply返回230表示成功,如果返回530表示无密码或用户名错误或密码错误或用户权限问题。
System.out.println(reply);
}
}