检查是否安装vsftpd [root@localhost /]# rpm -q vsftpd
如果没有安装执行命令 [root@localhost /]# yum install vsftpd
开启服务 [root@localhost /]
# systemctl start vsftpd.service[root@localhost /]
# systemctl status vsftpd.service[root@localhost /]
# systemctl stop vsftpd.service[root@localhost /]
# systemctl restart vsftpd.service[root@localhost /]
# systemctl enable vsftpd.service配置vsftpd.conf
1,vi /etc/vsftpd/vsftpd.conf
点击i进入编辑,编辑后点esc退出,点:wq保存 (编辑下面四个,将第一个yes改为no,将后面三个的#去掉)
anonymous_enable=NO # 禁用匿名登录
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES # 启用限定用户在其主目录下
2,#之后添加下列内容到vsftpd.conf末尾
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=300
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
data_connection_timeout=1
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
添加一个vsftpd用户
[root@bogon ~]# useradd ftpuser
修改密码
[root@bogon ~]# passwd ftpuser
输入两次密码后修改密码
参考:
https://blog.csdn.net/qq_26941173/article/details/54575952
https://www.cnblogs.com/jamescr7/p/8268455.html
测试ftp结果出现上传文件为0字节的情况,在代码中设置被动模式
public class FtpTest {
@Test
public void testFtpUpload() throws SocketException, IOException{
//创建一个ftpClient对象
FTPClient client = new FTPClient();
//创建ftp链接,如果不写默认端口号是21
client.connect("192.168.13", 21);
//登录ftp,使用用户名和密码
client.login("root", "admin");
//上传文件
FileInputStream is= new FileInputStream(new File("E:\\55\\AC4A9212.JPG"));
client.changeWorkingDirectory("/root/FTPpicture");//设置上传路径
client.setFileType(FTP.BINARY_FILE_TYPE);//设置ftp上传图片的格式为二进制,否则图片上传不完整
client.enterLocalPassiveMode();//进入被动模式,这一条如果不设置,会出现传输结果为0字节的情况
//而客户端不会出现这个情况,因为FZ客户端默认的就是被动模式:编辑--设置--连接--FTP--主被动设置
client.storeFile("pic05.jpg", is);//第一个参数:服务器端储存的文档名字,第二个参数:上传的io流
//is.close();
//退出客户端
client.logout();
}
}