前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS 7 安装vsftpd步骤

CentOS 7 安装vsftpd步骤

作者头像
良月柒
发布2019-03-19 16:22:35
2.1K0
发布2019-03-19 16:22:35
举报

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包

代码语言:javascript
复制
import java.io.File;import java.io.FileInputStream;import java.io.IOException;
import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient;
public class TestFTP {
	public static void main(String[] args) throws Exception, IOException {		FTPClient ftpClient = new FTPClient();		ftpClient.connect("192.168.195.138");		ftpClient.login("ftpuser", "123456");		FileInputStream inputStream = new FileInputStream(new File("E:\\taotao\\21.jpg"));//指定上传目录		//ftpClient.changeWorkingDirectory("/home/ftpuser/images/");		ftpClient.setFileType(FTP.BINARY_FILE_TYPE);		ftpClient.storeFile("123.jpg",inputStream);		inputStream.close();
		if(ftpClient.logout()){			System.out.println("成功!");		}else{			System.out.println("失败!");		}
	}
}

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

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、安装vsftpd组件
  • 2、添加一个ftp用户
  • 3、给ftp用户添加密码
  • 4、防火墙开启21端口
  • 5、修改selinux
  • 6、关闭匿名访问
  • 7、开启被动模式
  • 8、设置开机启动vsftpd ftp服务
  • 9、测试
    • a. FileZilla
      • b.浏览器
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档