Linux:服务器(CentOS)搭建FTP服务
Vsftpd(very secure FTP deamon)是众多Linux发行版中默认的FTP服务器。本文以CentOS 8(腾讯云)服务器为例,使用vsftpd搭建Linux云服务器的FTP服务器。
环境
CentOS 8(1核2GB,1Mbps) 64位 ,已安装Docker(CentOS 8 的docker安装 https://www.cnblogs.com/luyj00436/p/14515187.html)。
步骤
步骤1:登录云服务器
登录服务器的方法有三种。根据情况选择合适的。
步骤2:安装vsftpd.
1. 安装vsftpd。
yum install -y vsftpd
2. 设置vsftpd开机启动。
systemctl enable vsftpd
3. 启动FTP服务。
systemctl start vsftpd
4. 确认服务是否启动。
netstat -antup | grep ftp
显示结果如下,则说明服务已成功启动。
此时,vsftpd已默认开启匿名访问模式,无需通过用户名和密码即可登录FTP服务器,使用此方法登录FTP服务器的用户没有权限修改或上传文件的权限。
步骤3:配置vsftpd
1. 为FTP服务器创建一个Linux用户,本文以ftpuser为例。
useradd ftpuser
2. 设置ftpuser用户名的密码。
passwd ftpuser
输入密码后请安Enter确认设置,密码默认不显示,本文以tf7295TFY为例。
3. 创建FTP服务使用的文件目录,本文以/var/ftp/test为例。
mkdir /var/ftp/test
4. 修改目录权限。
chown -R ftpuser:ftpuser /var/ftp/test
5. 打开vsftp.conf文件。
vim /etc/vsftpd/vsftpd.conf
6. 按i切换至编辑模式,根据实际需求选择FTP模式,修改配置文件vsftp.conf。
注:FTP可通过主动模式和被动模式与客户机进行连接并传输数据。由于大多受客户端机器的防火墙设置无法获取真实IP等原因,建议选择被动模式下搭建FTP服务。以下以被动模式为例。如果需要主动模式,请参考:主动模式。
1) 修改以下配置参数,设置匿名用户和本地用户的登录权限,设置指定例外用户列表文件的路径,并开启IPv4 sockets。

1 anonymous_enable=NO
2 local_enable=YES
3 chroot_local_user=YES
4 chroot_list_enable=YES
5 chroot_list_file=/etc/vsftpd/chroot_list
6 listen=YES
设置用户
2) 在行首添加#,注释listen_Ipv6=YES配置参数,关闭IPv6 sockets。
#listen_ipv6=YES
3) 添加以下配置参数,开启被动模式,设置本地用户登录后所在目录,以及服务器建立数据传输可使用的端口范围值。

1 local_root=/var/ftp/test
2 allow_writeable_chroot=YES
3 pasv_enable=YES
4 pasv_address=xxx.xx.xxx.xx #请修改为您的 Linux 云服务器公网 IP
5 pasv_min_port=40000
6 pasv_max_port=45000
开启被动模式、用户登录目录、端口范围
7. 按ESC后输入:wq保存后退出。
8. 创建并编辑chroot_list文件。
vim /etc/vsftpd/chroot_list
9.按i进入编辑模式,输入用户名,一个用户名占据一行,设置完成后按Esc并输入:wq保存后退出。您若没有设置例外用户的需求,看跳过此步骤,输入:wq退出文件。
10. 重启FTP服务器。
1 systemctl restart vsftpd
步骤4:设置安全组
搭建好FTP服务后,您需要根据实际使用的FTP模式给Linux云服务器放入入站规则,详情请参考添加安全组规则。
大多数客户端及其在局域网中,IP地址经过转换的,如果您选择了FTP主动模式,请确保客户端机器已获取真实的IP地址,否则可能会导致无法登录FTP服务器。
- 主动模式:放通端口21。
- 被动模式:放通端口21,,及修改配置文件中设置的pasv_min_port到pasv_max_port之间的所有端口,本文放通端口为40000~45000。
步骤5:验证ftp服务
您可通过FTP客户端软件、浏览器或文件资源管理器等工具验证FTP服务,本文以客户端的文件资源管理器为例。
1. 打开客户端的IE浏览器,选择【工具】>【Internet选项】>【高级】,根据您的FTP模式进行修改:
- 主动模式:取消勾选【使用被动FTP】
- 被动模式: 勾选【使用被动FTP】。
2. 打开客户端计算机,在路径栏中访问以下地址,如下图所示:
3. 在弹出的“登录身份”窗口输入已设置的用户名及密码。
本文使用的用户名为 ftpuser,密码为 tf7295TFY。
4. 成功登录后,即可上传和下载文件。
附录
设置FTP主动模式
主动模式需修改的配置如下,其他配置保持默认设置:

1 anonymous_enable=NO #禁止匿名用户登录
2 local_enable=YES #支持本地用户登录
3 chroot_local_user=YES #全部用户被限制在主目录
4 chroot_list_enable=YES #启用例外用户名单
5 chroot_list_file=/etc/vsftpd/chroot_list #指定用户列表文件,该列表中的用户不被锁定在主目录
6 listen=YES #监听IPv4 sockets
7 #在行首添加#注释掉以下参数
8 #listen_ipv6=YES #关闭监听IPv6 sockets
9 #添加下列参数
10 allow_writeable_chroot=YES
11 local_root=/var/ftp/test #设置本地用户登录后所在的目录
FTP主动模式配置
按ESC后输入:wq保存后退出。并继续完成剩余的步骤。然后重启FTP服务。
FTP客户端上传文件失败
Linux系统环境下,通过vsftp上传文件时,提示如下报错信息。
553 Could not create file
解决方法
1. 检查服务器磁盘的使用率。
df -h
如果磁盘空间不足,将会导致文件无法上传,建议删除磁盘容量较大的文件。
- 如果磁盘空间正常,请执行下一步。
2. 检查FTP目录是否有写的权限。
1 ls -l /home/test
2 # /home/test 为 FTP 目录,请修改为您实际的 FTP 目录。
- 若返回结果没有w,则表示该用户没有写的权限,请执行下一步。
- 若返回结果已有w,请提交工单进行反馈。
3. 为FTP目录加上写的权限。
1 chmod +w /home/test
2 # /home/test 为 FTP 目录,请修改为您实际的 FTP 目录。
4. 重新检查写权限是否设置成功。
1 ls -l /home/test
2 # /home/test 为 FTP 目录,请修改为您实际的 FTP 目录。
参考网址
Linux 云服务器搭建 FTP 服务: https://cloud.tencent.com/document/product/213/10912
Linux:服务器(CentOS)搭建FTP服务的更多相关文章
- 关于linux服务器上搭建ftp服务的流程
小龙最近折腾了一个阿里云的服务器,买完了就要开始做那么多那么多的功课,小龙对ssh也是一知半解的状态,做个小笔记,发布下整个ftp服务的搭建过程,大神勿喷:) 一.aliyun Linux(Redha ...
- Linux(Centos7) 实例搭建 FTP 服务
本文以 CentOS 7.2 64位系统为例,使用 vsftpd 作为 FTP 服务端,FileZilla 作为客户端.指导您如何在 Linux 云服务器上搭建 FTP 服务. 操作步骤 安装 vsf ...
- CentOS搭建FTP服务
前言: 环境:centos7.5 64 位 正文: 使用 yum 安装 vsftpd yum install vsftpd -y 安装完成后,启动 FTP 服务: service vsftpd sta ...
- 【Linux】- CentOS搭建FTP服务器
1.安装vsftpd yum install -y vsftpd 2.启动vsftpd服务 service vsftpd start 3.查看运行状态 netstat -nltp | 完毕!!! 参考 ...
- 在Linux服务器,搭建K8s服务【脚本篇】
前言 好久没有写博客了,本文主要是对网上文章的总结篇,主要是将安装和运行代码做了一次真机实验,亲测可用.文章内包含的脚本和代码,多来自于网络,也有我自己的调整和配置,文章末尾对参考的文献做了列举,方便 ...
- 使用Samba在Linux服务器上搭建共享文件服务
最近我们的小团队需要在服务器上共分出一个共享文件夹用于大家存放公共的资源文档, 大家想啊,这肯定很简单呀,在Windows下面只要创建相关的windows account,共享某个文件夹,把读/写权限 ...
- Linux centosVMware xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务
一.xshell使用xftp传输文件 Ctrl+Alt+F 弹出 下载进入 填写任意名字,自己邮箱 进入邮箱点击网址就自动下载了 然后安装 二.使用pure-ftpd搭建ftp服务 yum insta ...
- windows server2008下搭建ftp服务
在工作中不光使用linux系统下的ftp服务,也得使用windows下的,今天领导让我做一个,踩了很多坑,终于是做完了,重现下过程,我们就来一步一步搭建我们的windows下的ftp服务器: 1.环境 ...
- 在Win7的IIS上搭建FTP服务及用户授权
FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有 ...
- 在Win7的IIS上搭建FTP服务及用户授权——转载!!
原文地址:http://blog.sina.com.cn/s/blog_6cccb1630100q0qg.html FTP服务 FTP是文件传输协议(File Transfer Protocol)的简 ...
随机推荐
- .NET CORE-Auto整合至MVC中
在Program.cs中使用Autofac工厂去替代默认工厂: public static IHostBuilder CreateHostBuilder(string[] args) => Ho ...
- feign返回值解决反序列化对象嵌套List失败的问题
文摘 问题描述 当用feign client远程调用时,返回的复杂对象反序列化报错. 错误信息: Caused by: com.fasterxml.jackson.databind.exc.Misma ...
- VS/QT--调用第三方库dll总结
假设外部第三方库为 test.h,test.lib,test.dll, 调用的函数是 int fnTest(int param); 一.VS中的静态调用和动态调用 1.1 静态调用 静态调用需要用到 ...
- 性能测试-top-实时显示系统中各个进程的资源占用状况, 也可以查看线程
1.top命令介绍 top命令是Linux系统中常用的性能分析工具,可以实时地查看系统的运行情况,比如内存.CPU.负载以及各个进程的资源占用情况 top界面主要分为两个部分,前5行展示的是系统的整体 ...
- Android 杂项
1. String to InputStream new ByteArrayInputStream(str.getBytes());
- C#如何判断文件是否存在
https://jingyan.baidu.com/article/ac6a9a5ead6ef86b653eac8b.html 首先,我们定义一个字符串,名为path. 然后,我们给他一个路径,这样才 ...
- 直播平台搭建源码,canvas 画一条波浪线 进度条
直播平台搭建源码,canvas 画一条波浪线 进度条 <template> <view> <canvas :style="{'width': width ...
- IaaS--云虚拟机(二)(何恺铎《深入浅出云计算》笔记整理)
[如何挑选合适的虚拟机型号] 1.根据类型.云厂商会提供均衡型.计算密集型.内存优化型.图形计算型等常见的虚拟机类型.这些类型对应着硬件资源的某种合理配比或针对性强化,方便你在面向不同场景时,选择最合 ...
- 用JMeter对MySQL数据库进行压测
转载链接:https://www.cnblogs.com/Jadie/p/8056541.html 参考链接:https://blog.csdn.net/qq_35389417/article/det ...
- Delphi 格式化函数Format、FormatDateTime与FormatFloat详解
目录 Format函数 %d 代表一个整数 %u 代表一个无负号整数 %s 代表字符串 %f 代表浮点数(保留或凑够两位小数点 ) %g 代表浮点数(会去掉多余的 0) %n 代表浮点数(整数部分使用 ...