ITPub博客

首页 > > > CentOS 7 安装vsftpd步骤

CentOS 7 安装vsftpd步骤

作者:孤独键客 时间:2020-05-13 10:45:30 0 删除 编辑


点击上方“程序员的成长之路”,选择“置顶公众号”

技术文章第一时间送达!


1、安装vsftpd组件

[root@localhost ~]# yum -y install vsftpd

 

2、添加一个ftp用户

此用户就是用来登录ftp服务器用的。

[root@localhost ~]# useradd ftpuser

这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认的路径为 /home/ftpuser。

 

3、给ftp用户添加密码

[root@localhost ~]# passwd ftpuser

输入两次密码后修改密码。

 

4、防火墙开启21端口

因为ftp默认的端口为21,而centos默认是没有开启的。

centos7中的防火墙改成了firewall,使用iptables无作用,开放端口的方法如下:

firewall-cmd --zone=public --add-port=80/tcp --permanent

返回success为成功。

命令含义: 

--zone #作用域 

--add-port=80/tcp #添加端口,格式为:端口/通讯协议 

--permanent #永久生效

 

[root@localhost ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent

[root@localhost ~]# firewall-cmd --reload

查看已开放的端口

[root@localhost ~]# firewall-cmd --list-ports

 

5、修改selinux

外网是可以访问上去了,可是发现没法返回目录(使用ftp的主动模式,被动模式还是无法访问),也上传不了,因为selinux作怪了。

修改selinux:

执行以下命令查看状态:

[root@localhost ~]# getsebool -a | grep ftp 


PS:我的是修改过后的,可能和你的不一样。

执行上面命令,再返回的结果看到两行都是off,代表,没有开启外网的访问

[root@localhost ~]# setsebool -P allow_ftpd_full_access on

[root@localhost ~]# setsebool -P tftp_home_dir on

 

用FileZilla 测试,发现能成功登陆,但是目录读取不了,我们更换一下传输模式。

FileZilla的主动、被动模式修改:

菜单:编辑→设置

 

6、关闭匿名访问

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

修改/etc/vsftpd/vsftpd.conf文件:

保存:wq,然后回车退出。

[root@localhost ~]# service vsftpd restart

 

7、开启被动模式

默认是开启的,但是要指定一个端口范围,打开vsftpd.conf文件,在后面加上

pasv_min_port=30000

pasv_max_port=30999

表示端口范围为30000~30999,这个可以随意改。改完重启一下vsftpd。

 

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

[root@localhost ~]# service vsftpd restart

 

由于指定这段端口范围,firewall也要把响应的端口打开。

[root@localhost ~]# firewall-cmd --zone=public --add-port=30000-30999/tcp --permanent
[root@localhost ~]# firewall-cmd --reload

查看:

[root@localhost ~]# firewall-cmd --list-ports
发现有30000-30999/tcp就搞定了。

 

8、设置开机启动vsftpd ftp服务

[root@localhost ~]# chkconfig vsftpd on

 

 

9、测试

a. FileZilla

将FileZilla的FTP传输模式更改为被动模式,然后连接,发现可以进去了。

b.浏览器

地址栏输入:ftp://服务器地址

在之后的弹出框中输入你的账户和密码。

c.Java程序

创建程序,ftp需要依赖commons-net-3.3.jar包

  1. import java.io.File;

  2. import java.io.FileInputStream;

  3. import java.io.IOException;


  4. import org.apache.commons.net.ftp.FTP;

  5. import org.apache.commons.net.ftp.FTPClient;


  6. public class TestFTP {


  7. public static void main(String[] args) throws Exception, IOException {

  8. FTPClient ftpClient = new FTPClient();

  9. ftpClient.connect("192.168.195.138");

  10. ftpClient.login("ftpuser", "123456");

  11. FileInputStream inputStream = new FileInputStream(new File("E:\\taotao\\21.jpg"));

  12. //指定上传目录

  13. //ftpClient.changeWorkingDirectory("/home/ftpuser/images/");

  14. ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

  15. ftpClient.storeFile("123.jpg",inputStream);

  16. inputStream.close();


  17. if(ftpClient.logout()){

  18. System.out.println("成功!");

  19. }else{

  20. System.out.println("失败!");

  21. }


  22. }


  23. }

控制台打印成功之后,查看我们的服务器,会发现123.jpg这张图片。

 

END


扫一扫

关注我们



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69902700/viewspace-3171075/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
一个不羁的码农,终身学习者。公众号「程序员的成长之路」。目前就职于一家游戏公司,主要负责服务器端,以及web系统的开发工作,对Java相关知识比较擅长。

注册时间:2018-12-14

  • 博文量
    793
  • 访问量
    119778