1:安装ftp
yum install -y vsftpd
开机自启设置
systemctl enable vsftpd.service
启动ftp服务
systemctl start vsftpd.service
关闭ftp服务
systemctl stop vsftpd.service
查看ftp服务的状态
systemctl status vsftpd.service
2:进入到ftp的根目录默认是/etc/vsftpd/文件中进行配置
cd /etc/vsftpd/
会看到如下的文件
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件
/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。 黑名单
/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。 白名单
我的配置如下:具体的配置说明可以参考其他的文档 https://blog.csdn.net/kxwinxp/article/details/78595044
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
idle_session_timeout=6000
data_connection_timeout=1200
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_file=/etc/vsftpd/user_list
local_root=/var/ftp/pub
listen=YES
userlist_deny=NO
use_localtime=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40080
pasv_promiscuous=YES
配置完后重启ftp
/bin/systemctl restart vsftpd.service
二:用java链接测试
导包:
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
public static FTPClient getFTPClient(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort) {
FTPClient ftpClient = null;
try {
ftpClient = new FTPClient();
// 连接FTP服务器
ftpClient.connect(ftpHost, ftpPort);
// 登陆FTP服务器
ftpClient.login(ftpUserName, ftpPassword);
//中文支持
// ftpClient.setControlEncoding("UTF-8");
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.enterLocalPassiveMode();
int replyCode = ftpClient.getReplyCode();
System.out.println("链接返回发code:" + replyCode);
if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
log.error("未连接到FTP,用户名或密码错误");
ftpClient.disconnect();
}
} catch (SocketException e) {
e.printStackTrace();
log.error("FTP的IP地址可能错误,请正确配置");
} catch (IOException e) {
log.error("FTP的端口错误,请正确配置");
}
return ftpClient;
}
测试的结果code为200,说明链接成功