记录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 运行下面的命 ...
随机推荐
- ACE.js自定义提示实现方法
ACE.js自定义提示实现方法 时间 2015-11-19 00:55:22 wsztrush's blog 原文 http://wsztrush.github.io/编程技术/2015/11/0 ...
- 小白学svn
该博客是本人第一次在自己的电脑中部署svnserver后的一些心得,希望对小白们有所帮助.尽管本人之前有使用svn开发的经验,可是那都是使用百度开发人员平台的,我一直以为在自己的电脑中弄svnserv ...
- [Violet]天使玩偶/SJY摆棋子
题目 \(KD-tree\)做最近点对的复杂度好像是假的吧,怎么看也看不出来是\(O(\sqrt{n})\)啊 首先\(KD-tree\)长得和平衡树还是很像的,每个节点都存储了一个\(k\)维空间上 ...
- 简单的Windows 服务的安装和卸载
步骤: 1.运行--〉cmd:打开cmd命令框 2.在命令行里定位到InstallUtil.exe所在的位置 InstallUtil.exe 默认的安装位置是在C:/Windows/Microsoft ...
- Fluent Terminal
特性: PowerShell,CMD,WSL或自定义shell的终端 支持选项卡和多个窗口 主题和外观配置 导入/导出主题 导入iTerm主题 全屏模式 可编辑的键绑定 搜索功能 配置shell配置文 ...
- HDU 1950(LIS)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1950 Bridging signals Time Limit: 5000/1000 MS (Java ...
- python为什么叫胶水语言?python为什么是系统脚本?
python为什么叫胶水语言?python为什么是系统脚本? 特点是什么? python现在最广为闻名的形容大概有这些: 他是很好的胶水语言.什么是胶水语言?反正当时的我不知道. 他是新一代的系统 ...
- .NET 操作 EventLog(Windows事件日志监控)(转载)
操作Windows日志:EventLog 如果要在.NET Core控制台项目中使用EventLog(Windows事件日志监控),首先需要下载Nuget包: System.Diagnostics.E ...
- 【vue知识点】2)vue登录认证
要点: 客户端登录要唯一 ——> token除了客户端要验证外,服务器端也要校验 (处理:token应该包含用户的基本信息,这样服务端解密token的时候就知道是哪个账户) (如果只是使用to ...
- socket编程小问题:地址已经被使用——Address already in use
很多socket编程的初学者可能会遇到这样的问题:如果先ctrl+c结束服务器端程序的话,再次启动服务器就会出现Address already in use这个错误,或者你的程序在正常关闭服务器端so ...