2021.2.20 更新

1 概述

文章核心:

  • CentOS8使用vsftpd搭建FTP服务器
  • 安装以及测试的详细过程

2 安装

2.1 安装vsftpd+ftp

sudo yum install -y vsftpd
sudo yum install -y ftp # 测试使用,搭建FTP服务器只需要vsftpd

2.2 开启服务

systemctl start vsftpd

2.3 设置开机启动(可选)

可以用

systemctl list-unit-files | grep vsftpd

查看是否开机启动,笔者机器上显示disabled

通过

chkconfig vsftpd on

开启自启,再次执行systemctl,可以看到变成了enabled

2.4 修改配置文件

配置文件默认为/etc/vsftpd/vsftpd.conf

sudo vim /etc/vsftpd/vsftpd.conf

首先修改anonymouse enable=YES,再添加一行anon_upload_enable=YES

第一行的意思是允许匿名登录,第二行的意思是允许匿名上传,接着重启服务:

systemctl restart vsftpd

3 测试准备

安装部分就算完成了,下面是测试。测试分为:

  • 浏览器测试
  • ftp命令测试

而为了测试权限,两者又分为:

  • 匿名测试
  • 用户登录测试

另外为了测试的完整还加入了wget的下载测试。

在测试之前先创建测试文件:

cd /var/ftp/pub
sudo vim test

4 浏览器测试

4.1 匿名测试

ifconfig获取内网ip,在浏览器中输入ftp://ip

可以看到有一个pub文件夹,里面有刚才新建的test文件:

右键保存即可下载文件:

下载完成。

去终端看看:

4.2 用户登录测试

输入

ftp://username@ip

再输入用户密码即可登录成功。默认访问的是用户根目录下的文件:

下载的话同上,右键选择下载即可。

5 ftp命令测试

首先安装ftp


5.1 匿名测试

ftp ip

ftp为默认的匿名登录用户名,至于密码,可以在/etc/vsftpd/vsftpd.conf中设置一个

no_anon_password=YES

这样匿名用户可以空密码登录。

5.1.1 上传测试

直接使用put命令,后面接上文件,这里的upload.txt是执行ftp之前的所在文件夹下的upload.txt

这里提示不能创建文件,是权限的原因,要确保/var/ftp/pubother用户有写权限:

默认的/var/ftp/pub的权限是644,修改成647

sudo chmod 647 /var/ftp/pub

同时修改上传文件的权限,允许other用户可读:

sudo chmod 644 /root/upload.txt

如果不行,可以使用selinux设置ftpd_full_access

getsebool -a | grep ftp

ftpd_full_access开启:

setsebool ftpd_full_access on

再进入upload.txt所在的文件夹,执行ftp,再次put

成功!

5.1.2 下载测试

直接get文件即可,由于上面已经设置好了权限,所以不会出现问题。

若出现权限问题可从三方面入手:

  • /var/ftp/pub的对other用户的可读权限:因为是下载,而且匿名,所以只需要对other用户的可读权限
  • 被下载文件的对other用户的可读权限
  • selinux的问题,设置ftpd_full_accesson

5.2 用户登录测试

执行ftp时用对应用户名与密码登录:

默认进入了用户根目录。

5.2.1 上传测试

直接put即可:

若出现权限问题参照上面5.1.2的那三种方法。

5.2.2 下载测试

随便在用户根目录新建一个文件,这里是kr:

直接get即可:

6 wget测试

wget用来下载文件,初始下载的目录与ftp登录时的目录一致:

  • 匿名登录ftp,登录的是/var/ftp目录,则wget会从这个/var/ftp目录下载文件,下载到执行wget命令所在的目录
  • 使用用户kr登录ftp,则登录的是/home/kr目录,wget会从/home/kr下载文件

6.1 匿名测试

注意,请确保被下载文件对other用户有可读权限:

sudo chmod o+w xxxxxx

然后使用wget

wget ftp://ip/pub/xxxx

6.2 用户登录测试

使用--ftp-user--ftp-password指定用户名与密码,其余同上:

wget ftp://ip/xxx --ftp-user=xxxx --ftp-password=xxxx

成功。

7 总结

总结一下步骤:

  • 安装好ftpvsftpd
  • 修改配置文件(/etc/vsftpd/vsftpd.conf
  • 添加对操作的文件的相应权限

对于不能上传与下载的原因,基本上都是权限的问题,主要就是三方面:

  • ftp目录的权限:比如可以是/var/ftp/pub没有对应的写权限导致上传失败,没有对应读权限导致下载失败
  • 被上传文件的权限:比如被上传的文件没有读权限导致上传失败
  • selinux:使用setsebool设置ftpd_full_accesson

解决权限问题后,基本就可以通过ftp/wget顺利地使用这个ftp服务器上传/下载文件了。

8 还有疑问?

可以在评论留言大家一起讨论。

CentOS8搭建FTP服务器的更多相关文章

  1. 在Ubuntu Server 14.04中搭建FTP服务器(VMWare)

    自己搭建ftp服务器,方便主机与虚拟机中的Ubuntu传输文件. 选用的ftp软件为vsftpd. 1.命令行: sudo apt-get install vsftpd 2.安装完配置: vsftpd ...

  2. 超简单——自己搭建ftp服务器

    自己搭建ftp服务器 之所以没选择serv-u,一是因为收费,虽说网上有破解版,但是使用过程中发现破解版很不稳定,经常异常死掉,随后改选用免费的filezilla. 1软件获取 从百度搜索 FileZ ...

  3. Linux 搭建FTP服务器

    介绍 本章主要介绍在Linux中搭建FTP服务器的过程,需要掌握的要点是配置文件的合理配置. 知识点 在linux中使用的FTP是vsftp FTP可以有三种登入方式分别是: 匿名登录方式:不需要用户 ...

  4. RedHat6.2搭建FTP服务器

    我的环境: A:Red Hat Enterprise 6.2 IP:192.168.16.12 此机作测试端 B:Red Hat Enterprise 6.2 IP:192.168.16.13 此机做 ...

  5. 使用FileZilla等软件搭建ftp服务器

    FTP的全称是File Transfer Protocol(文件传输协议).顾名思义,就是专门用来传输文件的协议. FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务.简单地 ...

  6. 使用apache ftpserver搭建ftp服务器

    作为一个javaer,遇到任何问题,先查一下java中的解决方案.地球上的许多事情,在java中都能找到完美的解决方案.之前搭建ftp服务器使用的是vsftpd,现在可以把它卸掉了,它以服务的形式运行 ...

  7. 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器

    最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...

  8. Windows server 2008 r2搭建FTP服务器

    最近需要搭建FTP服务器,顺着书上的教程走一遍流程. 1. 安装FTP服务 图一 图二 图三 可以看到上面提示并未启动windows自动更新,这个需要注意一下. 2. 新建FTP站点 准备FTP文件夹 ...

  9. windows 下使用 Filezilla server 搭建 ftp 服务器

    windows 下使用 Filezilla server 搭建 ftp 服务器 1. Filezilla server 免费,开源, ftp 服务端 2. 下载安装, windows  https:/ ...

随机推荐

  1. springCloud中的注册中心Nacos

    springCloud中的注册中心Nacos 三个模块: 1.注册中心 2.服务提供者(生产者) 提供服务 3.服务消费者(消费者)调用服务 流程:消费者和生产者都要向注册中心注册,注册的是二者中服务 ...

  2. 微软YARP初体验

    本文讨论了微软的反向代理--YARP.YARP是一个可以创建高性能.高度可定制的反向代理服务器的类库.那么什么是反向代理呢?反向代理是位于用户与目标服务器之间的中间连接点.它接收初始的HTTP连接请求 ...

  3. CMD(命令提示符)的基本操作(文件夹)

    打开CMD窗口,接下来将介绍如何使用CMD来创建.删除.修改.查看文件夹(目录) ps:以下所有文件夹将统一写成目录 1.1 使用CMD创建空目录(为了更好的演示,本文皆以D盘为当前路径),命令如下: ...

  4. vue 递归调用组件出错

    报错信息: Avoid mutating an injected value directly since the changes will be overwritten whenever the p ...

  5. 8.Vue组件三---slot插槽

    主要内容:  1. 什么是插槽 2. 组件的插槽 3. 插槽的使用方法 4. 插槽的具名 5. 变量的作用域 6. slot的作用域 一. 什么是插槽呢? 1. 生活中的插槽有哪些呢? usb插槽, ...

  6. 【转载】KMP入门级别算法详解--终于解决了(next数组详解)

    [转载]https://blog.csdn.net/LEE18254290736/article/details/77278769 对于正常的字符串模式匹配,主串长度为m,子串为n,时间复杂度会到达O ...

  7. swaks制作钓鱼邮件

      一.在网站:https://bccto.me/ 申请一个十分钟的邮箱 二.使用命令行,命令行解释如下: --from hacker@qq.com //发件人的邮箱 --ehlo qq.com // ...

  8. MyBatis(二):自定义持久层框架思路分析

    使用端 引入架构端Maven依赖 SqlMapConfig.xml-数据库配置信息(数据库连接jar名称.连接URL.用户名.密码),引入Mapper.xml的路径 XxMapper.xml-SQL配 ...

  9. 16. 使用vue3结构及配置管理

    主要内容: vue-cli2和3的区别 创建vue-cli3脚手架 vue-cli3项目的目录结构 vue-cli2和vue-cli3中 main.js文件的区别 vue-cli3的配置文件管理 一. ...

  10. python学习之基础内容

    python基础内容① 什么是python? -一种计算机语言,计算机语言分为 -高级语言:python.java.Ruby.C#.C++...... -基础语言:C语言.汇编 -计算机可以直接执行基 ...