CentOS8搭建FTP服务器
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/pub
对other
用户有写权限:
默认的/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_access
为on
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 总结
总结一下步骤:
- 安装好
ftp
与vsftpd
- 修改配置文件(
/etc/vsftpd/vsftpd.conf
) - 添加对操作的文件的相应权限
对于不能上传与下载的原因,基本上都是权限的问题,主要就是三方面:
ftp
目录的权限:比如可以是/var/ftp/pub
没有对应的写权限导致上传失败,没有对应读权限导致下载失败- 被上传文件的权限:比如被上传的文件没有读权限导致上传失败
selinux
:使用setsebool
设置ftpd_full_access
为on
解决权限问题后,基本就可以通过ftp
/wget
顺利地使用这个ftp
服务器上传/下载文件了。
8 还有疑问?
可以在评论留言大家一起讨论。
CentOS8搭建FTP服务器的更多相关文章
- 在Ubuntu Server 14.04中搭建FTP服务器(VMWare)
自己搭建ftp服务器,方便主机与虚拟机中的Ubuntu传输文件. 选用的ftp软件为vsftpd. 1.命令行: sudo apt-get install vsftpd 2.安装完配置: vsftpd ...
- 超简单——自己搭建ftp服务器
自己搭建ftp服务器 之所以没选择serv-u,一是因为收费,虽说网上有破解版,但是使用过程中发现破解版很不稳定,经常异常死掉,随后改选用免费的filezilla. 1软件获取 从百度搜索 FileZ ...
- Linux 搭建FTP服务器
介绍 本章主要介绍在Linux中搭建FTP服务器的过程,需要掌握的要点是配置文件的合理配置. 知识点 在linux中使用的FTP是vsftp FTP可以有三种登入方式分别是: 匿名登录方式:不需要用户 ...
- 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 此机做 ...
- 使用FileZilla等软件搭建ftp服务器
FTP的全称是File Transfer Protocol(文件传输协议).顾名思义,就是专门用来传输文件的协议. FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务.简单地 ...
- 使用apache ftpserver搭建ftp服务器
作为一个javaer,遇到任何问题,先查一下java中的解决方案.地球上的许多事情,在java中都能找到完美的解决方案.之前搭建ftp服务器使用的是vsftpd,现在可以把它卸掉了,它以服务的形式运行 ...
- 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器
最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...
- Windows server 2008 r2搭建FTP服务器
最近需要搭建FTP服务器,顺着书上的教程走一遍流程. 1. 安装FTP服务 图一 图二 图三 可以看到上面提示并未启动windows自动更新,这个需要注意一下. 2. 新建FTP站点 准备FTP文件夹 ...
- windows 下使用 Filezilla server 搭建 ftp 服务器
windows 下使用 Filezilla server 搭建 ftp 服务器 1. Filezilla server 免费,开源, ftp 服务端 2. 下载安装, windows https:/ ...
随机推荐
- eclipse安装mybatis的插件
在help中打开Eclipse Marketplace... 输入mybatis后搜索,点击install即可 功能说明: 1.查找某一个方法 在dao接口中 按住Ctrl键,鼠标指到方法名称上 选择 ...
- 读懂RESTful风格
RESTful就是资源定位和资源操作的风格.不是标准也不是协议. REST即Representational State Transfer的缩写,可译为"表现层状态转化".REST ...
- Java基本概念:多态
一.简介 描述: 多态性是面向对象编程中的一个重要特性,主要是用来实现动态联编的.换句话说,就是程序的最终状态只有在执行过程中才被决定,而非在编译期间就决定了.这对于大型系统来说能提高系统的灵活性和扩 ...
- Dockerfile怎么用
目录 Docker的Dockerfile 1.常用命令 2.使用Dockerfile创建镜像 Docker的Dockerfile Dockerfile是由一系列命令和参数构成的脚本文件,这些命令应用于 ...
- MarkDown简单语法回顾
写在前面: 本文是我的第一篇博客文章,希望与大家共同交流.分享我们热爱的技术,努力成为一名优秀的软件工程师! 进入正文 使用MarkDown记笔记已经有些时候了,编辑器是使用的sublime text ...
- Django Static与Media
关于Django中Static和Media的设置问题(尤其是css和js静态文件加载的问题),网上有很多回答,但是发现有相当一部分回答并不能解决问题.有的可能是Django版本问题,有的是把media ...
- Linux磁盘分区格式化和扩容
Note:根据各系统上磁盘的类型不同,磁盘命名规则也会不同:例如/dev/xvd,/dev/sd,/dev/vd,/dev/hd 目录 磁盘格式化 MBR格式 GPT分区 磁盘扩容 MBR格式扩容 G ...
- HDOJ-6641(欧几里得+异或运算)
TDL HDOJ-6641 关于题意,就是要找出符合f的第m大的数,而且后面还要满足异或等式. 通过观察题目,可以发现n太大了,所以不能直接枚举.当然因为m比较小,所以可以转换思路k^n,这个数最大不 ...
- vscode动态调试
前言: 关于vscode动态调试php项目其实在网上有文章,但那些文章或多或少都有些坑点或者转载他人,未经验证过,几度重装系统重新配置的时候在网上看文章配置总是有点问题,所以这次自己写了一篇文章,从头 ...
- 扫盲贴|如何评价一款App的稳定性和质量?
作者:友盟+移动开发专家 张文 「崩溃」与「卡顿」.「异常退出」等一样,是影响App稳定性常见的三种情况.相关数据显示,当iOS的崩溃率超过0.8%,Android的崩溃率超过0.4%的时候,活跃用户 ...