本文以vsftpd服务器搭建为例
1、服务安装
[root@FTP-250~]#yum-yinstallvsftpd
2、关闭匿名访问(数据安全问题)
更改vsftpd配置文件vim/etc/vsftpd/vsftpd.conf
将anonymous_enable的值改为no
3、开放防火墙中ftp的端口21(否则外界难以访问服务器资源)
4、创建一个用户,单独用户ftp访问时使用(ftpuser/ftpuser)
5、修改selinux,开放ftp访问权限(默认是禁用了ftp访问)
查看selinux
更改selinux
[root@FTP-250 ~]# setsebool -P allow_ftpd_full_access on
[root@FTP-250 ~]# setsebool -P ftp_home_dir on
6、启动vsftpd服务
[root@FTP-250 vsftpd]# service vsftpd start
7、配置被动模式,否则否则顾客端难以访问服务端数据
【1】编辑/etc/vsftpd/vsftpd.conf文件,
[root@FTP-250 ~]# vim /etc/vsftpd/vsftpd.conf
并在文件的末尾添加
pasv_min_port=30000
pasv_max_port=30999
【2】修改防火墙linux使用ftp传输文件linux使用ftp传输文件,开启30000:30999之间所有的端口linux查看端口占用,并重启防火墙
【3】重启vsftpd服务器
通过浏览器访问,发觉可以正常联接了
通过Java代码链接FTP服务器linux系统安装教程,进而实现文件储存
1、创建一个maven项目(jar)
【1】添加依赖包
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
cn.jinshan.ftp
ftp
1.0
commons-net
commons-net
3.6
【2】编写测试代码
package cn.jinshan.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
public class FtpTest {
public static void main(String[] args) {
//一、建立连接
FTPClient client = new FTPClient();
try {
client.connect("192.168.100.250");
//二、设置参数
//1校验账号信息
client.login("ftpuser", "ftpuser");
//2获得本地文件
File file = new File("C:\Users\Administrator\Desktop\ftp1.png");
//3设置上传方式(字节)
client.setFileType(FTP.BINARY_FILE_TYPE);
//4设置是否被动模式上传
client.enterLocalPassiveMode();
//5指定上传路径
client.changeWorkingDirectory("/home/ftpuser/ego/imges");
//三、上传
InputStream local = new FileInputStream(file);
boolean flag = client.storeFile("ftp1.png", local);
if (flag) {
System.out.println("上传成功");
}else {
System.out.println("上床失败");
}
//关闭
client.disconnect();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}