记录Centos7搭建ftp服务器以及遇到的各种坑
前言
今天被经理要求搭建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服务器以及遇到的各种坑的更多相关文章
- 虚拟机中使用centos7搭建ftp服务器
应用场景 本地windows作为客户端,虚拟机CentOS7作为服务器端,搭建FTP服务器,本地访问虚拟机实现文件的上传下载.如何在虚拟机安装centos7就不在赘述. 1.在centos7上安装vs ...
- Centos7搭建FTP服务器
从网上搜索了好多搭建Centos7搭建服务器的教程都没有成功唯独这个,利用Windows资源管理器连接测试成功. 一.通过yum安装vsftpd yum install -y vsftpd 二.修改v ...
- 【腾讯云服务器】基于centos7搭建ftp服务器(vsftpd)
该博客分为三部分设置,1.ftp服务器搭建.2.防火墙设置 3.腾讯云安全组 一.ftp服务器搭建 1.1 安装vsftpd yum install vsftpd -y 1.2 启动vsftpd服 ...
- [CentOs7]搭建ftp服务器
摘要 vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux. ...
- [CentOs7]搭建ftp服务器(2)——添加用户
摘要 上篇文章完成了ftp服务器的安装与匿名访问的内容,当然出于安全的考虑是不允许匿名访问服务器的,所以就有了本篇的内容 ,为ftp服务器添加用户,用改用户进行访问. vsftpd添加用户 FTP用户 ...
- [CentOs7]搭建ftp服务器(3)——上传,下载,删除,重命名,新建文件夹
摘要 上篇文章介绍了如何为ftp添加虚拟用户,本篇将继续实践如何上传,下载文件. 上传 使用xftp客户端上传文件,如图所示 此时上传状态报错,查看详情 从错误看出是应为无法创建文件造成的.那么我们就 ...
- centos7搭建ftp服务器并配置匿名用户
什么是FTP? FTP(File Transfer Protocol,文件传输协议),是TCP/IP网络和Internet上最早使用的协议之一.用来将实现从一台电脑传送文件到另一台电脑,或者接收和查看 ...
- 腾讯云服务器linux centOS7.4 搭建ftp服务器 vsftpd
腾讯云服务器linux centos 7.4 搭建ftp服务器 vsftpd 在centos 7.3测试也是OK的,其它版本没有实验 # 安装 vsftpd $ yum install vsftpd ...
- CentOS7搭建FTP Server
本文主要记录CentOS下FTP Server的安装和配置流程. 安装vsftpd yum install -y vsftpd 启动vsftpd service vsftpd start 运行下面的命 ...
随机推荐
- NCE3
Lesson1 A puma at large Pumas are large, cat-like animals which are found in America. When reports ...
- wrap装饰器包
import wrapt # without argument in decorator @wrapt.decorator def logging(wrapped, instance, args, k ...
- 用一个变量表示 ----------"序号,名称,价格"
goods = [{"name": "电脑", "price": 1999}, {"name": & ...
- 【目录】利用Python进行数据分析(第2版)
第一章 准备工作 1.1 What Is This Book About(这本书是关于什么的) 1.2 Why Python for Data Analysis?(为什么使用Python做数据分析) ...
- P4906 小奔关闹钟
题目背景 由于今天是星期一,闹钟准时响了,由于小奔太困了,所以她想关停闹钟. 题目描述 可是,他的闹钟电路太复杂了,有很多个开关,每个开关都连着其他开关,其他开关又连着更多的开关,当且仅当所有开关都关 ...
- 【JavaScript】JavaScript(V8)实现输入输出
首先看牛客网的样例:https://www.nowcoder.com/questionTerminal/dae9959d6df7466d9a1f6d70d6a11417 计算a+b的和,每行包行两个整 ...
- mysql太多连接问题及解决方案
不管是JavaEE开发还是其他,只要是Linux系统下安装的mysql,通常默认最大连接为270. 如果你的客户端连接超过这个数,通常要么是配置文件修改,或者是命令行修改,配置文件修改和命令行修改的区 ...
- 集合之fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证.快速失 ...
- 【vue】父子组件间通信----传值
官方文档参考 (一)父组件 向 子组件 传值 ①在父组件中调用子组件处,绑定要传的数据data1, 如 <nav :data1=" " ></nav> ...
- 撩课-Web大前端每天5道面试题-Day6
1.请说明ECMAScript, JavaScript, Jscript之间的关系? ECMAScript提供脚本语言必须遵守的规则. 细节和准则,是脚本语言的规范. 比如:ES5,ES6就是具体的一 ...