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服务的更多相关文章

  1. 关于linux服务器上搭建ftp服务的流程

    小龙最近折腾了一个阿里云的服务器,买完了就要开始做那么多那么多的功课,小龙对ssh也是一知半解的状态,做个小笔记,发布下整个ftp服务的搭建过程,大神勿喷:) 一.aliyun Linux(Redha ...

  2. Linux(Centos7) 实例搭建 FTP 服务

    本文以 CentOS 7.2 64位系统为例,使用 vsftpd 作为 FTP 服务端,FileZilla 作为客户端.指导您如何在 Linux 云服务器上搭建 FTP 服务. 操作步骤 安装 vsf ...

  3. CentOS搭建FTP服务

    前言: 环境:centos7.5 64 位 正文: 使用 yum 安装 vsftpd yum install vsftpd -y 安装完成后,启动 FTP 服务: service vsftpd sta ...

  4. 【Linux】- CentOS搭建FTP服务器

    1.安装vsftpd yum install -y vsftpd 2.启动vsftpd服务 service vsftpd start 3.查看运行状态 netstat -nltp | 完毕!!! 参考 ...

  5. 在Linux服务器,搭建K8s服务【脚本篇】

    前言 好久没有写博客了,本文主要是对网上文章的总结篇,主要是将安装和运行代码做了一次真机实验,亲测可用.文章内包含的脚本和代码,多来自于网络,也有我自己的调整和配置,文章末尾对参考的文献做了列举,方便 ...

  6. 使用Samba在Linux服务器上搭建共享文件服务

    最近我们的小团队需要在服务器上共分出一个共享文件夹用于大家存放公共的资源文档, 大家想啊,这肯定很简单呀,在Windows下面只要创建相关的windows account,共享某个文件夹,把读/写权限 ...

  7. Linux centosVMware xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务

    一.xshell使用xftp传输文件 Ctrl+Alt+F 弹出 下载进入 填写任意名字,自己邮箱 进入邮箱点击网址就自动下载了 然后安装 二.使用pure-ftpd搭建ftp服务 yum insta ...

  8. windows server2008下搭建ftp服务

    在工作中不光使用linux系统下的ftp服务,也得使用windows下的,今天领导让我做一个,踩了很多坑,终于是做完了,重现下过程,我们就来一步一步搭建我们的windows下的ftp服务器: 1.环境 ...

  9. 在Win7的IIS上搭建FTP服务及用户授权

    FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有 ...

  10. 在Win7的IIS上搭建FTP服务及用户授权——转载!!

    原文地址:http://blog.sina.com.cn/s/blog_6cccb1630100q0qg.html FTP服务 FTP是文件传输协议(File Transfer Protocol)的简 ...

随机推荐

  1. (性能测试笔记)逻辑IO和物理IO的区别

    IO性能对于一个系统的影响是至关重要的. 一个系统经过多项优化以后,瓶颈往往落在数据库:而数据库经过多种优化以后,瓶颈最终会落到IO.而IO性能的发展,明显落后于CPU的发展.Memchached也好 ...

  2. (mysql笔记)GROUP_CONCAT() 把多行数据合并

    不合并查询: 合并查询: SELECT GROUP_CONCAT(id) FROM orderinfo WHERE enterpriseid = 2265 AND shopid =0 AND orde ...

  3. Qt设置程序图标

    修改.pro文件添加一下代码:要求.pro文件和.ico文件在同一文件夹下 RC_ICONS = xxx.ico (你的程序图标)最后重新构建一次即可

  4. flutter 常用ui库

    1,EasyRefresh实现listview上拉刷新下拉加载,添加头尾布局,以及加载样式 地址:https://pub.flutter-io.cn/packages/flutter_easyrefr ...

  5. 二分查找中mid值的计算方法

    在刷题的时候遇到许多二分查找的题目 发现很多大佬的题解中mid值得计算都是用的:mid = low + (high-low)/ 2; 为什么不用mid = (low+high)/ 2的计算方法呢? i ...

  6. Maven简答题

    1.什么是Maven? 自动化构建工具,专注服务于Java平台的项目构建和依赖管理 2.使用Maven的好处以及原因? (1)大量的jar包反复复制,造成冗余.使用Maven后每个jar包只在本地仓库 ...

  7. 剑指 Offer 栈与队列

    09. 用两个栈实现队列 没啥意思 不要想复杂了 就是暴力 class CQueue { public: CQueue() { } /* 一个主栈 一个缓存栈 来回导 得到队头 copy后一端变空了 ...

  8. html入門 如何 區別行級元素 和 塊級元素

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. 日常开发记录-Object函数的内置方法Object.entries

    方法1: const data = { id: 1, name: "张三", age: 22 } let params = "" /* Object.entri ...

  10. 基于Kotlin和Canvas的跨终端设计

    背景 js弱类型非常混乱,不适合开发超过2w行代码的独立应用(普通Web除外) Web端和桌面端是主流工具应用的生存地 Canvas又是一个新兴的领域,能够提供多种多样的工具支持 设计一个基于Canv ...