前言

  今天被经理要求搭建ftp服务器,然后就去网上搜索了一下教程。搭建成功后(遇到的坑不少)特此记录一下。因为是为了记录一下整个操作流程以防以后使用所以比较啰嗦。

目录

  1、安装vsftpd

  2、创建用户和用户组

3、修改配置文件及创建例外用户文件chroot_list

4、设置防火墙端口开放和服务器端口开放

安装vsftpd

 使用yum指令进行安装(安装这个东西还真的是简单)

yum install vsftpd* -y

 然后可以使用以下命令开始,停止,或重启

/bin/systemctl start vsftpd.service #启动vsftpd
/bin/systemctl stop vsftpd.service  #停止vsftpd
/bin/systemctl restart vsftpd.service  #重启vsftpd

然后可以使用以下指令查看启动状态

systemctl status vsftpd

执行正常结果如下所示:

创建用户和用户组

新创建一个用户和用户组,因为需要我们要对用户限制访问空间和位置,这些会在下一节讲到。

创建用户组,其实从最终结果来说我没有用到用户组上的东西,但是还是跟着教程创建了一个用户组,如下所示:

groupadd ftpgroups #创建一个名为ftpgroups的用户组

可以一步到位的创建用户同时分配用户根目录和用户组如下所示,其中/home/test目录不存在需要自己创建:

useradd -d /home/test -g ftpgroups test

当然会有麻烦一些的方法,首先创建用户然后给用户分配组别。设置密码passwd+用户名这个我就不解释了。ok如果你不限制用户的权限访问目录什么的到这里应该就能使用本机访问了,如果想要远程访问需要设置一些其他东西。不过接下来因为我们需要限制用户的访问目录所以我们先讲一下如果限制用户的访问目录。

修改配置文件及创建例外用户文件chroot_list

  首先找到vsft的配置文件  /etc/vsftpd/vsftpd.conf,在配置文件中我们找到如下三个属性

chroot_local_user=YES   #是否将所有用户限定在主目录内
chroot_list_enable=YES #是否启动限制用户名单
chroot_list_file=/etc/vsftpd/chroot_list #是否限制在目录下的用户名单,没有的话需要自己创建
allow_writeable_chroot=YES #报503错误的时候添加

  上面三个属性在限制用户的访问权限中是相当重要的,其中chroot_list_file属性中的作用还取决于chroot_local_user和chroot_list_enable的组合,具体可以参考这个博客:https://blog.csdn.net/bluishglc/article/details/42398811,我同时从上面摘抄下来一段话如下所示:

  

chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制",所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO),"例外"“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!

ok,那么从上面的解释我们就可以将chroot_local_user设定为NO,将chroot_list_enable设置为yes并在chroot_list中添加需要限制的用户就可以了。接下来设置防火墙什么的就是问题最多的地方了。

设置防火墙端口开放和服务器端口开放

  按照上面的基本没有什么问题就可以直接使用本地ftp进行连接了然后就是远程连接。远程连接的话一般都涉及到防火墙、服务商安全组这两个部分。So,我们先说一下防火墙,centos7的防火墙默认是firewalld,所以你需要先在防火墙上打开你的端口,还需要你添加ftp服务,可以参考博客:https://blog.csdn.net/u011383596/article/details/80869114,操作步骤就是添加服务,重启防火墙这里我把命令给粘贴了过来:

firewall-cmd --permanent --add-service = ftp  #添加服务
systemctl restart firewalld.service #重启防火墙

  接下来如果你的服务器是云服务器列如阿里云的话你需要设置一下你的安全组,将端口21添加进去。

这些都操作完的话可以用telnet ip port来测试一下时候能够访问到,如果访问到基本就大功告成了。然后可以用一些工具进行连接如果找不到目录的话需要修改为主动连接。这些我就不废话了。

结束语

  其实整个流程是不麻烦的,但是在中间还是遇到了很多问题。比如我远程一直连接不上,我检查了自己防火墙关了,安全组加了但是就是访问不到,后来我一想我用的是测试服务器然后这个服务器的环境不是我搭的然后我就问搭建的人发现他用的是iptables,因为这个问题我挠了2个小时的头。期间还遇到python多版本问题,还无意间把用户添加到了user_list这个文件中(这个文件里面的用户是不能使用ftp的)等等问题。不管怎么说还是把问题解决了,写个文章来记录一下吧。

  

记录Centos7搭建ftp服务器以及遇到的各种坑的更多相关文章

  1. 虚拟机中使用centos7搭建ftp服务器

    应用场景 本地windows作为客户端,虚拟机CentOS7作为服务器端,搭建FTP服务器,本地访问虚拟机实现文件的上传下载.如何在虚拟机安装centos7就不在赘述. 1.在centos7上安装vs ...

  2. Centos7搭建FTP服务器

    从网上搜索了好多搭建Centos7搭建服务器的教程都没有成功唯独这个,利用Windows资源管理器连接测试成功. 一.通过yum安装vsftpd yum install -y vsftpd 二.修改v ...

  3. 【腾讯云服务器】基于centos7搭建ftp服务器(vsftpd)

    该博客分为三部分设置,1.ftp服务器搭建.2.防火墙设置  3.腾讯云安全组 一.ftp服务器搭建 1.1  安装vsftpd yum install vsftpd -y 1.2 启动vsftpd服 ...

  4. [CentOs7]搭建ftp服务器

    摘要 vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux. ...

  5. [CentOs7]搭建ftp服务器(2)——添加用户

    摘要 上篇文章完成了ftp服务器的安装与匿名访问的内容,当然出于安全的考虑是不允许匿名访问服务器的,所以就有了本篇的内容 ,为ftp服务器添加用户,用改用户进行访问. vsftpd添加用户 FTP用户 ...

  6. [CentOs7]搭建ftp服务器(3)——上传,下载,删除,重命名,新建文件夹

    摘要 上篇文章介绍了如何为ftp添加虚拟用户,本篇将继续实践如何上传,下载文件. 上传 使用xftp客户端上传文件,如图所示 此时上传状态报错,查看详情 从错误看出是应为无法创建文件造成的.那么我们就 ...

  7. centos7搭建ftp服务器并配置匿名用户

    什么是FTP? FTP(File Transfer Protocol,文件传输协议),是TCP/IP网络和Internet上最早使用的协议之一.用来将实现从一台电脑传送文件到另一台电脑,或者接收和查看 ...

  8. 腾讯云服务器linux centOS7.4 搭建ftp服务器 vsftpd

    腾讯云服务器linux centos 7.4 搭建ftp服务器 vsftpd 在centos 7.3测试也是OK的,其它版本没有实验 # 安装 vsftpd $ yum install vsftpd ...

  9. CentOS7搭建FTP Server

    本文主要记录CentOS下FTP Server的安装和配置流程. 安装vsftpd yum install -y vsftpd 启动vsftpd service vsftpd start 运行下面的命 ...

随机推荐

  1. Linux 的计划任务

    Linux操作系统定时任务系统 Cron 入门 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动 ...

  2. angularjs中URL中的#号问题,$locationProvider.html5Mode(true)刷新404

    解决办法原文地址:https://blog.csdn.net/weixin_36185028/article/details/72179568 angularjs支持两种url模式,hash模式和ht ...

  3. Angular总结一:环境搭建

    工欲善其事必先利其器,开发 Angular 项目首先要搭建环境.Angular 的环境搭建包括三个方面,开发环境 WebStorm,命令行工具 Angular CLI,以及 nodejs. 一.安装 ...

  4. C++中重载决议与可访问性检查的顺序

    http://blog.csdn.net/starlee/article/details/1406781 对于如下的类: class ClxECS{public:    double Test(dou ...

  5. 2743: [HEOI2012]采花

    Description 萧芸斓是Z国的公主,平时的一大爱好是采花.今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花 .花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一 ...

  6. linux centos 7.5下 源码编译安装 lua环境

    lua 5.3.5 下载安装时发现缺少库 readline 需要添加依赖 yum search readline 看有哪些包 安装带有 devel 字样的 安装无 devel 的非开发包,通常不会自动 ...

  7. 【node.js】GET/POST请求、Web 模块

    获取GET请求内容 node.js 中 url 模块中的 parse 函数提供了这个功能. var http = require('http'); var url = require('url'); ...

  8. Sequelize-nodejs-7-Associations

    Associations关联性 This section describes the various association types in sequelize. When calling a me ...

  9. App-IOS与Android弱网环境测试

    弱网环境下App的功能是否正常使用,是否会发生Crash的等情况? 1.IOS ios系统一般自带弱网环境测试,可以通过设置各种网络环境,模拟弱网环境,如3G,wifi,very bad Networ ...

  10. MySQL 5.7(免安装版)的下载,安装(配置)

    本文适合初学JAVA,要用到MySQL开发的学习者. 第一步.下载MySQL 1. 百度mysql,找到官网,点击进入. 2. 进入官网,点击DOWNLOADS,在DOWNLOADS菜单栏中点击Com ...