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. eclipse安装mybatis的插件

    在help中打开Eclipse Marketplace... 输入mybatis后搜索,点击install即可 功能说明: 1.查找某一个方法 在dao接口中 按住Ctrl键,鼠标指到方法名称上 选择 ...

  2. 读懂RESTful风格

    RESTful就是资源定位和资源操作的风格.不是标准也不是协议. REST即Representational State Transfer的缩写,可译为"表现层状态转化".REST ...

  3. Java基本概念:多态

    一.简介 描述: 多态性是面向对象编程中的一个重要特性,主要是用来实现动态联编的.换句话说,就是程序的最终状态只有在执行过程中才被决定,而非在编译期间就决定了.这对于大型系统来说能提高系统的灵活性和扩 ...

  4. Dockerfile怎么用

    目录 Docker的Dockerfile 1.常用命令 2.使用Dockerfile创建镜像 Docker的Dockerfile Dockerfile是由一系列命令和参数构成的脚本文件,这些命令应用于 ...

  5. MarkDown简单语法回顾

    写在前面: 本文是我的第一篇博客文章,希望与大家共同交流.分享我们热爱的技术,努力成为一名优秀的软件工程师! 进入正文 使用MarkDown记笔记已经有些时候了,编辑器是使用的sublime text ...

  6. Django Static与Media

    关于Django中Static和Media的设置问题(尤其是css和js静态文件加载的问题),网上有很多回答,但是发现有相当一部分回答并不能解决问题.有的可能是Django版本问题,有的是把media ...

  7. Linux磁盘分区格式化和扩容

    Note:根据各系统上磁盘的类型不同,磁盘命名规则也会不同:例如/dev/xvd,/dev/sd,/dev/vd,/dev/hd 目录 磁盘格式化 MBR格式 GPT分区 磁盘扩容 MBR格式扩容 G ...

  8. HDOJ-6641(欧几里得+异或运算)

    TDL HDOJ-6641 关于题意,就是要找出符合f的第m大的数,而且后面还要满足异或等式. 通过观察题目,可以发现n太大了,所以不能直接枚举.当然因为m比较小,所以可以转换思路k^n,这个数最大不 ...

  9. vscode动态调试

    前言: 关于vscode动态调试php项目其实在网上有文章,但那些文章或多或少都有些坑点或者转载他人,未经验证过,几度重装系统重新配置的时候在网上看文章配置总是有点问题,所以这次自己写了一篇文章,从头 ...

  10. 扫盲贴|如何评价一款App的稳定性和质量?

    作者:友盟+移动开发专家 张文 「崩溃」与「卡顿」.「异常退出」等一样,是影响App稳定性常见的三种情况.相关数据显示,当iOS的崩溃率超过0.8%,Android的崩溃率超过0.4%的时候,活跃用户 ...