转载请表明出处 https://blog.csdn.net/Amor_Leo/article/details/85227631 谢谢
Linux安装ftp并java操作
安装ftp
下载vsftpd
yum -y install vsftpd
创建一个用户
- useradd 用户名称 (会自动创建文件夹)
useradd myftp
改用户密码
- passwd 用户名称
- 然后输入密码 (8位)
passwd myftp
放行端口号
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --reload
获取所有内核的参数
- 开启vsftpd服务之前,我们设置一个Linux内核,因为内核阻止了我们ftp的服务,配置selinux,允许ftb访问home和外网访问.
getsebool -a
getsebool -a | grep ftp
setsebool -P tftp_home_dir on
setsebool -P allow_ftpd_full_access on
setsebool -P ftpd_full_access on
setsebool -P ftpd_connect_all_unreserved on
setsebool -P ftpd_use_passive_mode on
semanage port -l |grep ftp //查看selinux开启的ftp端口
启动并设置开机自启
chkconfig vsftpd on
service vsftpd start
systemctl enable vsftpd.service
Windows访问
- 按下“Win+R”组合键打开运行,在框中输入: inetcpl.cpl 点击确定即可打开“internet 属性”
- ftp://ip:21/
ftp://192.168.0.109:21/
修改为被动模式
- pasv_enable :开启被动模式
- pasv_min_port :被动模式最小端口
- pasv_max_port :被动模式最大端口
vim /etc/vsftpd/vsftpd.conf
pasv_enable=yes
pasv_min_port=30000
pasv_max_port=40000
firewall-cmd --zone=public --add-port=30000-40000/tcp --permanent
firewall-cmd --reload
- 重启
service vsftpd restart
如果你要卸载ftp
- 卸载
yum remove -y vsftpd
- 删除配置文件
rm -fr /etc/vsftpd
- 删除ftp用户
userdel -fr myftp
java操作
添加依赖
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
代码
public class FtpTest {
public static void main(String[] args) throws SocketException, IOException {
FTPClient ftpClient = new FTPClient();
//ip port
ftpClient.connect("192.168.0.109", 21);
int replyCode = ftpClient.getReplyCode();
System.out.println(replyCode);
if(FTPReply.isPositiveCompletion(replyCode)) {
System.out.println("连接成功");
}
//开始登录
ftpClient.login("myftp", "11111111");
//设置编码
ftpClient.setControlEncoding("utf-8");
//设置上传文件类型 使用二进制
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
//创建文件夹
ftpClient.makeDirectory("img");
//切换工作目录
ftpClient.changeWorkingDirectory("img");
//上传文件
boolean storeFile = ftpClient.storeFile("6666.jpg", new FileInputStream(new File("d:/66666.jpg")));
if(storeFile) {
System.out.println("ok");
}
ftpClient.logout();
ftpClient.disconnect();
String filePath = "192.168.0.109/img/111.jpg";
}
}